我使用 Ubuntu 20.04 桌面作为主机,使用 KVM 运行不同的 Linux VM。VM 是使用 virt-install 在脚本中创建的。这适用于 CentOS VM 等。现在我想使用 Autoinstall 选项安装 Ubuntu 20.04 VM。我已经生成了 Autoinstall 文件并立即使用它。这是我当前的命令:
virt-install --name ubuntu1 --vcpus 2 --memory 2048 --disk device=cdrom,path=./seed.iso --cdrom ~/images/ubuntu-20.04.2-live-server-amd64.iso --disk pool=default,size=10,bus=virtio --network network=br0 --os-variant ubuntu20.04
安装开始后,系统提示我确认自动安装选项。我知道,我必须为内核提供自动安装选项。但为什么呢?选项“--cdrom”与选项“--extra-args”不兼容。我尝试过将选项“--location”与选项“--install kernel=...,initrd=...,kernel_args”一起使用,但不起作用。我会收到另一个错误,例如缺少启动路径等。
如果我确认继续自动安装,那么安装就会顺利完成。因此错误不在创建的 iso 上的本地用户数据或元数据中。我只需要找到在启动时为内核指定自动安装选项的方法。
有没有人有使用 virt-install 的工作脚本来启动 Autoinstall Ubuntu 20.04 安装?
我知道,Ubuntu 文档中有使用“kvm”命令的示例。但我更愿意对所有脚本使用 virt-install 并重用现有脚本。
答案1
不知何故,--location 选项无法找到 Ubuntu 映像的内核和 initrd。您必须手动提供路径:
--location /var/lib/libvirt/images/ubuntu-20.04.3-live-server-amd64.iso,kernel=casper/hwe-vmlinuz,initrd=casper/hwe-initrd
下面是一个完整的示例,它还可以通过串行控制台启用日志记录并防止安装完成后重新启动:
virt-install \
-n test \
--description "Test" \
--os-type Linux \
--os-variant ubuntu20.04 \
--memory 2048 \
--vcpus 2 \
--disk path=/var/lib/libvirt/images/kubernetes.qcow2,bus=virtio,size=50 \
--disk path=/var/lib/libvirt/images/seed.iso,format=raw,cache=none \
--graphics none \
--network bridge:br0 \
--location /var/lib/libvirt/images/ubuntu-20.04.3-live-server-amd64.iso,kernel=casper/hwe-vmlinuz,initrd=casper/hwe-initrd \
--noreboot \
--extra-args 'console=ttyS0,115200n8 serial autoinstall'