Ubuntu Server 21.10 和 20.04 之间的 boot_command 差异

Ubuntu Server 21.10 和 20.04 之间的 boot_command 差异

有没有办法解决不同版本的 Ubuntu 服务器之间的 boot_command 问题?我花了几个小时在 Google 上搜索,发现人们编写 boot 命令的方式有很大差异。

我正在使用打包程序为 VirtualBox 创建虚拟机。我当前的启动命令如下

"<enter><enter><f6><esc><wait> ", "autoinstall ds=nocloud-net;s=http://{{ .HTTPIP }}:{{ .HTTPPort }}/", "<wait><enter>"

此命令在 Ubuntu Server 20.04 上运行,但在 21.10 版本上失败。

我的问题是,对于启动命令应该如何写似乎没有达成共识:

另一个网站有:

  "boot_command": [
    "<esc><wait><esc><wait><f6><wait><esc><wait>",
    "<bs><bs><bs><bs><bs>",
    "autoinstall ds=nocloud-net;s=http://{{ .HTTPIP }}:{{ .HTTPPort }}/ ",
    "--- <enter>"

我看到的另一个有几排"<bs><bs><bs><bs><bs><bs><bs><bs>"

我仍在搜索文档和互联网,寻找确定有效 boot_command 的过程。

有人有适用于 21.10 的 boot_command 吗?如果有,那么有人如何知道它应该是什么。

我对 Ubuntu 还比较陌生,以前没有使用过自动安装,而且旧的 preseed.cfg 方式和服务器的 subuquity 以及桌面 ubuquity 之间的差异非常令人困惑,直到我弄清楚了这一切背后的逻辑。

谢谢你的帮助。

答案1

使用 packer 的新 HCL2 模板创建框,以下启动命令可与 Ubuntu Server 21.10 配合使用。对于 json,您可以使用旧式“boot_command”:[] 语法。

boot_command = [
            " <wait>",
            " <wait>",
            " <wait>",
            " <wait>",
            " <wait>",
            "c",
            "<wait>",
            "set gfxpayload=keep",
            "<enter><wait>",
            "linux /casper/vmlinuz quiet<wait>",
            " autoinstall<wait>",
            " ds=nocloud-net<wait>",
            "\\;s=http://<wait>",
            "{{.HTTPIP}}<wait>",
            ":{{.HTTPPort}}/<wait>",
            " ---",
            "<enter><wait>",
            "initrd /casper/initrd<wait>",
            "<enter><wait>",
            "boot<enter><wait>"
        ]

相关内容