我已将我的操作系统升级到 Ubuntu 16.04,并尝试使用我在 Ubuntu 14.04 上成功使用一段时间的KVM 管理工具从头安装 ubuntu 14.04 来宾。不幸的是,看起来 virt-install 已更改并且不再接受--location
带有 ISO 映像的参数,因为它将输出以下错误:
Starting install...
ERROR Could not find an installable distribution at '/home/programster/apps/KVM-Command-Generator/installation_media/Ubuntu_14.04.iso'
The location must be the root directory of an install tree.
但是,如果我使用该--cdrom
参数代替--location
它,我将不再喜欢我有一个--extra-args
参数指定 kickstart/preseed 文件的位置并且控制台将使用 ttyS0 的事实。
--extra-args "console=ttyS0 ks=http://pastebin.com/raw.php?i=SrTvbt6Z"
此时,我尝试只删除 --extra-args 参数以从 CD 进行安装,但如果这样做,则在 CLI 中看不到安装的任何输出。我猜它希望你通过 VNC 或不理想的东西进行连接。
作为参考,原来的安装命令是:
qemu-img create -f qcow2 -o preallocation=metadata,lazy_refcounts=on /home/programster/apps/KVM-Command-Generator/vms/ubuntu14.04.img 20G
virt-install --connect qemu:///system \
--nographics \
--os-type linux \
--accelerate \
--hvm \
--network network=default,model=virtio \
--name ubuntu14.04 \
--os-variant=ubuntu14.04 \
--location /home/programster/apps/KVM-Command-Generator/installation_media/Ubuntu_14.04.iso \
--extra-args "console=ttyS0 ks=http://pastebin.com/raw.php?i=SrTvbt6Z" \
--disk /home/programster/apps/KVM-Command-Generator/vms/ubuntu14.04.img,bus=virtio,format=qcow2 \
--ram 512 \
--vcpus 2
新命令是:
qemu-img create -f qcow2 -o preallocation=metadata,lazy_refcounts=on /home/programster/apps/KVM-Command-Generator/vms/ubuntu14.04.img 20G
virt-install --connect qemu:///system \
--nographics \
--os-type linux \
--accelerate \
--hvm \
--network network=default,model=virtio \
--name ubuntu14.04 \
--os-variant=ubuntu14.04 \
--cdrom /home/programster/apps/KVM-Command-Generator/installation_media/Ubuntu_14.04.iso \
--disk /home/programster/apps/KVM-Command-Generator/vms/ubuntu14.04.img,bus=virtio,format=qcow2 \
--ram 512 \
--vcpus 2
问题
如何使用额外的参数从本地 ISO 映像安装 virt-install 以指定 kickstart/preseed 文件的位置,并允许我查看进度并可能通过 CLI 而不是使用 VNC 选择选项?
也许我必须指定一个 web url 而不是 ISO 映像--location
,但如果我可以传递一个本地位置,以防互联网不是那么好,我会更喜欢它。
额外信息
- 虚拟安装版本:1.3.2
- Ubuntu 16.04 4.4.0-24-通用
- 链接到我下载使用的 ISO 映像(ubuntu mini iso)
@Programster - 我在他们的邮件列表中向 virt-manager 维护者报告了这个问题。请参阅http://www.redhat.com/archives/virt-tools-list/2016-August/msg00009.html。您可以关注该线程以获取更多详细信息。知道这在 Ubuntu 14.04 而不是在 Ubuntu 16.04 中有效是解决问题的关键。
最重要的是,这已在https://github.com/virt-manager/virt-manager的 master 分支中得到修复。
修复它的提交是:https ://github.com/virt-manager/virt-manager/commit/3f15a489cda87f8028828d567848193dd2640a43
我不确定它何时会进入各种 virt-manager 软件包。但是您可以获取源代码并从那里运行 virt-install。(注意:您需要添加一些包,并且可能应该创建一个 Python 虚拟环境,因此您可能希望在虚拟机上进行试验,然后再在需要保持稳定和清洁的系统上使用额外的包。)
在阅读了
--location
virt-install 手册页中的部分之后,看起来应该仍然可以location
用来指定 ISO 映像的路径,但它对我不起作用。幸运的是,它提供了一些示例,其中列出了针对 Ubuntu 的示例:使用它对我有用,所以让它安装 Ubuntu 14.04 我所做的就是改变
wily
totrusty
并且 Bob 是你的叔叔!我希望我可以从本地 mini.iso 安装,但同时这应该对我和其他人有用。我今天遇到了同样的问题,以前的一些答案帮助我找到了解决方法。我的解决方案是在关于 iso 安装的 virt-install 手册中找到的,因为我使用的是 net install iso,它需要指定额外的内核和 initrd 参数来指示 iso 中的路径才能找到它们。多亏了这个
--debug
选项,我找到了安装程序的代码,以便更好地了解正在发生的事情。所以最后配置行结束是这样的:这里的关键是指定
vmlinuz
为 kernel 和initrd.img
. 要在 iso 中查找路径,我使用了isoinfo
如下命令:所以在这种情况下,我在 isolinux 文件夹中找到了它们。此外,我已经为 cdrom 设备定义了磁盘,因此我可以在安装时访问它,但在这种情况下,我使用的是网络存储库,我通过基于文本的安装菜单将源定义为 CentOS 7 的镜像之一. 我猜如果需要,来源可能是完整的 CD/DVD iso。使用位置可以启用额外参数,因此我可以在整个安装过程中使用文本控制台访问它。希望这有助于完成原始问题的答案。
以下内容对我从 Ubuntu 16.04 主机系统安装 Debian 10 有用: