mini.iso
我正在嘗試透過 iPXE 和 NFS設定 Ubuntu 的網路啟動。我目前正在透過 iPXE 命令列而不是腳本逐步完成所有操作。我確保構建啟用了 NFS 的 iPXE,這似乎工作得很好,因為我可以達到initrd.gz
很好的效果。但我不知道該如何告訴 iPXE 核心是什麼;我假設該linux
文件是內核,但是當我嘗試告訴 iPXE 使用該文件時,它會拋出Exec format error (http://ipxe.org/2e008081)
.
更詳細地說,系統的設定方式如下:
- mini.iso 作為共用資料夾安裝在 QNAP TurboNAS 上,並透過 NFS 啟用訪客訪問
- 新伺服器 PXE 啟動,透過 TFTP 鍊式載入 iPXE
- 我
<Ctrl-B>
進入 iPXE 命令列 initrd nfs://guest@<nfs ip address>/Ubuntu1604Mini/initrd.gz
工作得很好kernel nfs://guest@<nfs ip address>/Ubuntu1604Mini/linux
因上述錯誤而驚慌失措
我很難用谷歌搜尋這個問題,因為其他所有內容似乎都假定非網路啟動映像,因此所有這些指令都假定目錄的存在casper
,casper/vmlinuz
但 mini.iso 似乎具有非常不同的結構。
任何對此的幫助將不勝感激!謝謝!
編輯
如果相關,所有 NFS 來賓存取都是唯讀的。
編輯2:
看來這其實是UEFI的問題。我在文件中發現 mini.iso 未設定為引導至 UEFI 環境。因此,我已轉而嘗試透過 Ubuntu 16.04 Server .ISO 使其正常工作,但我仍然遇到問題;從一些粗略的網路搜尋來看,Ubuntu 16.04 上的 vmlinuz 似乎不是用 EFI 存根編譯的。我找到了 EFI/BOOT/BOOTx64.EFI 文件,但是當我使用 iPXE 連結載入此文件時,它開始嘗試透過 TFTP 來尋找上網本映像,因此我不能 100% 確定它在做什麼或我可以傳遞哪些參數。
答案1
我在 nfs 上的 debian live booting 中遇到了同樣的問題。 ipxe文件指的是使用bios啟動的情況,但不是使用efi的情況,正如您所提到的,解決方案與efi有關。
將參數 initrd=initrd_file_name 加入到 imgargs 行。
此資訊的來源是:http://forum.ipxe.org/showthread.php?tid=7522
雖然我在官方文件中沒有找到它,但它在 efi 上對我有用。