如何在 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 功能?

如果不存在这样的映像,我该如何创建自己的映像?我不太愿意迁移到 Canonical 想要强制执行的任何自动安装方法。我们的整个基础设施都基于前面提到的方法,我们以类似的方式安装多个操作系统。

答案1

Ubuntu 已于 20.04 版切换到 cloud-init,他们仅保留了预置方法以实现兼容性。现在它已经一去不复返了。

您需要创建一个文件名为 .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 开始使用自动安装。

相关内容