如何在 22.04 上使用 di 和預置

如何在 22.04 上使用 di 和預置

我正在嘗試為 ubuntu 22.04 設定自動化安裝環境。我們已經在 20.04 和之前的 LTS 版本的生產中使用此功能多年了。我們使用 pxe/isolinux 以及 tftp 和 dhcp 伺服器來執行網路和 CD 引導。還有一些讓 uefi 工作的技巧。

我無法找到工作的 vmlinuz 和 initrd 映像,這些映像允許我使用預置和 debian 安裝程式 (di) 啟動自動 ubuntu 22.04 安裝。

我使用以下命令安裝 20.04,這在 22.04 上不起作用:

linuxefi /path/to/2004/amd64/linux auto=true priority=critical url=http://example.com/ubuntu/2004/amd64/seed_ub_uefi.cfg console-setup/layoutcode=us interface=auto
initrdefi /path/to/2004/amd64/initrd.gz

我嘗試從 22.04 ubuntu CD iso 映像中提取 vmlinuz 和 initrd.gz 映像。然而,無論我如何嘗試,它甚至無法找到根檔案系統。我猜圖像不再內建 di 和 preseed 功能?

如果這樣的圖像不存在,我將如何創建自己的圖像?我不太高興遷移到規範想要強制執行的任何自動化安裝方法。我們的整個基礎架構是基於前面提到的方法,並且我們以類似的方式安裝多個作業系統。

答案1

Ubuntu 在 20.04 就已經切換到了 cloud-init,為了相容性,他們只保留了 preseed 方法。現在它已經永遠消失了。

您需要使用文件名建立一個 .yml 文件user-data,如下所示此處指定

然後您可以在 grub.cfg 中提供包含該檔案的目錄的路徑。

我直接在 .iso(在 目錄中)上提供文件/nocloud/,但您也可以輕鬆提供 http 位置。

menuentry "Install Ubuntu Server (autoinstall)" {
    set gfxpayload=keep
    linux   /casper/vmlinuz   quiet autoinstall ds=nocloud\;s=/cdrom/nocloud/ ---
    initrd  /casper/initrd
}

答案2

前述內容自 20.04 起已棄用,並於 22.04 中刪除。 Ubuntu 現在使用自動安裝(也稱為 cloud-init):https://ubuntu.com/server/docs/install/autoinstall

如果您需要詳細的工作範例,請查看此 GitHub 儲存庫:https://github.com/lavabit/robox

它使用 Packer 為多個提供者產生 Vagrant 盒子。從 Ubuntu 20.10 開始它就一直使用自動安裝。

相關內容