在 VirtualBox 上测试 ubuntu 桌面的自动安装,我有一个路由器、dhcp、tftp、http 服务器。
这是我的pxelinux.cfg/default
:
UI menu.c32
LABEL Ubuntu
MENU LABEL Ubuntu
KERNEL ubuntu/casper/vmlinuz
INITRD ubuntu/casper/initrd
APPEND root=/dev/ram0 ramdisk_size=1500000 ip=dhcp cloud-config-url=/dev/null url=http://192.168.1.1/ubuntu-22.04.1-desktop-amd64.iso autoinstall ds='nocloud-net\;s=http://192.168.1.1/' ---
但自动安装不起作用。我仍然进入安装表单...
我在我的 http 服务器上使用了最小的自动安装user-data
并且清空了:meta-data
#cloud-config
autoinstall:
version: 1
identity:
hostname: test
password: $6$TgOD2MaHJ5/yy6s4$J7QZMZe/lUqOboU6M3B/MqXEnovVil2n4N1OkfDgP7.RcBXUPGxehSPF6Vy8fPt9yHf61LAGkIL8zLjFVN88i.
username: test
在/var/log/apache2/access.log
pxe 启动时仅请求 ubuntu ISO。但在实时环境中,我可以使用 wget 下载用户数据和元数据文件。
我journalctl | grep autoinstall
得到
Jan 12 11:08:49 ubuntu kernel: Command line: BOOT_IMAGE=ubuntu/casper/vmlinuz root=/dev/ram0 ramdisk_size=1500000 ip=dhcp url=http://192.168.1.1/ubuntu-22.04.1-desktop-amd64.iso autoinstall ds=nocloud-net;s=http://192.168.1.1/ cloud-config-url=/dev/null --- initrd=ubuntu/casper/initrd
Jan 12 11:08:49 ubuntu kernel: Kernel command line: BOOT_IMAGE=ubuntu/casper/vmlinuz root=/dev/ram0 ramdisk_size=1500000 ip=dhcp url=http://192.168.1.1/ubuntu-22.04.1-desktop-amd64.iso autoinstall ds=nocloud-net;s=http://192.168.1.1/ cloud-config-url=/dev/null --- initrd=ubuntu/casper/initrd
Jan 12 11:08:49 ubuntu kernel: Unknown kernel command line parameters "autoinstall --- BOOT_IMAGE=ubuntu/casper/vmlinuz ramdisk_size=1500000 ip=dhcp url=http://192.168.1.1/ubuntu-22.04.1-desktop-amd64.iso ds=nocloud-net;s=http://192.168.1.1/ cloud-config-url=/dev/null", will be passed to user space.
Jan 12 11:08:49 ubuntu kernel: autoinstall
Jan 12 11:09:06 ubuntu /usr/libexec/gdm-x-session[1506]: Kernel command line: BOOT_IMAGE=ubuntu/casper/vmlinuz root=/dev/ram0 ramdisk_size=1500000 ip=dhcp url=http://192.168.1.1/ubuntu-22.04.1-desktop-amd64.iso autoinstall ds=nocloud-net;s=http://192.168.1.1/ cloud-config-url=/dev/null --- initrd=ubuntu/casper/initrd
我已经使用 ubuntu server 22.04、UEFI 和 BIOS 进行了测试,并使用引号和反斜杠作为 ds 参数,但似乎都不起作用
答案1
欢迎,服务器找不到您的user-data
文件。您需要APPEND
稍微修改一下行
APPEND root=/dev/ram0 ramdisk_size=1500000 ip=dhcp cloud-config-url=<URL TO user-data> url=http://192.168.1.1/ubuntu-22.04.1-desktop-amd64.iso autoinstall ds=nocloud-net s=<URL TO DIRECTORY CONTAINING user-data>
请用您的值替换<URL TO user-data>
和。<URL TO DIRECTORY CONTAINING user-data>
答案2
我犯了两个错误:
- iso 必须是实时服务器,而不是桌面,以及 initrd 和 tftp 提供的 vmlinuz 文件
- 在我的 pxe 配置中:
cloud-config-url
<URL TO user-data>
不应该/dev/null
ds=nocloud-net s=<URL TO DIRECTORY CONTAINING user-data>
有效,无需引号或转义序列
感谢 dummyuser 和 Andrew Lowther,你们两个的回答都是必要的