PXE是在没有软驱、硬盘、CD-ROM的情况下引导计算机的一种方式,也就是BIOS将使用PXE协议从网络引导。
DHCP服务器:用来动态分配IP地址(同时分配子网掩码、网关、TFTP服务器地址、启动文件名、DNS服务器、时间服务器等等)。
TFTP服务器:用来提供启动文件的下载
简单说来,PXE服务器就是DHCP服务器+TFTP服务器。网络启动过程大概是这样的(可能并不严谨):客户端发送动态获得IP地址的广播包到 网络上,DHCP服务器在收到该广播包后,发送给客户端分配IP地址的回应包,客户端收到回应包后设置自己的IP地址,然后从DHCP服务器获得启动服务 器的IP地址(DHCP服务器066选项,这就是TFTP服务器的IP地址)及启动文件名(DHCP服务器067选项,这里的启动文件名就是 pxelinux.0或者支持pxe的grub4dos的grldr,当然,也可以是startrom.n12或者使用3com Image Edit创建的pxe启动菜单文件,总之,它应该是一种由pxe启动规范规定的固定格式的可执行文件),然后客户端到联系启动服务器(TFTP服务器)获 得启动文件并执行,这样基本上就完成了pxe启动过程。
在Unix或者Linux系统下,DHCP服务器和TFTP服务器一般都是分开设置的,两台服务器甚至可以在两台不同的机器上,其实 Windows下的设置也是一样的,但在Windows下,我们可以通过使用HaneWin DHCP服务器软件或TFTPD32一个软件就搞定(我个人推荐使用HaneWin DHCP服务器软件,但TFTPD32设置起来更简单一些,就是效率有些低),详细的设置方法请自己摸索,你只要知道,在设置PXE服务器时,要设置好 DHCP和TFTP两个服务器,其中DHCP服务器要设置启动服务器名和启动文件名。
搭建环境:
推送服务器:
Ip:192.168.189.138
系统:CentOS 5.8
推送系统:RHEL 5.4
1:配置dhcpd服务。
如果没有安装dhcpd服务,请安装:
# yum -y install dhcp.x86_64
# vi /etc/dhcpd.conf
option domain-name "766.com";
default-lease-time 6000;
max-lease-time 11400;
authourtative;
next-server 192.168.189.138;
ddns-update-style ad-hoc;
log-facility local7;
subnet 192.168.189.0 netmask 255.255.255.0{
range 192.168.189.150 192.168.189.195;
option domain-name-servers 192.168.189.254;
option domain-name "766.com";
option netbios-name-servers 192.168.189.254;
option routers 192.168.189.254;
option broadcast-address 192.168.189.255;
default-lease-time 6000;
max-lease-time 11400;
filename "/kickstart/ks.cfg";
}
option space PXE;
class "PXE" {
match if substring(optionvendor-class-identifier, 0, 9) = "PXEClient";
optionvendor-encapsulated-options 01:04:00:00:00:00:ff;
option boot-size 0x1;
filename"pxelinux.0";
option tftp-server-name "192.168.189.138";
option vendor-class-identifier"PXEClient";
vendor-option-space PXE;
}
2:开启tftp服务:
如果没有tftp服务软件,请安装:
# yum -y installtftp.x86_64
# yum -y installxinetd.x86_64
# yum -y installtftp-server.x86_64
配置tftp
# vi/etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
3:准备推送所需的文件与目录。
把光盘或iso文件中的isolinux目录下的文件,拷贝到/tftpboot。
把pxelinux.0文件拷贝到/tftpboot:
# cp /usr/lib/syslinux/pxelinux.0 /tftpboot
创建RHEL5.4目录,把initrd.img、vmlinuz两个文件拷贝进去:
# mkdir -p /tftpboot/RHEL5.4
# mv /tftpboot/initrd.img /tftpboot/RHEL5.4
# mv /tftpboot/vmlinuz /tftpboot/RHEL5.4
创建pxelinux.cfg目录,把isolinux.cfg文件拷贝进去,并改名default: