检查依赖条件
首先确认主机机器硬件支持虚拟化技术,运行命令:
$ grep -Ec 'vmx|svm|0xc0f' /proc/cpuinfo
如果上述命令输出结果数字大于0,说明主机
CPU
支持虚拟化技术,否则无法继续后续操作。如果CPU
实际上支持虚拟化,需要到BIOS
中手动开启CPU
虚拟化功能后再回来尝试。确认系统内核中存在
KVM
模块:$ zgrep CONFIG_KVM= /proc/config.gz
如果上述命令输出
CONFIG_KVM=y
或者CONFIG_KVM=m
,则说明已存在该模块。确认
KVM
内核模块已经被加载好了:$ lsmod | grep kvm
如果有上述类似的输出,说明满足后续操作的条件。
如果上述命令没有输出任何内容,需要去手动加载该内核模块,可参考这里的操作。
安装程序包
运行命令以安装所需程序包:
$ sudo pacman -Syu $ sudo pacman -S qemu-full libvirt iptables-nft dnsmasq virt-manager
上述安装的程序包的主要功能为:
- qemu-full
QEMU模拟器,提供了多种CPU架构的全系统(
Full-System
)模拟及虚拟化功能,并且提供可视化虚拟机运行窗口。QEMU可使用KVM
以加速虚拟机实例的运行。- libvirt
提供了与QEMU的便捷交互功能,包含
libvirtd
后台服务,以及命令行前端工具virsh
。- iptables-nft, dnsmasq
虚拟机的默认
NAT/DHCP
网络模式所需依赖。- virt-manager
可视化的虚拟机管理工具,作为
libvirtd
服务的可视化前端与之交互以创建和管理虚拟机实例。安装完成上述程序包后,发现新增了用户组:
- libvirt
- libvirt-qemu
- qemu
将系统当前用户加入到上述用户组:
$ sudo usermod -aG libvirt $USER $ sudo usermod -aG libvirt-qemu $USER $ sudo usermod -aG qemu $USER
启动
libvirtd
服务:$ sudo systemctl start libvirtd $ sudo systemctl enable libvirtd $ sudo systemctl status libvirtd
启动
libvirt
虚拟网络default
,使其状态为active
:$ sudo virtsh net-list --all $ sudo virtsh net-autostart default $ sudo virtsh net-start default
创建运行虚拟机
- 运行可视化管理工具
virt-manager
。
$ virt-manager
- 点击菜单栏的创建虚拟机按钮➕,创建新的虚拟机实例。
- 在弹出窗口中选择安装方法
Local install media (ISO image or CDROM)
- 目标虚拟机架构默认选择
x86_64
- 点击
Forward
按钮继续
- 选择安装镜像文件。
- 点击
Browse
按钮 - 在弹出窗口中点击
Browse Local
按钮 - 选择已提前下载好的
ubuntu 22.04 desktop x86_64
安装镜像 - 点击
Forward
按钮继续 - 在弹出的提醒框中选择
Yes
,以使后续在虚拟机中安装系统时可成功读取镜像文件的内容
- 填写虚拟机所需内存大小及虚拟CPU核数,点击
Forward
按钮继续。
- 填写虚拟机存储磁盘大小,点击
Forward
继续。
- 确认虚拟机配置信息,点击
Finish
按钮。
- 上述操作将自动启动虚拟机可视化窗口,在该窗口中按照系统安装流程安装该操作系统。
若主机鼠标被该窗口获取而无法移出,可按组合键左ctrl + 左alt
增强功能
- 虚拟机与主机共享粘贴板
虚拟机中安装的Ubuntu 22.04 Desktop已经内置安装了
spice-vdagent
并且已自动开启了spice-vdagentd
服务,主机与虚拟机已可共享粘贴板,对于其他操作系统的虚拟机可以参考这里安装启用对应的spice-vdagent
包和服务- 虚拟机自动分辨率
同样需要在虚拟机系统中安装
spice-vdagent
和启用spice-vdagentd
服务。并且在虚拟机窗口菜单栏中勾选中view -> Scale Display -> Auto resize VM with window
,这样当调整虚拟机窗口时,内部的虚拟机界面能自动调整为适配的分辨率。- 虚拟机共享主机文件夹