![在 Ubuntu Server 16.04 的 KVM Guest 安装期间出现错误“找不到 hvm 内核”](https://linux22.com/image/885105/%E5%9C%A8%20Ubuntu%20Server%2016.04%20%E7%9A%84%20KVM%20Guest%20%E5%AE%89%E8%A3%85%E6%9C%9F%E9%97%B4%E5%87%BA%E7%8E%B0%E9%94%99%E8%AF%AF%E2%80%9C%E6%89%BE%E4%B8%8D%E5%88%B0%20hvm%20%E5%86%85%E6%A0%B8%E2%80%9D.png)
我已经安装了一个带有 Ubuntu Server 16.04 的系统,并在其上安装了 KVM(我在安装过程中选择了“虚拟化服务器”,因此 KVM 很可能配置正确)。
问题:我无法使用 virt-install 安装 KVM 客户端。它表现得好像无法读取安装介质。
我收到此错误“无法找到 hvm 内核...”尝试创建虚拟机时:
Starting install...
ERROR Couldn't find hvm kernel for Ubuntu tree.
Domain installation does not appear to have been successful.
这是我用来尝试创建 VM 的脚本;我使用 sudo 运行它。
#! /bin/bash
#
if [ ! -d /var/www/html/isos/ubus-docker ]; then
mkdir -p /var/www/html/isos/ubus-docker
fi
umount /var/www/html/isos/ubus-docker/
mount -o loop ~/iso/ubuntu-16.04.1-server-amd64.iso /var/www/html/isos/ubus-docker/
virt-install \
--connect qemu:///system \
--name ubus-docker \
--memory maxmemory=4096,memory=512 \
--vcpus 2 \
--location http://heind-gb0/isos/ubus-docker/ \
--extra-args "console=tty0 console=ttyS0,115200" \
--os-variant ubuntu16.04 \
--disk path=/dev/heind-gb0-vg/vm-ubus-docker \
--network network=default \
--virt-type kvm \
--hvm \
--graphics none
当我访问http://heind-gb0/isos/ubus-docker/在 Web 浏览器中,我看到了 ISO 根目录中文件和目录的列表。(我明确安装并配置了 nginx 来提供此 ISO。)(注意:这是在 KVM 主机上运行的本地服务器,所以不用费心浏览它:-))
我不知道如何解决这个问题。欢迎任何帮助。
(注意:我正在运行 Ubuntu Server,只有控制台,没有 GUI。并且我也想完全从控制台进行客户虚拟机安装。)
更新:这似乎是 的最新版本中引入的一个问题virt-manager
。该问题正在 上讨论virt-tool-list 列表.我正在浏览源码仓库历史来找到工作代码,也许开发一个补丁来恢复对 Ubuntu 安装 ISO 的支持(希望有人更熟悉该代码,可以先到达那里:-))。
更新2:它曾是较新版本的问题virt-manager
。现已修复(请参阅下面评论中的答案)。但不确定修复何时会进入virt-manager
软件包。
答案1
我已通过邮件列表向 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。
修复该问题的提交是:https://github.com/virt-manager/virt-manager/commit/3f15a489cda87f8028828d567848193dd2640a43
我不确定这何时会对各种 virt-manager 软件包产生影响。但您可以获取源代码并从那里运行 virt-install。(注意:您需要添加一些软件包,我创建了一个 Python 虚拟环境,因此您可能需要在 VM 上进行实验,然后再在需要保持稳定和清洁的系统上使用额外的软件包。)