Systemd 正在開發透過 HTTP 下載系統映像的功能

Lennart Poettering 提議在系統管理員 systemd 中進行一項更改,以允許系統使用透過 HTTP 從外部主機檢索的根檔案系統映像進行啟動。這項變更歸結為擴展 systemd,使其不僅能夠在初始啟動階段透過 HTTP 下載磁碟映像,還能解壓縮下載的映像、將其綁定到環回模式下的區塊裝置、將區塊裝置掛載為 /sysroot 並從中啟動系統。

systemd 257 已包含使用 systemd-import-generator 在系統啟動期間下載磁碟映像的支援。此實作尚不支援完整的啟動週期,但在未來,計劃擴展該功能以透過通用核心映像 UKI(統一核心映像)的 UEFI HTTP Boot 進行啟動,該映像在一個檔案中結合了 UEFI 的引導程式(UEFI 啟動存根)、Linux 核心映像和載入到記憶體中的 initrd 系統環境。

計畫根據 UEFI HTTP Boot 設定中為 EFI 映像指定的 URL 來計算載入系統映像的 URL(例如,當透過 EFI HTTP Boot「http://example.com/somedir/myimage.efi」載入時,UKI initrd 處理程序將把 rootzfs 映像載入為「http://example.com/somedir/my」)。未來除了HTTP作為獲取鏡像的傳輸方式之外,還計劃增加對NVMe-over-TCP技術的支持,即允許使用TCP協定透過網路(NVM Express over Fabrics)存取NVMe驅動器。

預計從外部主機獲得的影像啟動將簡化在真實硬體上測試現代不可變作業系統的組織。開發人員可以使用 mkosi 實用程式在其電腦上建立具有系統環境的映像,並使用命令「mkosi -f serve」透過 HTTP 提供該映像。在您想要測試系統的電腦上,您只需在 EFI 中啟用 HTTP 啟動,並使用以下命令新增可啟動映像的 URL:kernel-bootcfg —add-uri=http://192.168.47.11:8081/image.efi —title=testloop —boot-order=0

之後,您只需重新啟動計算機,它將載入標準 UKI 核心映像,然後使用根 FS 載入開發人員準備的磁碟映像。在 EFI 中停用 HTTP 啟動之前,每次重新啟動電腦都將導致啟動新的系統映像。此類測試不會以任何方式影響本機磁碟。

來源: opennet.ru

添加評論