手上的主力机装了 Arch Linux,有时候又免不了要用 Windows 或者别的系统,双启动来回切太麻烦,虚拟机成了刚需 总不能为了一个软件专门装个双系统吧
KVM 是 Linux 内核自带的虚拟化方案,配合 QEMU 使用,性能接近原生,比 VirtualBox 那种方案不知道高到哪里去了
确认硬件支持
首先确认你的 CPU 支持虚拟化
shell
grep -E '(vmx|svm)' /proc/cpuinfoIntel 看到 vmx,AMD 看到 svm 就说明支持。如果没有,进 BIOS 开启 VT-x(Intel)或 SVM(AMD)
安装必要组件
shell
sudo pacman -S qemu-full libvirt virt-manager virt-viewer edk2-ovmf dnsmasq iptables-nft| 组件 | 用途 |
|---|---|
qemu-full | QEMU 本体,包含各种架构模拟 |
libvirt | 虚拟化管理守护进程,管理虚拟机生命周期 |
virt-manager | GUI 管理界面,不想敲命令就靠它 |
edk2-ovmf | UEFI 固件,装 Windows 11 必须 |
dnsmasq | 虚拟机 NAT 网络需要 |
iptables-nft | 网络转发规则 |
启动服务
shell
sudo systemctl enable --now libvirtd确认运行正常
shell
sudo systemctl status libvirtd把自己加入 libvirt 用户组
不加的话后面 virt-manager 连接不了
shell
sudo usermod -aG libvirt $(whoami)注销重新登录,用 groups 确认一下
配置默认网络
确认默认 NAT 网络已启动
shell
virsh net-start default
virsh net-autostart default查看网络信息
shell
virsh net-info default创建虚拟机
打开 virt-manager
shell
virt-manager点左上角电脑图标(创建虚拟机),选择本地安装介质,选好 ISO,按向导走
装 Windows 11 注意
记得勾选「Customize configuration before install」,在 Overview 里把固件改成 UEFI,否则会报「这台电脑无法运行 Windows 11」
性能调优(可选)
如果你需要更好的性能,可以配置 CPU 直通
shell
virsh edit <虚拟机名称>在 <features> 段添加
xml
<hyperv>
<relaxed state="on"/>
<vapic state="on"/>
<spinlocks state="on" retries="8191"/>
</hyperv>在 <clock> 段使用
xml
<clock offset="localtime">
<timer name="hypervclock" present="yes"/>
</clock>小技巧
- 共享剪贴板:虚拟机里安装
spice-vdagent,就能和宿主机共享剪贴板了 - 调整虚拟机 CPU/内存:在虚拟机关机状态下,用 virt-manager 的 i 图标修改即可
- 关机后自动释放资源:
virsh undefine <虚拟机名称>删除虚拟机,virsh vol-delete删除虚拟磁盘