PXE的工作过程:
PXE Client向DHCP发送请求
当计算机开机时第一次登录网络的时候,发现本机上没有任何IP地址设定。PXE Client会从自己的PXE网卡启动,通过PXE BootROM(自启动芯片)会以UDP(简单用户数据报协议)发送一个广播请求,源IP地址是0.0.0.0,发送DHCP discover发现信息来寻找DHCP服务器,即向目标IP地址是255.255.255.255发送特定的广播信息。网络上每一台安装了TCP/IP协议的主机都会接收到这个广播信息,但只有DHCP服务器才会做出响应。DHCP服务器提供信息
DHCP服务器收到客户端的请求,验证是否来至合法的PXE Client的请求,验证通过它将给客户端一个“提供”响应,这个“提供”响应中包含了为客户端分配的IP地址和其他设置的DHCP offer信息。DHCP offer提供信息包括pxelinux启动程序(TFTP)位置,以及PXE配置文件所在位置(该文件一般是放在一台TFTP服务器上)。DHCP客户机接收IP和服务器的互动
DHCP客户端接受到DHCP offer提供信息之后,选择第一个接收到的提供信息,然后以广播的方式回答一个DHCP request请求信息,该信息包含向它所选定的DHCP服务器请求IP地址的内容。当DHCP服务器收到DHCP客户端回答的DHCP request请求信息之后,便向DHCP客户端发送一个包含它所提供的IP地址和其他设置的DHCP ack确认信息,告诉DHCP客户端可以使用它提供的IP地址。然后,DHCP客户机便将其TCP/IP协议与网卡绑定,另外,除了DHCP客户机选中的 服务器外,其他的DHCP服务器将收回曾经提供的IP地址。这是第一次初始化网络。
PXE客户端请求下载启动文件
客户端收到服务器的“回应”后,会回应一个帧,以请求传送启动所需文件。这些启动文件包括:pxelinux.0、pxelinux.cfg/default、vmlinuz、initrd.img等文件。Boot Server响应客户端请求并传送文件
当服务器收到客户端的请求后,他们之间之后将有更多的信息在客户端与服务器之间作应答, 用以决定启动参数。BootROM由TFTP通讯协议从Boot Server下载启动安装程序所必须的文件(pxelinux.0、pxelinux.cfg/default)。客户端取得pxelinux.0 文件后之执行该文件,向服务器请求下载pxelinux.cfg文件。客户端pxelinux.cfg配置文件后,请求vmlinuz文件和initrd.img文件。会根据 该文件中定义的引导顺序,启动Linux安装程序的引导内核。请求下载自动应答文件
客户端通过pxelinux.cfg/default文件成功的引导Linux安装内核后,安装程序首先必须确定你通 过什么安装介质来安装linux,如果是通过网络安装(NFS, FTP, HTTP),则会在这个时候初始化网络(这是第二次初始化网络),并定位安装源位置。接着会读取default文件中指定的自动应答文件ks.cfg所在位置,根据该位置请求下载 该文件。PXE获取的是安装用的内核以及安装程序等,而安装程序要获取的是安装系统所需的二进制包以及配置文件PXE模块和安装程序是相对独立的,PXE的网络配置并不能传递给安装程序,从而进行两次获取IP地址过程,但IP地址在DHCP的租期内是一样的。客户端安装操作系统
将ks.cfg文件下载回来后,通过该文件找到OS Server,并按照该文件的配置请求下载安装过程需要的软件包。
OS Server和客户端建立连接后,将开始传输软件包,客户端将开始安装操作系统。安装完成后,将提示重新引导计算机。
kickstart是什么
许多系统管理员宁愿使用自动化的安装方法来安装红帽企业 Linux.为了满足这种需要,红帽创建了kickstart安装方法.使用kickstart,系统管理员可以创建一个文件,这个文件包含了在典型的安装过程中所遇 到的问题的答案.
Kickstart文件可以存放于单一的服务器上,在安装过程中被独立的机器所读取.这个安装方法可以支持使用单一kickstart文件在多台机器上安装红帽企业Linux,这对于网络和系统管理员来说是个理想的选择.
Kickstart给用户提供了一种自动化安装红帽企业Linux的方法,它的工作原理时在安装过程中记录典型的需要人工干预填写的各种参数,并生成一个名为ks.cfg的文件。如果在安装过程中(不只局限于生成KickStart安装文件的机器)出现要填写参数的情况,安装程序首选会去查找KickStart生成的文件,如果找到合适的参数,就采用所找到的参数;如果没有找到合适的参数,便需要安装着手工干预了。所以如果KickStart文件涵盖了安装过程中可能出现的所有需要填写的参数,那么安装着完全可以只告诉安装程序从何处去ks.cfg文件,然后就去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中设置重启系统,并结束安装。
kickstack网络装机
搭建yum源
mount /mnt /dev/sdb
cp -a /mnt/* /opt/centos7
vim /etc/yum.repos.d/local.repo
[centos7]
name=centos7
baseurl=file:///opt/centos7
gpgcheck=0
enabled=1
搭建tftp服务、ftp服务
yum -y install tftp-server vsftpd
vim /etc/xinetd.d/tftp
disable=no
vim /etc/vsftpd/vsftpd.conf
anon_root=/opt
systemctl start vsfptd
systemctl enable vsftpd
搭建dhcp服务
yum -y install dhcp
cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
default-lease-time 21600;
max-lease-time 43200;
option domain-name "tedu.cn";
option domain-name-servers 172.16.100.10;
subnet 172.16.100.0 netmask 255.255.255.0 {
range 172.16.100.100 172.16.100.200;
next-server 172.16.100.10; # dhcp获取IP地址后寻找的下一个服务器IP
filename "/pxelinux.0"; # 下载tftp根目录pxelinux.0文件
}
systemctl start dhcp
systemctl enable dhcp
pxe引导配置
# 复制初始化镜像和安装程序的内核到tftp-server资源根目录下
cp /opt/images/pxeboot/{initrd.img,vmlinuz} /var/lib/tftpboot/
# 复制pxelinux.0到tftp-server资源根目录下(提供网卡启动文件、启动配置)
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp /opt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinx.cfg/default
vim /var/lib/tftpboot/pxelinux.cfg/default
prompt 1 # 提示用户选择安装系统配合boot.msg文件
boot.msg
timeout 600 # 60秒询问时间
default centos7 # 默认安装系统
label centos7
kernel vmlinuz7 # /var/lib/tftpboot/vmlinuz的相对路径
append initrd=centos7/initrd7.img inst.repo=ftp://172.16.100.10/centos7 quiet
vim boot.msg
--enter "rhel6"
--enter "rhel7"
systemctl start xinetd