Portal:MicroOS/Virtualization
虚拟化选项
- 在 MicroOS Desktop 上,我们推荐使用 GNOME Boxes flatpak
- 在服务器上,libvirt 与 qemu 后端是一个不错的选择。它有一个守护进程,可用于在重启之间保存 VM 状态
- 如果需要访问主机硬件,例如用于 GPU 计算,请考虑使用 libvirt 与 lxc 后端(PCI 直通与 qemu 也是一个选项,适用于 NVidia 和 Intel,但不适用于 AMD GPU)
libvirt
安装
使用 pkcon 或 transactional-update,安装以下软件包
sudo transactional-update pkg install libvirt libvirt-daemon-qemu qemu-tools virt-install
在无头服务器上,可以使用 virsh 和 virt-install 来管理 VM。对于 UI,请考虑安装 virt-manager 软件包。
安装后,重启到新的快照,并启用守护进程
sudo systemctl enable --now libvirtd
定义默认(伪装到主机)网络
sudo virsh net-define /etc/libvirt/qemu/networks/default.xml sudo virsh net-autostart default sudo virsh net-start default
有关更多选项,请参阅 libvirt wiki。
可选地,要使机器状态自动保存并在重启后恢复
sudo systemctl enable --now libvirt-guests
LXC
安装 `libvirt-daemon-lxc`。有关详细信息,请参阅 libvirt wiki on LXC。请注意,这可以与 qemu 后端共存;您只需要在使用 virsh 时指定连接 URL,例如 virsh -c lxc:///system list --all。
已知问题
- 默认网络无法工作:Bug 1199518
解决方法是在默认网络中使用静态 DNS 配置
运行 `virsh net-edit default`,这将弹出编辑 xml
<network>
...
<dns>
<forwarder addr='9.9.9.9'/>
<forwarder addr='149.112.112.112'/>
</dns>
...
</network>
这些是 quad9 公共解析器,可以替换为你想要的任何解析器。生成的 dnsmasq.conf 不会使用 resolv.conf,从而避免了 SELinux 权限问题。
- 通过主机上的转发连接到 VM:Portal:MicroOS/SELinux#Local_ssh_forwarding