Ubuntu 22.04 自动安装 pxe 未获取用户数据

Ubuntu 22.04 自动安装 pxe 未获取用户数据

在 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.logpxe 启动时仅请求 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,你们两个的回答都是必要的

相关内容