PXE工作流程,请参考下面这幅图
一.需要安装的服务
(1) httpd或者VSFTP也可,用来发布系统镜像(默认安装不需要配置)。
Yum install httpd
service httpd start
chkconfig --level 35 httpd on
网站默认根目录为/var/www/html
(2) tftp 用来加载pxe,syslinux一个很小的linux系统
yum install tftp-server
修改下配置/etc/xinetd.d/tftp
将disable =no 默认为yes
service xinetd start #(tftp服务是挂载在超级进程xinetd 下的,所以通过启动xinetd 来启动tftp服务)
chkconfig --level 35 xinetd on
(3)DHCP 在DHCP上指定TFTP的IP 和加载的PXELINUX文件位置 默认/tftpboot下
yum install DHCP
配置DHCP
cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcp.conf
vi /etc/dhcp/dhcp.conf
在ddns-update-style interim; #(找到ddns-update开始修改)
ddns-update-style interim;
ignore client-updates;
filename “pxelinux.0” #tftp根目录下文件
next-server 192.168.31.199; #楼主的tftp服务器
subnet 192.168.31.0 netmask 255.255.255.0{
option routers 192.168.31.199: #应该是指DHCP服务器
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.31.114 192.168.31.144;#地址池
default-lease-time 21600;
max-lease-time 43200;
}
启动DHCP
/etc/init.d/dhcp start
chkconfig --level 35 dhcp on
(4) kickstart 生成安装脚本ks.cfg
yum install system-config-kickstart
然后到xwindow环境下
然后就开始配置安装参数(分区、软件包、全部是图形化界面)
最后保存ks.cfg到html(网站根目录)
[[email protected] tftpboot]# find / -name ks.cfg
/var/www/html/ks.cfg
二.文件
1.安装镜像(http或者vsftp)
解压镜像到http的根目录 /var/www/html/media/
mount /dev/cdrom /media
cp -r /media /var/www/html
#或者使用vsftp传输的话解压到/var/pub/media/#
2.PXELINUX(TFTP路径下)
(1) pxelinux.0 (路径在/usr/share/syslinux/pxelinux.0)
我的机子没有,网上查询需要安装yum install syslinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
(2) pxelinux.cfg/default (为光盘里面的isolinux/isolinux.cfg)
新建路径 mkdir /var/lib/tftpboot/pxelinux.cfg
cp /var/www/html/media/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
cp并改名为default
(3) boot.msg (为光盘isolinux/boot.msg)
cp /var/www/html/media/isolinux/boot.msg /var/lib/tftpboot/boot.msg
(4) initrd.img (为PXELINUX的内核文件?位于光盘/pxeboot/initrd.img)
cp /var/www/media/pxeboot/initrd.img /var/lib/tftpboot/initrd.img
(5) vmlinuz(为PXELINUX的内核文件?位于光盘/pxeboot/vmlinux)
cp /var/www/media/pxeboot/vmlinuz /var/lib/tftpboot/vmli
三.配置启动项
pxelinux.cfg/default(位于TFTP下)
PXE的启动目录
vi /var/lib/tftpboot/pxelinux.cfg/default
default ks #默认启动的是 ‘label ks‘ 中标记的启动内核
prompt 1 #显示 ‘boot: ‘ 提示符。为 ‘0‘ 时则不提示,将会直接启动 ‘default‘ 参数中指定的内容。
timeout 6 #在用户输入之前的超时时间,单位为 1/10 秒。
display boot.msg #显示某个文件的内容,注意文件的路径。默认是在/var/lib/tftpboot/ 目录下。也可以指定位类似 ‘/install/boot.msg‘这样的,路径+文件名。
F1 boot.msg #按下 ‘F1‘ 这样的键后显示的文件。
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
label linux #‘label‘ 指定你在 ‘boot:‘ 提示符下输入的关键字,比如boot: linux[ENTER],这个会启动‘label linux‘ 下标记的kernel 和initrd.img 文件。
kernel vmlinuz #kernel 参数指定要启动的内核。
append initrd=initrd.img #append 指定追加给内核的参数,能够在grub 里使用的追加给内核的参数,在这里也都可以使用。
label text
kernel vmlinuz
append initrd=initrd.img text
label ks
kernel vmlinuz
append ks=http://192.168.31.199/aks.cfg
initrd=initrd.img #告诉系统,从哪里获取ks.cfg文件
label local
localboot 1
label memtest86
kernel memtest
append -
四.测试结果