PXE
引导启动优点:
客户端不需要任何外设支持,无需光驱和U盘,只要网卡支持PXE启动就行。
合适多种自动应答的安装,如有A,B,C三种配置,只需PXE引导后指定A或B或C配置就行。实现了无外设的全自动无人值守安装。
安装机器的台数无限制,可以同时进行多台机器的基于不同配置的安装。
工作流程:
客户端设置从PXE引导后,从DHCP服务器上获取到IP和下一跳TFTP服务器地址,然后从TFTP上加载initr.img 和vmlinuz引导文件引导系统,最后指定从HTTP或者FTP上获取安装文件进行安装。PXEàDHCPàTFTPà kickstart àHTTP/FTP
服务器端配置:
服务器端要配置DHCP,TFTP,HTTP/FTP三种服务
DHCP为PXE客户端分发IP地址,TFTP为客户端提供引导文件,HTTP/FTP为客户端提供安装源文件。
需要安装的包:
dhcp.i386 tftp-server.i386 syslinux.i386 httpd.i386
配置
DHCP
服务器:
在/etc目录下新建dhcpd.conf 文件,或者从/usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample CP一份到/etc目录中。
主要参数:
range dynamic-bootp 是PXE启动后获得的IP地址。
next-server 是PXE启动获得IP后下一跳的地址,也就是TFTP服务器地址。
filename 是启动文件。
内容如下:
-------------------------------------内容--------------------------------------------
ddns-update-style interim;
ignore client-updates;
allow booting;
allow bootp;
subnet 192.168.40.0 netmask 255.255.255.0 {
# --- default gateway
option routers 192.168.40.254;
option subnet-mask 255.255.255.0;
# option nis-domain "domain.org";
# option domain-name "domain.org";
option domain-name-servers 192.168.40.254;
option time-offset -18000; # Eastern Standard Time
# option ntp-servers 192.168.1.1;
# option netbios-name-servers 192.168.1.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
# option netbios-node-type 2;
range dynamic-bootp 192.168.40.13 192.168.40.15;
default-lease-time 21600;
max-lease-time 43200;
next-server 192.168.40.163;
filename "pxelinux.0";
# we want the nameserver to appear at a fixed address
# host ns {
# next-server marvin.redhat.com;
# hardware ethernet 12:34:56:78:AB:CD;
# fixed-address 207.175.42.254;
# }
}
配置
tftp
服务器:
vi /etc/xinetd.d/tftp
disable = no 将disable项改为NO。
复制内核启动文件到tftp目录:
cp /usr/lib/syslinux/pxelinux.0 /tftpboot/
将CentOS5.2光盘 /media/image/pxeboot/ 目录中的initr.img 和vmlinuz 两个文件复制到/tftpboot/目录中。
将 CentOS5.2光盘 /media/isolinux/ 下*.msg 文件复制到/tftpboot/ 目录中
在/tftpboot/目录中新建pxelinux.cfg 目录。将光盘/media/isolinux/isolinux.cfg 文件复制到/tftpboot/pxelinux.cfg目录中并改名为default.cfg
命令如下:
#cp /usr/lib/syslinux/pxelinux.0 /tftpboot/
#cp /media/image/pxeboot/initr.img /tftpboot/
#cp /media/image/pxeboot/vmlinuz /tftpboot/
#cp /media/isolinux/*.msg /tftpboot/
#mkdir /tftpboot/pxelinux.cfg
#cp /media/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
配置无人值守安装:
1编辑boot启动界面,加入自定义安装项。
[root@PXE /]# vi /tftpboot/boot.msg
^Xsplash.lss
- To install or upgrade in graphical mode, press the ^O0b<ENTER>^O07 key.
- To install or upgrade in text mode, type: ^O0blinux text <ENTER>^O07.
- To Auto Install ^O0bCentOS5.2 Linux^O07, type:^O0blinux autoinstall <ENTER>^O07.
- To Auto Install ^O0bCentOS5.2 sn01^O07, type:^O0blinux sn01 <ENTER>^O07.
- To Auto Install ^O0bCentOS5.2 sn02^O07, type:^O0blinux sn02 <ENTER>^O07.
- To Auto Install ^O0bCentOS5.2 sn03^O07, type:^O0blinux sn03 <ENTER>^O07.
- Use the function keys listed below for more information.
^O0f[F1-Main] [F2-Options] [F3-General] [F4-Kernel] [F5-Rescue]^O07
红颜色的是我加入的自定义安装项,autoinstall sn01 sn02 sn03
2编辑启动配置文件:添加自定义安装项标签和命令。
[root@PXE /]# vim /tftpboot/pxelinux.cfg/default
F3 general.msg
F4 param.msg
F5 rescue.msg
label linux
kernel vmlinuz
append initrd=initrd.img
label text
kernel vmlinuz
append initrd=initrd.img text
label ks
kernel vmlinuz
append ks initrd=initrd.img
label local
localboot 1
label memtest86
kernel memtest
append -
label autoinstall
kernel vmlinuz
append ks=http://192.168.40.163/ks/ks228.cfg initrd=initrd.img devfs=nomount ramdisk_size=9216 nofb
label sn01
kernel vmlinuz
append ks=http://192.168.40.163/ks/ks01.cfg initrd=initrd.img devfs=nomount ramdisk_size=9216 nofb
label sn02
kernel vmlinuz
append ks=http://192.168.40.163/ks/ks02.cfg initrd=initrd.img devfs=nomount ramdisk_size=9216 nofb
label sn03
kernel vmlinuz
append ks=http://192.168.40.163/ks/ks03.cfg initrd=initrd.img devfs=nomount ramdisk_size=9216 nofb
红颜色的是我自己加的自定义项,分别指向的是HTTP服务器上的自动应答文件,
当在BOOT界面中输入自定义安装项时,会自动调用HTTP上的自动应答文件,实现了全自动的无人值守安装。
客户端配置:
启动机器设置成PXE启动,然后指定要使用的安装项就可以了。
最好不要将PXE设置成第一启动,要不然每次启动都装一次系统, 应该是启动时手动指定一下从PXE启动就行了,DELL服务器PXE启动为F12键 。
首先客户端会向DHCP申请IP。
DHCP回应,客户端连接到TFTP服务器上读取启动文件,加载/tftpboot/boot.msg 和 /tftpboot/pxelinux.cfg/default 文件,可以看到写进去的自定义安装项。
比如要使用服务器上KS02.cfg这个自动应答文件,
只需在BOOT:输入SN03 回车就开始自动安装了。