我正在尝试使用全新的 Ubuntu Server 20.04 进行免提自动安装。显然,他们将方法从预置更改为新的基于云初始化的自动安装方法。我按照说明进行操作在 ubuntu wiki 页面上并创建了两个文件user-data
,meta-data
如下所述这里之后,我通过启动一个 python3 webserver 在我的内部网络中提供文件
python3 -m http.server 3003
之后,我从 USB 安装棒启动了 Ubuntu Server 20.04。在 grub 菜单中,我将启动项更改为以下内容
...
linux /casper/vmlinuz quiet autoinstall ds=nocloud-net s=http://<my-laptop-ip>:3003/ ---
...
但是当安装程序启动时,它不会访问配置文件(Web 服务器访问日志为空),并且“正常”服务器安装启动,您必须手动输入所有内容。
Ubuntu Wiki 页面上的快速入门教程明确提到了虚拟服务器的安装。有谁对这种新安装方法有经验,可以告诉我如何让它工作吗?
编辑:
与此同时,我可以验证自动安装过程是否适用于本教程(在 KVM 中设置)。然而,事实是,在真实服务器上通过网络进行的安装不起作用(没有请求 HTTP 服务器加载配置)。手动安装后,我检查了 HTTP 服务器是否可以访问,并可以确认这一点。
配置未加载的原因可能是什么?
答案1
所以我终于设法让 Ubuntu-Autoinstall 正常工作了,这个错误很容易修复:我不知道 qemu 使用哪个“引导加载程序”,但这其实并不重要。无论如何,Ubuntu 安装程序使用 GRUB 引导加载程序。在 GRUB 引导加载程序中,分号字符终止命令。不幸的是,cloud-init 语法正是使用此符号来参数化安装源:ds=nocloud-net[;key=val;key=val]
,例如ds=nocloud-net;s=http://_gateway:3003/
。
总结 那么该怎么办呢?只要去掉分号,一切都会恢复正常:
...
linux /casper/vmlinuz quiet autoinstall ds=nocloud-net\;s=http://<my-laptop-ip>:3003/ ---
...