我正在尝试让最基本的 Ubuntu Server 无头安装方案发挥作用。我将用户数据 yaml 文件精简到最低限度。
#cloud-config
version: 1
identity:
hostname: headless2204
username: batman
password: topsecret
package_upgrade: false
ssh:
install-server: yes
allow-pw: yes
Together with an empty meta-data file I placed it into the /nocloud-net folder.
至于 grub.cfg,我添加了:
menuentry "Headless Ubuntu Server Installation" {
set gfxpayload=keep
linux /casper/vmlinuz quiet autoinstall ds=nocloud-net\;s=/cdrom/nocloud-net/ ---
initrd /casper/initrd.gz
}
我采取的唯一捷径是弹出 Ubuntu 桌面虚拟机并启动 Cubic,而不是 CLI 工具和 xorriso。它们之间有什么区别吗?Cubic 似乎在做同样的事情。
我的自定义映像启动正常,更新的 grub.cfg 可以正常工作,但是 Ubuntu 安装程序似乎没有获取自动安装配置。它只是以标准方式工作。当我在安装过程中切换到不同的终端会话 (Ctrl+F2) 来检查日志时,没有任何与自动安装相关的内容。我只能找到 cloud-init 的东西,但那里没有什么用处。
您对修复或调试它有什么想法吗?
答案1
让我尝试将其格式化一下:
用户数据 yaml:
#cloud-config
autoinstall:
version: 1
identity:
hostname: headless2204
username: batman
password: <mkpasswd -m sha-512 topsecret> #the original manual stated an unencrypted password which doesn't work
package_upgrade: false
ssh:
install-server: yes
allow-pw: yes
我将其与一个空的元数据文件一起放入 /nocloud-net 文件夹中。现在我只使用 /nocloud。不过,不要认为文件夹名称很重要。
这是我的自动安装的 grub.cfg 菜单项(只需将其插入到第一个菜单项“试用或安装 Ubuntu Server”之前)
menuentry "Headless Ubuntu Server Installation" {
set gfxpayload=keep
linux /casper/vmlinuz "ds=nocloud;s=/cdrom/nocloud/" quiet autoinstall ---
initrd /casper/initrd.gz
}
文档和大多数教程都列出了未加引号的配置路径。但不知何故,引号却为我带来了神奇的效果:“ds=nocloud;s=/cdrom/nocloud/”
然而,这其中还有更多的巫术:我只在 22.04 上让它工作。仍在试图弄清楚如何让它在 20.04 上工作。我会把这个问题作为一个单独的问题发布。到目前为止,我发现的唯一明显区别是不同的 grub.cfg 文件结构。
附言:通过添加我在复制和格式化帖子时遗漏的自动安装来更正用户数据。谢谢,mpboden!