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) 1.2 内核支持#

确认内核支持

Arch Linux 默认内核已包含 KVM 模块,但需确保内核版本 ≥ 2.6.20(现代 Arch 系统均满足)。验证 KVM 模块是否加载:

shell
lsmod | grep kvm
# 输出示例:
kvm_intel             311296  0
kvm                   942080  1 kvm_intel
irqbypass              16384  1 kvm

若未加载,手动加载模块:

shell
sudo modprobe kvm-intel #Intel
sudo modprobe kvm-amd   #AMD

安装必要组件

shell
sudo pacman -S qemu-full libvirt virt-manager virt-viewer edk2-ovmf dnsmasq
组件用途
qemu-fullQEMU 本体,包含各种架构模拟
libvirt虚拟化管理守护进程,管理虚拟机生命周期
virt-managerGUI 管理界面
edk2-ovmfUEFI 固件,装 Windows 11 必须
dnsmasqDHCP服务
bridge-utils网络桥接工具(可选)
swtpm软件TPM模拟(可选,设备有TPM就没必要)

启动服务

shell
sudo systemctl enable --now libvirtd

确认运行正常

shell
sudo systemctl status libvirtd

把自己加入 libvirt 用户组

不加的话后面 virt-manager 连接不了

shell
sudo usermod -aG kvm,libvirt $(whoami)

注销重新登录,用 groups 确认一下

配置默认网络

确认默认 NAT 网络已启动

shell
sudo virsh net-start default
sudo virsh net-autostart default

查看网络信息

shell
sudo virsh net-info default

创建虚拟机

打开 virt-manager,点左上角电脑图标(创建虚拟机),选择本地安装介质,选好 ISO,按向导走

装 Windows 11 注意

记得勾选「Customize configuration before install」,在 Overview 里把固件改成 UEFI,否则会报「这台电脑无法运行 Windows 11」

性能调优(可选)

如果你需要更好的性能,可以配置 CPU 直通,不过正常情况应该都是默认配置好的

shell
sudo 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,就能和宿主机共享剪贴板了,Windows安装virtio-win
学习通网页版字体混淆解码
人生的主观中点是十八岁