將 Debian 安裝在網路磁碟上,其速度確實會比本機安裝明顯慢。由於我將會使用部分本機 NVMe 磁碟來儲存和載入模型,所以我不太在意作業系統的效能,因為一旦作業系統開機完成,我擁有足夠的 RAM 來順暢運行所有東西。我不會用它來瀏覽 Firefox 等網頁。

一台基於 Debian 13 的伺服器用於 Netboot.xyz、tftpd、iSCSI Target 與 ZFS ZVol。我的 Proxmox 安裝在此方面運作良好。我使用帶有 Merlin 韌體的 Asus Router 來進行 DNSMasq。

我正在使用我的 Proxmox 主機來匯出我的 iSCSI 目標。安裝必要的套件。

複製並編譯 netboot。可以直接使用 netboot 而不進行編譯,但這樣會在執行階段下載所有資產,雖然方便,但並非我推薦的做法。

我們編輯一些設定檔來客製化我們的 netboot 安裝。編輯 /opt/netboot.xyz/user_overrides.yml 並加入以下內容:

確保 site_name 和 boot_domain 指向 netboot 主機。在我的情況下,這與 Proxmox 主機相同。

現在我們來修復一些 netboot 範本,以便我們可以開機載入我們的安裝程式和 iSCSI。

編輯 /opt/netboot.xyz/roles/netbootxyz/templates/menu/boot.cfg.j2 — 找到 :end 區段並將其更改為:

編輯 /opt/netboot.xyz/roles/netbootxyz/templates/local-vars.ipxe.j2 並將其更改為:

使用 ansible 將 netbootxyz 安裝到 /var/www/html。這可能需要一些時間……

現在我們需要添加一個自訂選單,以便從我們的磁碟開機。如果磁碟沒有作業系統,它將啟動 Debian 安裝程式。如果您想在多台機器上安裝作業系統,請隨意為安裝程式和開機磁碟建立不同的 ipxe 檔案。建立 /var/www/html/debian13-iscsi.ipxe 並按以下方式更改。請確保 IP 位址和 IQN 是正確的。

建立自訂的 netboot.xyz 項目。建立一個新檔案 /var/www/html/custom.ipxe

下載 Debian initrd 安裝程式。

如果您想要花俏的 GTK/GUI 安裝程式,請使用以下方法。如果您使用特殊的 GPU,這可能會出現問題。

將我們編譯的 netboot.xyz 二進位檔案複製到 tftp/ipxe。

在您的預設路由器/DHCP 伺服器上設定 DNSMasq,將其重定向到 TFTP 伺服器。我有一台帶有 Merlin 韌體的 Asus 路由器,它使用 dnsmasq。自訂設定放在:/jffs/configs/dnsmasq.conf.add。請確保 IP 位址與 TFTPD 主機相同。

下面的不同區段對於同時支援 PXE 和 iPXE 是必要的。我意識到我需要它們,因為我的 VM 支援 iPXE,但我的 12700k 不支援。

我將非常簡短地介紹 ZFS。除了 ZFS 很酷之外,我不會深入探討任何細節。關於如何建立 ZFS Pool 和 ZVol,網路上有大量的資料可供參考。如果沒有 ZFS,iSCSI 完全可以使用任何其他連接的磁碟。

這是最棘手的部分。我們將 ZVOL(或任何其他磁碟)匯出為 iSCSI 目標。下面的區塊執行以下操作:

螢幕截圖是從 VM 上的 Debian 安裝中擷取的。此方法在我的配備 12700k 的 PC 上同樣適用。如果安裝程式在我的 PC 上運行,記錄螢幕截圖將會很麻煩。

透過 ZFS、iSCSI 與 PXE 實現無碟 Linux 開機透過 ZFS、iSCSI 與 PXE 實現無碟 Linux 開機透過 ZFS、iSCSI 與 PXE 實現無碟 Linux 開機透過 ZFS、iSCSI 與 PXE 實現無碟 Linux 開機透過 ZFS、iSCSI 與 PXE 實現無碟 Linux 開機透過 ZFS、iSCSI 與 PXE 實現無碟 Linux 開機