1 PXE技术的基本原理linux
PXE技术与RPL技术不一样之处为RPL是静态路由,PXE是动态路由。RPL是根据网卡上的ID号加上其余记录组成的一个Frame(帧)向服务器发出请求。而服务器中已有这个ID数据,匹配成功则进行远程启动。PXE则是根据服务器端收到的工件站MAC地址,使用DHCP服务为这个MAC地址指定个IP地址。每次启动可能同一台工做站有与上次启动有不一样的IP,即动态分配地址。下以客户端引导过程说明PXE的原理。ios
(1)客户端开机后,PXE BootROM(自启动芯片)得到控制权以前执行自我测试,而后以广播形式发出一个请求FIND帧。bootstrap
(2)若是服务器收到客户端所送出的要求,就会送回DHCP回应,包括用户端的IP地址、预设通讯通道,以及开机映像文件;不然服务器会忽略这个要求。vim
(3)客户端收到服务器发回的响应后则会回应一个帧,以请求传送启动所需文件,并把本身的MAC地址写到服务器端的Netnames.db文件中。服务器
(4)将有更多的消息在客户端与服务器之间应答,用于决定启动参数。BootROM由TFTP通讯协议从服务器下载开机映像文档。客户端使用TFTP协议接收启动文件后,将控制权转交启动块以引导操做系统,完成远程启动。网络
PXE协议的成功运行须要解决如下的两个问题测试
(1)既然是经过网络传输,那么计算机在启动时其IP地址如何配置?spa
(2)经过何种下载Linux内核和根文件系统?操作系统
第一个问题能够经过DHCP Server解决,由DHCP Server来为PXE Client分配一个IP地址,DHCP Server是用来为DHCP Client动态分配IP地址的协议。不过因为这里是为PXE Client分配IP地址,因此在配置DHCP Server时须要增长相应的PXE特有配置;至于第2个问题,在PXE Client所在的ROM中,已经存在了TFTP Client。PXE Client使用TFTP Client,经过TFTP协议到TFTP Server上下载所需的文件。这样,PXE协议运行的条件就具有了,PXE的安装流程如图所示。
在图中,PXE Client是须要安装Linux的计算机,TFTP Server和DHCP Server运行在另一台Linux Server上,Bootstrap文件、配置文件、Linux内核,以及Linux根文件系统都放置在Linux Server上TFTP服务器的根目录下。除了配置文件,这3个二进制文件是PXE Client在工件过程当中所必需的文件,即bootstrap、Linux内核和Linux根文件系统。Bootstrap文件是可执行程序,它为用户提供简单的控制界面,并根据用户的选择下载合适的Linux内核以及Linux根文件系统。
图1 PXE的基本原理
KickStart是一种无人职守安装方式。KickStart的工做原理是经过记录典型的安装过程当中所需人工干预填写的各类参数,并生成一个名为ks.cfg的文件;在其后的安装过程当中(不仅局限于生成KickStart安装文件的机器)当出现要求填写参数的状况时,安装程序会首先去查找KickStart生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才须要安装者手工干预。这样,若是KickStart文件涵盖了安装过程当中出现的全部须要填写的参数时,安装者彻底能够只告诉安装程序从何处取ks.cfg文件,而后去忙本身的事情。等安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。
执行PXE+KickStart安装须要的设备为:
DHCP 服务器;
TFTP 服务器;
KickStart所生成的ks.cfg配置文件
一台存放系统安装文件的服务器,如 NFS、HTTP 或 FTP 服务器。
带有一个 PXE 支持网卡的将安装的主机;
vsftp
xinetd-*
tftp-server-*
dhcp-*
system-config-kickstart-*
syslinux
首先挂光盘:umont /dev/cdrom
mount /dev/cdrom /mnt
cd /mnt/Packages/
而后搭建ftp yum源。。
用yum安装tftp服务器。。
开启vsftpd服务和tftp服务。而且设置开机自启动
编辑tftp服务器配置。vim /etc/xinetd.d/tftp 将disable=yes改为no
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
复制pxe的启动文件到tftp配置里面。
复制ios里面的这两个小型系统文件到tftp配置里面。
mkdir /var/lib/tftpboot/pxelinux.cfg
建立文件夹。
复制一个配置模板到新建的default里面。。
yum-y install system-config-kickstart
system-config-kickstart