編輯

編輯

mini.iso我正在嘗試透過 iPXE 和 NFS設定 Ubuntu 的網路啟動。我目前正在透過 iPXE 命令列而不是腳本逐步完成所有操作。我確保構建啟用了 NFS 的 iPXE,這似乎工作得很好,因為我可以達到initrd.gz很好的效果。但我不知道該如何告訴 iPXE 核心是什麼;我假設該linux文件是內核,但是當我嘗試告訴 iPXE 使用該文件時,它會拋出Exec format error (http://ipxe.org/2e008081).

更詳細地說,系統的設定方式如下:

  1. mini.iso 作為共用資料夾安裝在 QNAP TurboNAS 上,並透過 NFS 啟用訪客訪問
  2. 新伺服器 PXE 啟動,透過 TFTP 鍊式載入 iPXE
  3. <Ctrl-B>進入 iPXE 命令列
  4. initrd nfs://guest@<nfs ip address>/Ubuntu1604Mini/initrd.gz工作得很好
  5. kernel nfs://guest@<nfs ip address>/Ubuntu1604Mini/linux因上述錯誤而驚慌失措

我很難用谷歌搜尋這個問題,因為其他所有內容似乎都假定非網路啟動映像,因此所有這些指令都假定目錄的存在caspercasper/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 上對我有用。

相關內容