我正在尝试以与安装所有其他 KVM 来宾相同的方式安装 Ubuntu 20.04,方法是指定要安装的 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 主机上执行此操作,结果相同。
使
--location
virt-install 对这些 URL 下的 kernel/initrd 的路径做一些假设。找不到这些是您遇到的错误。我想重申的最简单的方法是,对于使用云映像的虚拟机来说,它比 ISO 更快、更容易。我看到您使用了一些 kickstart 文件,在这种情况下(以及更多)自定义将通过 cloud-init 完成,一个很好的示例可以在“使用 cloud-init with multipass ”中找到。也有
uvtool-libvirt
实现相同的目标,但multipass
目前更加关注。一般来说
virt-install
,您可以使用--cdrom
参数来代替,它只需要 .iso 的路径,并且不对进一步的路径做任何假设。不幸的是,使用 --cdrom 将像在 iso 上一样启动它,并忽略您的自定义命令行参数,在您的情况下,您需要 kickstart 文件。与此同时,安装程序树中的路径仍然很好(尽管很难找到)并且您可以运行(对于仿生和其他人的工作方式相同):
$ virt-install --location http://us.archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/ --extra-args "ks=http://pastebin.com/raw/WxQygWpm"
尽管请注意它会告诉您以下内容,您应该考虑适应未来:
在任何情况下 - 如果你在路上再次出现自动化
--cdrom
或--location
中断(除了上面提到的通常更好地使用云图像),你总是可以使用--kernel´ and
--initrd 来直接指向它们,它会起作用。围绕该主题的更多讨论位于此错误