[ root@vinsent tftpboot ]#cp /var/www/html/centos/7/{vmlinuz,initrd.img} centos7/ # 由于之前挂载了不同系统,直接复制对应文件即可
[ root@vinsent tftpboot ]#cp /usr/share/syslinux/pxelinux.0 . # pxelinux文件来自syslinux包,直接复制即可
[ root@vinsent tftpboot ]#mkdir pxelinux.cfg
[ root@vinsent tftpboot ]#cp /var/www/html/centos/6/isolinux/isolinux.cfg pxelinux.cfg/default # 复制并改名
[ root@vinsent tftpboot ]#vim pxelinux.cfg/default
... # 修改过程省略,
[ root@vinsent tftpboot ]#cat pxelinux.cfg/default # 查看修改过后的菜单文件内容
default menu.c32 # 指定菜单风格
timeout 600 # 安装倒计时,1/10 s为单位
menu title Auto Install |
label centos7
menu label Auto Install CentOS Linux ^7
kernel centos7/vmlinuz
append initrd=centos7/initrd.img ks= # 指明ks文件位置
label centos6
menu label Auto Install CentOS Linux ^6
kernel centos6/vmlinuz
append initrd=centos6/initrd.img ks=http://192.168.14.201/ksdir/ks6.cfg
label manual7
menu label ^Manual Install CentOS Linux 7
kernel centos7/vmlinuz
append initrd=centos7/initrd.img inst.repo=http://192.168.14.201/centos/7
label manual6
menu label Manual ^Install CentOS Linux 6
kernel centos6/vmlinuz
append initrd=centos6/initrd.img inst.repo=http://192.168.14.201/centos/6
label local
menu default # 默认光标停在这一行
menu label Boot from ^local drive
localboot 0xffff
menu end
到此所有的配置就完成了。
6 调试并安装
新创建一台虚拟机,设置网络段在上述DHCP服务所在的网络段,选择使用物理驱动器。
点击启动项开始安装,选择网络安装。
点击网络安装后,我们就能看到我们的菜单了。
然后选择你要启动的项即可。
7 错误分析
最初还不是很熟悉PXE原理的时候,遇到了很多问题,在最后给处我与到的几个问题,即解决方法。
问题1:ks.cfg文件出错
解决方法:检查tftp服务是否启动,ks#.cfg文件路径是否正确,ks#.cfg文件是否具有读权限。出现这个问题大概就是这几个地方出了问题
问题2:yum源文件路径出错
解决方法:寻找yum源出现错误,该错误是ks.cfg文件中url路径写错了,修改该路径为正确的yum源所在的地址即可。
问题3:iptables与selinux出问题
遗憾忘记截图给大家了,见谅,安装前检查一下iptables与selinux是否关闭(实验环境,生产中不建议这么粗暴!)
8 总结