此命令:
virt-install \
--name bla \
--ram=1024 \
--disk path=/home/me/libvirt/images/bla.qcow2,bus=virtio,size=10 \
--location /home/me/Downloads/ubuntu-18.10-desktop-amd64.iso
报告:
ERROR Couldn't find hvm kernel for Ubuntu tree.
我怎样才能解决这个问题?
(由于此问题有很多重复的帖子和答案,因此我也来回答一下。)
答案1
而不是使用
--location /home/me/Downloads/ubuntu-18.10-desktop-amd64.iso
使用
--cdrom /home/me/Downloads/ubuntu-18.10-desktop-amd64.iso
区别在于(从手册页):
-c CDROM , --cdrom=CDROM
File or device use as a virtual CD-ROM device for fully virtualized guests. It can
be path to an ISO image, or to a CDROM device. It can also be a URL from which to
fetch/access a minimal boot ISO image. The URLs take the same format as described
for the "--location" argument. If a cdrom has been specified via the "--disk"
option, and neither "--cdrom" nor any other install option is specified, the
"--disk" cdrom is used as the install media.
-l LOCATION , --location=LOCATION
Distribution tree installation source. virt-install can recognize certain
distribution trees and fetches a bootable kernel/initrd pair to launch the
install.
因此,在这种情况下正确的命令是:
virt-install \
--name bla \
--ram=1024 \
--disk path=/home/me/libvirt/images/bla.qcow2,bus=virtio,size=10 \
--cdrom /home/me/Downloads/ubuntu-18.10-desktop-amd64.iso
答案2
从技术上讲,你可以使用 --location 和更新的 virt-install 1.5+ 以及参数说明这里 来自 Cole Robinson。我测试过了,确实如此。
然而,在我看来,让 Ubuntu 正常工作是一件非常痛苦的事情。我最终使用以下完整命令--location
让它工作了:--location
virt-install \
-n ubuntu -r 2048 \
--os-variant=ubuntu19 \
--location http://us.archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/ \
--disk /var/lib/libvirt/images/ubuntu20.img,size=10,device=disk,bus=virtio \
--graphics none -w bridge=br0,model=virtio \
--extra-args 'console=ttyS0,115200n8 serial' \
--force \
--debug
确保你浏览了 URL--location
以获取所需的正确 Ubuntu 版本。我相信你会经历一些尝试和错误...
使用 CentOS.iso
映像时我没有遇到此问题并且使用起来--location
正常。
答案3
我在尝试使用 virt-install 安装 Ubuntu 20.04.1 服务器时遇到了这个问题。我发现一些答案很有帮助,但找到了不同的解决方案。
首先。原始问题引用了“桌面” iso 文件。但是,关于将 ISO 安装到 /mnt 的“live-server-amd64.iso”的解决方案实际上对我开始安装很有帮助。
但是,我的安装最终进展得非常缓慢。我不太清楚为什么这么慢。当我试图取消那些耗时太久的更新时,安装最终崩溃了。不过还有另一种解决方案,它不需要安装 ISO 并提供那些内核启动选项。
有一个旧版(非实时)的 Ubuntu 20.04.1 服务器可用。
http://cdimage.ubuntu.com/ubuntu-legacy-server/releases/20.04/release/
在这里的这个线程上找到了它。
使用旧版本 20.04.1 服务器,它实际上将使用 --location 参数而不是 --cdrom 参数运行,从而启用 --extra-args console=ttyS0 选项。
答案4
如果你使用--cdrom
来代替 ,--location
你将失去一些选项,例如--extra-args
!这个有用的参数不能与 配合使用--cdrom
!如果你想使用 ,--extra-args
你必须使用--location
!
如果您喜欢这个参数,您必须用不同的方式克服这个问题!
如果你想解决这个问题,.iso
首先你必须知道文件是一种压缩文件!是的!它们是一些特殊类型的压缩文件,如或.zip
等等。.rar
.tar.gz
你可以学习如何提取它们通过以下链接。
您收到此问题的原因ERROR: Couldn't find hvm kernel for Ubuntu tree.
是您的图像(.iso
文件)不包含install/vmlinux
文件(vmlinuz
文件无法直接在您的根install
文件夹中使用)!通过提取文件来检查此文件是否存在.iso
(它必须vmlinuz
恰好在您的根文件夹中包含文件install
)。
如果您找不到,您必须.iso
从ubuntu
包含此特定路径下所需文件的网站找到其他相关内容!
值得注意的是,Ubuntu.iso
为每个发行版和版本以及平台提供了不同的文件,如 live iso、minimal iso 等!你只需要寻找最合适的一个。
尽力而为并且玩得开心。