我嘗試使用 Cobbler 安裝 SLES 11 SP3,但下載 NBP 檔案後失敗。螢幕上的錯誤是「無法取得 TFTP 映像」。
我對 SLES 11 SP2 有類似的設置,並且運作良好。此設定的不同之處在於,我在 IBM x3500 M5 伺服器上安裝 SLES 11 SP3,這需要在安裝作業系統本身之前安裝可啟動驅動程式套件 (BDK)。
我的設定如下:
/var/lib/tftpboot> tree uefisp3
uefisp3
├── biostest
├── bootx64.efi
├── elilo.conf
├── initrd
├── linux
├── memtest
├── message
└── pxelinux.0
initrd 和 linux 不是來自 SLES DVD,而是來自 BDK 映像。
引用自https://drivers.suse.com/doc/Usage/Driver_Kits.html:將核心和 initrd 映像從驅動程式工具包 iso 映像複製到 tftp 啟動伺服器上的適當位置。 initrd 和核心映像位於 /boot/x86_64/loader 目錄下。
我嘗試透過將檔案名稱指向 uefisp3/bootx64.efi、pxelinux.0 和 uefisp3/pxelinux.0 來更改 /etc/cobbler/dhcp.template,但它們都不起作用。
我的鞋匠發行報告:
Name : sles11sp3
Architecture : x86_64
Breed : suse
Comment :
Initrd : /driverkit/boot/x86_64/loader/initrd
Kernel : /driverkit/boot/x86_64/loader/linux
Kernel Options : {'install': 'http://192.168.0.10/sles/sles11sp3', 'addon': 'http://192.168.0.10/sles/driverkit'}
Kernel Options (Post Install) : {}
Kickstart Metadata : {}
Management Classes : []
OS Version : sles10
Owners : ['admin']
Red Hat Management Key : <<inherit>>
Red Hat Management Server : <<inherit>>
Template Files : {}
我的 elilo.conf (說實話,我甚至不確定我是否需要這個文件,但這就是我使用 SLES 11 SP2 的方法):
/var/lib/tftpboot> cat uefisp3/elilo.conf
prompt
timeout=100
default=linux
image=linux
label=linux
description = "Installation"
initrd=initrd
append="/images/sles11sp3/initrd textmode=1 install=http://192.168.0.10/sles/sles11sp3 autoyast=http://192.168.0.10/cblr/svc/op/ks/profile/raid1drbd_sp3i addon=http://192.168.0.10/sles/driverkit"
摘自 pxelinux.cfg/default 檔案:
LABEL raid1drbd_sp3
kernel /images/sles11sp3/linux
MENU LABEL raid1drbd_sp3
append initrd=/images/sles11sp3/initrd textmode=1 install=http://192.168.0.10/sles/sles11sp3 addon=http://192.168.0.10/sles/driverkit autoyast=http://192.168.0.10/cblr/svc/op/ks/profile/raid1drbd_sp3
ipappend 2
TFTP 伺服器運作正常,因為我確實嘗試手動從 TFTP 伺服器取得一些檔案。在 /var/log/messages 中有一個錯誤“tftp:客戶端不接受選項”,從我讀到的內容來看,該錯誤很可能與我現在面臨的問題無關。
有人使用驅動程式套件成功安裝 SLES 11 SP3 嗎?
更新:
在 PXE 引導嘗試期間捕捉以下內容:
SLES 11 SP3 上的 PXE 引導
2015-05-21 16:30:52.830169 IP 192.168.0.50.fj-hdnet > spacewalk.tftp: 49 RRQ "uefisp3/bootx64.efi" octet tsize 0 blksize 1468
2015-05-21 16:30:52.839093 IP 192.168.0.50.h323gatedisc > spacewalk.tftp: 41 RRQ "uefisp3/bootx64.efi" octet blksize 1468
2015-05-21 16:30:53.360209 IP 192.168.0.50.h323gatestat > spacewalk.tftp: 41 RRQ "uefisp3/bootx64.efi" octet blksize 1468
2015-05-21 16:30:53.872046 IP 192.168.0.50.h323hostcall > spacewalk.tftp: 30 RRQ "/grub.efi" octet blksize 512
2015-05-21 16:30:53.875762 IP 192.168.0.50.caicci > spacewalk.tftp: 30 RRQ "/grub.efi" octet blksize 512
時間不多了,明天再做進一步測試。謝謝你的主意。傑出的!
第二次更新:
目前 PXE 與自動安裝一樣有效。然而,由於 elilo.conf 錯誤,伺服器無法啟動。安裝過程中我不在場,所以我不確定出了什麼問題。沒有機會進行另一輪安裝。
謝謝。
答案1
抱歉回覆晚了,這就是我的工作方式。
1 - 將 SLES 11 SP3 安裝到 /sles11sp3
2 - 將可啟動驅動程式套件安裝到 /bdk
3 - 將 grub.efi 檔案複製到 /var/lib/tftpboot/ 目錄中。
# cp /bdk/EFI/BOOT/grub.efi /var/lib/tftpboot/
4 - 將 bootx64.efi、核心和 initrd 以及 grub.cfg 複製到 /var/lib/tftpboot/uefisp3/ 目錄中。
# cp /bdk/EFI/BOOT/bootx6.efi /var/lib/tftpboot/uefisp3/
# cp /bdk/boot/x86_64/loader/linux /var/lib/tftpboot/uefisp3/
# cp /bdk/boot/x86_64/loader/initrd /var/lib/tftpboot/uefisp3/
# cp /sles11sp3/EFI/BOOT/grub.cfg /var/lib/tftpboot/uefisp3/
除 initrd 檔案外,所有檔案都可以從 SLES DVD 或驅動程式工具包複製。必須從驅動程式工具包複製 initrd 檔案。
5 - 修改 grub.cfg 檔案。對我來說唯一重要的選單項目是安裝,因此我刪除了其餘的選單項目。
menuentry 'Auto Installation' {
set gfxpayload=keep
echo 'Loading kernel ...'
linuxefi /images/sles11sp3/linux splash=silent textmode=1 showopts install=http://192.168.0.10/sles/sles11sp3 autoyast=http://192.168.0.10/sles/autoyast/sles11sp3towerbdk.ks
echo 'Loading initial ramdisk ...'
initrdefi /images/sles11sp3/initrd
}
6 - 在 autoyast 檔案中新增以下內容:
<add-on>
<add_on_products config:type="list">
<listentry>
<media_url><![CDATA[http://192.168.0.10:80/sles/bdk]]></media_url>
<product>driver-kit</product>
<product_dir>/</product_dir>
</listentry>
</add_on_products>
</add-on>
7 - 在 dhcpd.conf 檔案中加入 uefisp3 群組。
group {
filename "uefisp3/bootx64.efi";
next-server 192.168.0.10;
host test { hardware ethernet 40:F2:H9:A6:49:C7; fixed-address 192.168.0.50; option host-name test; }
}
8 - 重新啟動 dhcp 和 tftp 服務。
@Pat 感謝 tcpdump 的想法,它導致了一些發現。