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