文章目錄
- 1. PXE
- 2. 配置服務參數
- 2.1 tftp服務配置
- 2.2 dhcp服務配置
- 2.3 http服務配置
- 3. 配置PXE環境
- 3.1 網絡引導文件pxelinux.0
- 3.2 掛載鏡像文件
- 3.3 創建配置文件default
- 3.4 復制鏡像文件和驅動文件
- 3.5 修改default文件
- 3.6 配置ks.cfg文件
- 4. PXE客戶端
- 4.1 創建虛擬機,不放鏡像
- 5. 踩坑記錄
- 1. PXE-E53:No boot filename received
- 2. Failed to load ldlinux.c32
- 3. warning :/dev/root does not exist
- 4. http服務異常-Forbidden
- 5. pxe客戶機安裝一半卡住了-軟件源未設置
- 6. pxe客戶機安裝系統到最后了,但是不自動重啟系統
- 7. 客戶機已禁用cpu
1. PXE
PXE:Pre-boot Execution Environment,預啟動執行環境。
- PXE是Client/Server模式的。
2. 配置服務參數
- 關閉vmnet8的dhcp服務
- 下載相關軟件:
yum install syslinux tftp-server dhcp httpd
- 把防火墻關閉
- 配置好yum源
2.1 tftp服務配置
- tftp的配置文件:
/etc/xinetd.d/tftp
service tftp
{socket_type = dgramprotocol = udp # 依賴于udp協議wait = no # 非阻塞模式;tftp一次可連接多個用戶user = root # 服務進程以root用戶運行server = /usr/sbin/in.tftpdserver_args = -s /var/lib/tftpboot # 用戶訪問的目錄disable = no # 啟用服務per_source = 11 # 最大連接數cps = 100 2flags = IPv4
}
- 啟動該服務
[root@oldboy99 ~]# systemctl start tftp.service [root@oldboy99 ~]# systemctl status tftp.service ● tftp.service - Tftp ServerLoaded: loaded (/usr/lib/systemd/system/tftp.service; indirect; vendor preset: disabled)Active: active (running) since Wed 2025-04-30 09:12:55 CST; 6s agoDocs: man:in.tftpdMain PID: 30669 (in.tftpd)Tasks: 1Memory: 96.0KCGroup: /system.slice/tftp.service└─30669 /usr/sbin/in.tftpd -s /var/lib/tftpboot4月 30 09:12:55 oldboy99 systemd[1]: Started Tftp Server.
2.2 dhcp服務配置
- dhcp的配置文件:
/etc/dhcp/dhcpd.conf
subnet 10.0.0.0 netmask 255.255.255.0{ # 子網配置參數option subnet-mask 255.255.255.0; # 子網掩碼option domain-name-servers 10.0.0.203; # dns服務器地址range dynamic-bootp 10.0.0.100 10.0.0.200; # 地址池范圍default-lease-time 21600;max-lease-time 43200;next-server 10.0.0.203; # tftp服務器地址#leagcy啟動方式引導文件filename "pxelinux.0"; # 通過BIOS引導啟動時的文件名
}
- 啟動該服務
[root@oldboy99 ~]# systemctl start dhcpd.service [root@oldboy99 ~]# systemctl status dhcpd.service ● dhcpd.service - DHCPv4 Server DaemonLoaded: loaded (/usr/lib/systemd/system/dhcpd.service; enabled; vendor preset: disabled)Active: active (running) since Wed 2025-04-30 14:12:20 CST; 5s agoDocs: man:dhcpd(8)man:dhcpd.conf(5)
2.3 http服務配置
- httpd的配置文件:
/etc/httpd/conf/httpd.conf
- 啟動該服務
[root@oldboy99 ~]# systemctl start httpd.service [root@oldboy99 ~]# systemctl status httpd.service ● httpd.service - The Apache HTTP ServerLoaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)Active: active (running) since Wed 2025-04-30 14:13:36 CST; 9s agoDocs: man:httpd.service(8)
3. 配置PXE環境
3.1 網絡引導文件pxelinux.0
- 該文件不在本地,只能通過軟件包下載
# 查找該文件存在于哪個軟件包
[root@oldboy99-Kylin-pxeServer ~]# yum provides "*/pxelinux.0"
上次元數據過期檢查:2:42:40 前,執行于 2025年05月10日 星期六 18時53分35秒。
syslinux-nonlinux-6.04-10.ky10.noarch : syslinux modules which aren't run from linux
倉庫 :ks10-adv-os
匹配來源:
文件名 :/usr/share/syslinux/pxelinux.0syslinux-nonlinux-6.04-14.ky10.noarch : syslinux modules which aren't run from linux
倉庫 :@System
匹配來源:
文件名 :/usr/share/syslinux/pxelinux.0
……
[root@oldboy99-Kylin-pxeServer ~]# yum install -y syslinux
上次元數據過期檢查:2:44:16 前,執行于 2025年05月10日 星期六 18時53分35秒。
軟件包 syslinux-6.04-14.ky10.x86_64 已安裝。
依賴關系解決。
無需任何處理。
完畢!
- 該文件存在于
/usr/share/syslinux/pxelinux.0
目錄下 - 將該文件移動到tftp的文件目錄下:
/var/lib/tftpboot
3.2 掛載鏡像文件
點擊設置,掛載kylin系統的鏡像文件
最后vm右下角的CD圖標有綠點表示掛載成功!
- 鏡像文件一般在/dev/cdrom下,將其掛載到http協議的文件目錄下
- 可以先創建個系統名的文件夾
[root@oldboy99-Kylin-pxeServer /var/www/html/kylin]# mount /dev/cdrom ./
mount: /var/www/html/kylin: WARNING: source write-protected, mounted read-only.
[root@oldboy99-Kylin-pxeServer /var/www/html/kylin]# cd ..
[root@oldboy99-Kylin-pxeServer /var/www/html]# ll ./kylin/
總用量 544
dr-xr-xr-x 3 root root 2048 3月 15 2023 EFI
dr-xr-xr-x 3 root root 2048 3月 15 2023 images
dr-xr-xr-x 2 root root 2048 3月 15 2023 isolinux
dr-xr-xr-x 5 root root 2048 3月 24 2023 kylin-sm-package
-r--r--r-- 1 root root 441 3月 31 2023 LICENSE
dr-xr-xr-x 2 root root 2048 3月 15 2023 manual
dr-xr-xr-x 2 root root 538624 3月 24 2023 Packages
dr-xr-xr-x 2 root root 4096 3月 24 2023 repodata
-r--r--r-- 1 root root 2883 3月 31 2023 TRANS.TBL
- 通過網頁查看一下
3.3 創建配置文件default
- 需要在tftp的文件根目錄(/var/lib/tftpboot)下創建目錄:
pxelinux.cfg
- default文件就是網絡引導文件需要的配置文件,只要是系統啟動后選擇的系統菜單,該文件在鏡像中也有。
[root@oldboy99-Kylin-pxeServer /var/lib/tftpboot/pxelinux.cfg]# cp /var/www/html/kylin/isolinux/isolinux.cfg ./default
- 注意路徑
3.4 復制鏡像文件和驅動文件
[root@oldboy99-Kylin-pxeServer /var/lib/tftpboot]# cp /var/www/html/kylin/isolinux/* ./
[root@oldboy99-Kylin-pxeServer /var/lib/tftpboot]# mkdir kylin
[root@oldboy99-Kylin-pxeServer /var/lib/tftpboot]# cp /var/www/html/kylin/images/pxeboot/{vmlinuz,initrd.img} ./kylin/
- 最后效果:
3.5 修改default文件
- 直接復制上面的 label linux模板,再修改
- label的名字不能沖突
- menu default只能有一個
3.6 配置ks.cfg文件
- Kickstart的作用就是生成ks.cfg文件,使系統在安裝時能自動選擇選項或配置參數。
- Kickstart只能在圖形化界面中操作
- 用戶家目錄下有個文件:
anaconda-ks.cfg
,同ks.cfg的原理相同,是記錄了安裝系統時選擇的種種參數。 - 直接修改該文件即可:
- 注釋行:#cdrom
- 新增行:url --url=“http://10.0.0.203/kylin”
- 在文件最后一行增加:reboot
4. PXE客戶端
4.1 創建虛擬機,不放鏡像
- 內存設置大些,否則會報錯。
- 進入菜單選擇界面時可以看自己設置的系統名稱
- 自動化安裝系統,無需手動干預,一會再來看看就行。
5. 踩坑記錄
1. PXE-E53:No boot filename received
- 找不到網絡引導文件:pxelinux.0
- 多半是dhcp的配置文件或tftp未啟動造成的
- 之前多次打開dhcp的配置文件,造成了小故障
- 按照(2)所寫的刪除該文件即可
- 果然是配置文件異常,將#號去掉
- 修改文件后要重啟服務
2. Failed to load ldlinux.c32
- 系統找到網絡引導文件后,還需要配置文件
- 將鏡像文件中isolinux/*所有文件復制到該目錄即可
3. warning :/dev/root does not exist
- 系統準備安裝系統了,但是找不到鏡像文件
- 在default文件中配置鏡像文件的地址
4. http服務異常-Forbidden
- http的目錄下文件權限較少
5. pxe客戶機安裝一半卡住了-軟件源未設置
- 在ks.cfg文件中指定鏡像地址即可,鏡像文件中有所需安裝包
6. pxe客戶機安裝系統到最后了,但是不自動重啟系統
- 直接在ks.cfg文件最后添加reboot
7. 客戶機已禁用cpu
- pxe客戶機內容至少4g