PXE +启动无人值守安装centos7
1.1 PXE说明
所谓的PXE是Preboot执行环境的缩写,字面上的意思是开机前的执行环境。
要达成PXE必须要有两个环节:
(1)一个是客户端的网卡必须要支持PXE用户端功能,并且开机时选择从网卡启动,这样系统才会以网卡进入PXE客户端的程序;
(2)一个是PXE服务器必须要提供至少含有DHCP以及TFTP的服务!
且其中:
?·DHCP服务必须要能够提供客户端的网络参数,还要告知客户端TFTP所在的位置;
?·TFTP则提供客户端内核的引导加载程序及文件下载路径。
还要加上NFS/FTP/HTTP(选择一样即可)等提供安装文件(安装镜像的解压文件),才算是比较完整的PXE服务器。一般TFTP和DHCP服务都由同一台服务器提供,且大多数时候还提供NFS/FTP/HTTP服务,所以PXE服务器一般是提供3合一的服务。
1.2 PXE流程
如下图:图片来源于网络,虽不易理解,但细节描述的很好。
(1)。<强>客户端向PXE服务器上的DHCP发送IP地址请求消息>强,DHCP检测客户端是否合法(主要是检测客户的网卡MAC地址),如果合法则返回客户机的IP地址,同时将PXE环境下的引导加载程序文件pxelinux.0的位置信息传送给客户。
(2)。<强>客户端向PXE服务器上的TFTP请求pxelinux.0 >强,TFTP接收到消息之后再向客户发送pxelinux.0大小信息,试探客户是否满意,当TFTP收到客户发回的同意大小信息之后,正式向客户发送pxelinux.0。
(3)。<强>客户执行接收到的pxelinux.0文件强>。
(4)。<强>客户端向TFTP请求pxelinux.cfg文件强>(其实它是目录,里面放置的是是启动菜单,即grub的配置文件),TFTP将配置文件发回客户端,继而端根据配置文件执行后续操作。
(5)。<强>客户端向TFTP发送Linux内核请求信息>强,TFTP接收到消息之后将内核文件发送给客户。
(6)。<强>客户端向TFTP发送根文件请求信息>强,TFTP接收到消息之后返回Linux根文件系统。
(7)。<强>客户端加载Linux内核强>(启动参数已经在4中的配置文件中设置好了)。
(8)。<强>客户通过nfs/ftp/http下载系统安装文件进行安装。如果在4中的配置文件指定了启动路径,则会根据此文件自动应答安装系统。强>
1.3部署环境说明
如下图,192.168.38.137是PXE服务器,提供dhcp + tftp + http服务。其他该网段内的主机为待安装系统的主机群。
1.4部署DHCP服务
首先安装dhcp服务端程序。
<代码> yum - y安装dhcp 代码>
DHCP主要是提供客户端网络参数与TFTP的位置,以及引导加载程序的文件名,同时,我们仅针对内网来告知TFTP的相关位置,所以可以编辑/etc/DHCP/了dhcpd。会议在子网的区块内加入两个参数即可。其中PXE上专门为PXE客户端下载的引导加载程序文件名称为pxelinux.0。
<代码> root@server ~ #猫/etc/dhcp/dhcpd.conf ddns-update-style没有; default-lease-time 259200; max-lease-time 518400; 选择路由器192.168.38.2; 选择domain-name-servers 192.168.38.2; 子网192.168.38.0子网掩码255.255.255.0 { 范围192.168.38.200 192.168.38.220; 选择子网掩码255.255.255.0; 下一个服务器192.168.38.137;#就是TFTP的位置 文件名“pxelinux.0”;#告知得从TFTP根目录下载的引导加载程序文件名 }代码>
重启dhcp
<代码> systemctl重启了dhcpd 代码>
1.5部署TFTP
从流程图中可以看的出,引导加载程序文件pxelinux.0以及内核相关的配置文件(目录pxelinux.cfg下)主要都是由TFTP来提供的!
TFTP的安装很简单,直接使用yum即可。不过要告诉客户端TFTP的根目录在哪里,这样客户端才能找到相关文件。另外要注意,TFTP是由xinetd这个超级守护进程所管理的,因此设定好TFTP之后,要启动的是xinetd。
<代码> yum安装tftp服务器代码>
默认TFTP服务的根目录是/var/lib/tftpboot/,默认就这个吧,然后禁用改没有即为可
<代码> sed ri/禁用/年代/是的/不//etc/xinetd.d/tftp 猫/etc/xinetd.d/tftp tftp服务 { socket_type=dgram=udp协议 等待=yes 用户=根 服务器=/usr/sbin/in.tftpd server_args=s/var/lib/tftpboot 禁用=没有 per_source=11 cps=100 2 旗帜=IPv4 }PXE +启动无人值守安装centos7