
我已經使用 tftp 設定了 pxe 伺服器,它可以使用 debian 安裝程式運行。
http://www.debian-administration.org/articles/478
現在我不需要一個安裝程序,而是一個已經存在的系統(在 USB 上)。如何引導該 USB 映像,特別是為其建立 pxelinux.0 開機載入程式?在 Debian 上我只找到安裝程式映像。
編輯:好的,我在 USB 上安裝了一個系統,我想在多個客戶端上使用 PXE 透過網路啟動它。我根據上面提供的連結中的教學安裝了帶有 tftp 伺服器和 pxe 環境的普通 debian。它適用於安裝程序,但我嘗試使用另一個內核,但隨後它說找不到文件,因為 pxelinux.0 文件指向 debian 發行版的安裝程式內核。
答案1
您必須了解,並非所有可透過 USB 引導/可安裝的 Linux 映像都可以在 PXE 環境中運作。
非 PXE 映像通常會從啟動裝置(HDD、USB 等)啟動並擷取所需的元件。
PXE 就緒映像最初將從網路啟動,並且初始化腳本已準備好掛載 NFS、HTTP、SMB 等系統,以便從那裡獲取所需的元件。
非 pxe 安裝映像不僅沒有準備好從網絡檢索組件的初始化腳本,而且很多時候使用的內核/busybox 構建甚至沒有網絡支持,或者沒有某些協議的內核模組PXE 安裝(如 HTTP 或 SMB)時更容易。
請記住,TFTP 僅用於少數初始傳輸(pxelinux/vesamenu/kernel/initrd),安裝的大部分內容將在稍後透過 HTTP 或使用 NFS 或 SMB 共享掛載進行傳輸。
然後,如果您想要 PXE 啟動 USB Linux 安裝映像,您必須分析發行版 initrd 並查看包含的 init 腳本是否支援 PXE,接下來您必須查看核心/busybox 是否包含用於網路啟動的 reqd 元件。這不是一項微不足道的工作。
如果您想要啟動「不是安裝」但它是即時發行版的映像,您必須在 init 腳本中新增用於網路安裝 squashfs 檔案的程式碼。
如果您想要啟動既不是安裝也不是即時發行版的映像,事情會更加複雜。