我正在尝试以与安装所有其他 KVM 客户机相同的方式安装 Ubuntu 20.04,即指定要从中安装的 Web 位置。看来,无论我为参数输入什么 Web 地址location
,我都会收到以下错误:
错误验证安装位置时出错:无法在'找到可安装的分发版http://us.archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/current/legacy-images/netboot/ubuntu-installer/amd64/‘
我的命令示例如下:
qemu-img create \
-f qcow2 \
-o preallocation=metadata,lazy_refcounts=on \
/home/stuart/KVM-Command-Generator/vms/ubuntu-20/ubuntu-20.qcow2 15G
virt-install --connect qemu:///system \
--nographics \
--os-type linux \
--accelerate \
--hvm \
--network network=default,model=virtio \
--name ubuntu-20 \
--location http://us.archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/current/legacy-images/netboot/ubuntu-installer/amd64/ \
--extra-args "console=ttyS0 ks=http://pastebin.com/raw/WxQygWpm" \
--disk /home/stuart/KVM-Command-Generator/vms/ubuntu-20/ubuntu-20.qcow2,bus=virtio,format=qcow2 \
--ram 1024 \
--vcpus 2
... 但我尝试了网络上的许多不同路径,也尝试过直接指定 iso 映像。有人有可行的示例或知道如何修复此问题吗?
语境
我尝试在 Debian 9 和 Debian 10 KVM 主机上执行此操作,结果相同。
答案1
这--location
使得 virt-install 对这些 URL 下的 kernel/initrd 路径做了一些假设。如果找不到这些 URL,就会出现错误。
我想重申的最简单的方法是,对于虚拟机来说,使用云映像比 ISO 更快、更简单。我看到您使用了一些 kickstart 文件,在这种情况下,可以通过 cloud-init 进行(以及更多)自定义,您可以在此找到一个很好的示例“使用带有多通道的 cloud-init“。也有人uvtool-libvirt
要实现同样的目标,但multipass
目前更受关注。
virt-install
总体而言,您可以改用参数--cdrom
,该参数只需要 .iso 的路径,而不对其他路径做任何假设。不幸的是,使用 --cdrom 将按 iso 的方式启动它,并忽略您的自定义命令行参数,而您在这种情况下需要 kickstart 文件。
同时,安装程序树中的路径仍然良好(尽管很难找到)并且您可以运行(对于 bionic 和其他程序的工作方式相同):
$ virt-install --location http://us.archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/ --extra-args "ks=http://pastebin.com/raw/WxQygWpm"
但请注意,它会告诉您以下内容,您应该考虑适应未来:
警告使用基于 di 的旧版安装程序,该安装程序已被弃用并将在将来被删除。
无论如何 - 如果--cdrom
或的自动化--location
在以后再次为您中断(除了通常更好地使用上面提到的云图像之外)您可以随时使用--kernel´ and
--initrd`来直接指向它们,它就会起作用。
有关该主题的更多讨论请访问这个错误