背景
我想在 OpenMediaVault 5 上的虚拟机中运行 Home Assistant (HASS)。在 OMV 4 之前,这很容易,因为 OMV(以及底层 Debian)支持 VirtualBox,而 VB 显然在启动 UEFI 映像时没有任何问题。由于 OMV 5(以及底层 Debian 10)不再支持 VirtualBox,OMV 现在使用 KVM(libvirt
)作为虚拟机(它支持座舱来管理它们)。不幸的是,这意味着在 OMV/Debian 10 上启动 UEFI 映像不再是一件容易的事,而且——你猜对了——KVM 的官方 Home Assistant 映像(QCOW2)需要 UEFI,尝试在 Cockpit 中导入和启动它会失败。我无法在 Cockpit 中找到任何允许我将启动模式设置为 UEFI 的按钮或命令。
挑战(更笼统地说)
所以我想要实现的是在无头系统上以 UEFI 模式启动 QCOW2 映像,即没有virt-manager
。 (如果您使用的是台式机,我相信您不会遇到这个问题,而可以使用virt-manager
而不是 Cockpit。)
你是怎么做到的?
答案1
免责声明:我对 UEFI 不是很熟悉,甚至不知道它到底起什么作用,所以如果这个答案可以改进,请进行相应的评论或编辑。
这对我有用:
apt-get install ovmf
cd /usr/share/ovmf/
检查文件OVMF.fd
是否存在,因为这是libvirt
启动映像所需的文件。(如果您的文件由于某种原因位于其他地方,请找到它并相应地更改下面的路径。)
假设您已经创建了一个名为 HASS 的虚拟机(使用导入图像按钮,并使用家庭助理安装页面现在,您可以在命令行上编辑该虚拟机(请确保在继续操作之前已关闭机器):
virsh edit HASS
找到该部分,我的看起来像这样:
<os>
<type arch='x86_64' machine='pc-q35-3.1'>hvm</type>
<boot dev='hd'/>
</os>
和插入<loader readonly='yes' type='rom'>/usr/share/ovmf/OVMF.fd</loader>
在类型标签之后:
<os>
<type arch='x86_64' machine='pc-q35-3.1'>hvm</type>
<loader readonly='yes' type='rom'>/usr/share/ovmf/OVMF.fd</loader>
<boot dev='hd'/>
</os>
保存并退出,您就完成了。如果您现在启动 VM,它应该会启动 HASS 映像。