PXE自动安装Linux系统

折月煮酒 提交于 2019-12-04 17:59:45

PXE简介

 

PXE (preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统。

在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(客户端)基本软件设置,从而引导预先安装在服务器中的终端操作系统。

基本流程

 

 

 

 1.环境准备

1.首先准备至少两台虚拟机,其中一台作为服务器使用。(基本所有配置操作都是在服务器上客户端机器不需要配置。)然后还需要至少一个安装源(系统安装镜像文件)
将两台虚拟机网卡配置为仅主机模式(主要是和外网隔离,以面影响实体机的DHCP服务)

2.记录下主机ip

3.关闭VMware的DHCP服务:
在VMware主界面点击“编辑→虚拟网络编辑器”
在打开的界面中选中仅主机模式的连接并取消选中使用本地DHCP服务(如果勾选框灰色,点击更改设置给他管理员权限)。

 

 

 

4.给服务器分配一个IP地址,地址建议为静态地址。配置文件如下:

TYPE=Ethernet
BOOTPROTO=static
IPADDR=192.168.11.2
PREFIX=24
GATEWAY=192.168.11.1
NAME=ens33
DEVICE=ens33
ONBOOT=yes.5.编辑Win下的虚拟网卡配置以便和虚拟机可以通信打开控制面板→网络和共享中心→更改适配器设置
通常仅主机的连接名称为VMnet1
 

2.检查服务器相关设置

确保SELinux和防火墙处于关闭状态。
将/etc/selinux/config文件中的SELINUX=xxx改为SELINUX=disabled并重启。
可通过命令getenforce查看,如果是disabled或permissive即为关闭状态
执行以下两条命令确保关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

 

安装必要软件

在界面输入命令安装相关软件并启动服务

 

yum install httpd dhcp syslinux tftp-server
systemctl start httpd tftp.socket
systemctl enable dhcpd tftp.socket httpd

 

使用ss -tan 确认TCP80端口已开启
使用ss -unl 确认UDP69端口已开启

 

 

 

3.准备安装源

 

我们将HTTP作为安装源,将事先准备好的安装镜像挂载到HTTP目录下可以访问即可。
具体实现:
1.使用mkdir -p /var/www/html/Centos/7创建文件夹
2.将光盘挂载到/var/www/html/Centos/7目录下
3.在/etc/fstab文件中添加自动挂载信息,通常为
/etc/sr0 /var/www/html/Centos/7 iso9660 default 0 0
4.使用df -h确认挂载信息
5.在主机使用浏览器访问http://192.168.11.2/Centos/7 确认可以看到挂载的安装文件.

 

4.准备自动应答文件

 

自动应答文件的生成可以通过在图形界面下安装system-config-kickstart包使用这个工具在图形界面下生成。

(或者,系统安装完成后默认在root家目录有一个叫anaconda-ks.cfg的文件,也可以直接修改这个文件。)

 

5.配置DHCP服务器

默认情况下DHCP服务在安装完成之后配置文件是空的,也因此DHCP服务必须进行一定的配置才可以启动,DHCP的服务配置文件路径是:/etc/dhcp/dhcpd.conf
网段:服务器可以分配的地址的网段,可以指定多个
掩码:网段对应的掩码
默认租期:以秒为单位默认的IP地址的租期
最长租期:客户端可以请求一个租期,此项设定用于对此进行限制以秒为单位
地址池:服务器在可分配网段中可以分配的IP地址的范围
DNS:用于客户机从DHCP服务器获取的DNS地址

复制代码
option domain-name-servers 114.114.114.114
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.11.0 netmask 255.255.255.0
{
    range 192.168.11.3 192.168.11.124;
}
复制代码

对于一个DHCP服务器以上内容足够了,不过对于PXE还少了两个重要的选项,
next-server 192.168.11.2
filename "pxelinux.0"
next-server用来指定TFTP服务器的位置
filename用来指定要访问TFTP服务器上的哪个文件

复制代码
option domain-name-servers 114.114.114.114
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.11.0 netmask 255.255.255.0
{
    next-server 192.168.11.2;
    filename "pxelinux.0";
    range 192.168.11.3 192.168.11.124;
}
复制代码

6.将相关文件复制到TFTP共享目录

TFTP的共享目录在/var/lib/tftpboot/下,
在此创建一个7的目录
复制光盘目录中isolinux下的initrd.img和vmlinuz到/var/lib/tftpboot/7目录下
在共享目录下创建一个名为pxelinux.cfg的文件夹并将光盘目录中isolinux下的isolinux.cfg复制到pxelinux.cfg目录下并且命名为default
将/usr/share/syslinux/menu.c32复制到/var/lib/tftpboot目录下,此文件是菜单背景文件
将/usr/share/syslinux/pxelinux.0复制到/var/lib/tftpboot目录下

修改default文件

复制代码
default menu.c32
timeout 600
display boot.msg
label linux
  menu label ^Install CentOS 7
  kernel 7/vmlinuz
  append initrd=7/initrd.img ks=http://192.168.11.2/anaconda-ks.cfg
label local
  menu default
  menu label Boot from ^local drive
  localboot 0xffff
menu end
复制代码

7.启动测试

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!