3案例3:配置PXE引导
3.1 问题
本例要求为PXE装机提供引导服务,并提供必要的素材,完成下列任务:
- 启动TFTP服务,部署引导文件(内核vmlinuz、初始化文件initrd.img、网卡启动程序pxelinux.0)
- 创建pxelinux.cfg/配置目录,在此目录下建立默认引导文件default
3.2 方案
TFTP,Trival File Transfer Protocol:简单文件传输信息,通过UDP 69端口提供小文件的传输服务,默认应将资源部署到/var/lib/tftpboot目录下,不支持认证和目录访问等复杂FTP操作。
网卡启动程序pxelinux.0由软件包syslinux提供。
PXE安装用的内核及初始化文明可从RHEL7的光盘目录/images/pxeboot/下提取。
PXE启动配置相关资料可参考RHEL7的光盘目录/isolinux/,其中包括图形我饿反面支持模块vesamenu.c32、背景图片spash.png、菜单配置文件isolinux.cfg(使用时改名为default)
3.3 步骤
实现此案例需要按照如下步骤进行。
步骤一:快速构建服务器
1)安装tftp-server软件包
[root@svr7 ~]# yum -y install tftp-server
.. ..
2)启动系统服务tftp,并设置开机自启
[root@svr7 ~]# systemctl restart tftp
[root@svr7 ~]# systemctl enable tftp
Created symlink from /etc/systemd/system/sockets.target.wants/tftp.socket to /usr/lib/systemd/system/tftp.socket.
步骤二:部署启动文件
1)拷贝pxelinux.0程序,部署到TFTP目录
在软件包syslinux提供的目录下找到pxelinux.0程序
[root@svr7 ~]# yum -y install syslinux
[root@svr7 ~]# rpm -ql syslinux | grep pxelinux.0
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0
将其拷贝到/var/ftpboot/目录下,确认部署结果:
[root@svr7 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@svr7 ~]# ls /var/lib/tftpboot/
pxelinux.0
2)拷贝引导装机的内核、初始镜像,部署到TFTP目录
当文件较多时,可以在TFTP目录下创建子目录:
[root@svr7 ~]# mkdir /var/lib/tftpboot/rhel7
再通过RHEL7光盘目录找到PXE版内核vmlinuz、初始化镜像intrd.img,将其拷贝到上述子目录:
[root@svr7 ~]# cd /var/lib/tftpboot/rhel7/
[root@svr7 rhel7]# wget http://192.168.4.254/rh7dvd/isolinux/vmlinuz
[root@svr7 rhel7]# wget http://192.168.4.254/rh7dvd/isolinux/initrd.img
//下载内核、初始化文件
确认部署结果:
[root@svr7 pxeboot]# ls -R /var/lib/tftpboot/
/var/lib/tftpboot/:
pxelinux.0 rhel7
/var/lib/tftpboot/rhel7:
initrd.img vmlinuz
步骤三:配置启动菜单
1)创建配置目录
[root@svr7 ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
2)以光盘中的isolinux目录为模板,拷贝必要的文件
[root@svr7 ~]# cd /var/lib/tftpboot/
[root@svr7 tftpboot]# wget http://192.168.4.254/rh7dvd/isolinux/vesamenu.c32
//提供图形支持
[root@svr7 tftpboot]# wget http://192.168.4.254/rh7dvd/isolinux/splash.png
//准备背景图片
[root@svr7 tftpboot]# wget -O pxelinux.cfg/default http://192.168.4.254/rh7dvd/isolinux/isolinux.cfg
//建立菜单配置
[root@svr7 isolinux]# ls -R /var/lib/tftpboot/ //确认部署结果
/var/lib/tftpboot/:
pxelinux.0 pxelinux.cfg rhel7 splash.png vesamenu.c32
/var/lib/tftpboot/pxelinux.cfg:
default
/var/lib/tftpboot/rhel7:
initrd.img vmlinuz
3)调整启动参数
[root@svr7 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
default vesamenu.c32 //默认交给图形模块处理
timeout 600 //选择限时为60秒(单位1/10秒)
.. ..
menu title PXE Installation Server //启动菜单标题信息
.. ..
label linux //菜单项标签
menu label ^Install Red Hat Enterprise Linux 7
kernel rhel7/vmlinuz //内核的位置
append initrd=rhel7/initrd.img inst.stage2=http://192.168.4.254/rh7dvd
//初始镜像、安装源位置
label rescue
menu label ^Rescue a Red Hat Enterprise Linux system
kernel rhel7/vmlinuz
append initrd=rhel7/initrd.img inst.stage2=http://192.168.4.254/rh7dvd rescue
label local //从硬盘启动
menu default //默认启动方式
menu label Boot from ^local drive
localboot 0xffff
menu end
步骤四:访问TFTP服务端确保可用
1)在pc207上安装tftp命令工具
[root@pc207 ~]# yum -y install tftp
.. ..
2)在pc207上访问svr7上的TFTP服务端,下载文件测试
[root@pc207 ~]# tftp 192.168.4.7 -c get pxelinux.0
[root@pc207 ~]# ls -lh pxelinux.0 //检查下载结果
-rw-r--r--. 1 root root 27K 1月 13 15:48 pxelinux.0