20.04 自动安装未拾取用户数据文件的问题

20.04 自动安装未拾取用户数据文件的问题

我有一个 pxe 服务器设置,可以正常启动到 pxe,但是自动安装似乎没有获取我的用户数据文件。这是我的 main.ipxe 文件。有什么想法吗?

#!ipxe

set boot-url=http://192.168.x.x

:MENU
menu
item --gap -- ---------------- iPXE boot menu ----------------
item ubuntu ubuntu-20.04-physical
item shell          ipxe shell
choose --default return --timeout 5000 target && goto ${target}

:ubuntu
set server_ip 192.168.x.x
set root_path /pxeboot
set os_root os-images/ubuntu-20.04-server
kernel tftp://${server_ip}/${root_path}/${os_root}/casper/vmlinuz
initrd tftp://${server_ip}/${root_path}/${os_root}/casper/initrd
imgargs vmlinuz initrd=initrd ipv6.disable=1 netboot=nfs ip=dhcp nfsroot=${server_ip}:${root_path}/${os_root} autoinstall ds=nocloud-net\;s=http://192.168.x.x/pxe_ks/ubuntu-20-04-3-phys/ cloud-config-url=192.168.x.x/px_ks/ubuntu-20-04-3-phys/user-data ---

boot

boot
:shell
shell ||
goto MENU

autoboot

答案1

我发现启动不是想要转义分号或者引用内核参数。

在你的启动脚本你将改变参数

ds=nocloud-net\;s=http://192.168.x.x/pxe_ks/ubuntu-20-04-3-phys/

ds=nocloud-net;s=http://192.168.x.x/pxe_ks/ubuntu-20-04-3-phys/

如果这不起作用,您可以检查您的 Web 服务器日志、安装程序 cloud-init 日志(打开 shell 并查看/var/log/cloud-init.log)以及安装程序 cmdline 参数(打开 shell 并查看cat /proc/cmdline)。

下列启动脚本片段对我的 20.04.5 版本有效

:ubuntu
set server_ip a.b.c.d
initrd tftp://${server_ip}/ubuntu/focal/server/initrd
kernel tftp://${server_ip}/ubuntu/focal/server/vmlinuz initrd=initrd root=/dev/ram0 ramdisk_size=1500000 ip=dhcp url=http://${server_ip}/tftp/iso/ubuntu-20.04.5-live-server-amd64.iso cloud-config-url=/dev/null autoinstall ds=nocloud-net;s=http://${server_ip}/tftp/ubuntu/focal/server/autoinstall/
boot

相关内容