avatar💡
Irving WuIrving Wu's Blog

The truth of the world is beyond the realm of common sense.

即使生命如此短暂,我也要在这世上留下精彩的足迹

Arch Linux 配置 KVM + QEMU 虚拟化

手上的主力机装了 Arch Linux,有时候又免不了要用 Windows 或者别的系统,双启动来回切太麻烦,虚拟机成了刚需 总不能为了一个软件专门装个双系统吧
KVM 是 Linux 内核自带的虚拟化方案,配合 QEMU 使用,性能接近原生,比 VirtualBox 那种方案不知道高到哪里去了

确认硬件支持

首先确认你的 CPU 支持虚拟化

shell
grep -E '(vmx|svm)' /proc/cpuinfo

Intel 看到 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-fullQEMU 本体,包含各种架构模拟
libvirt虚拟化管理守护进程,管理虚拟机生命周期
virt-managerGUI 管理界面,不想敲命令就靠它
edk2-ovmfUEFI 固件,装 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 删除虚拟磁盘

参考

人生的主观中点是十八岁