主力机装了 Arch Linux,有时候又免不了要用 Windows 或者别的系统,双启动来回切太麻烦,虚拟机成了刚需,总不能为了一个软件专门装个双系统吧
KVM 是 Linux 内核自带的虚拟化方案,配合 QEMU 使用,性能接近原生,比 VirtualBox 那种方案不知道高到哪里去了
确认硬件支持
首先确认你的 CPU 支持虚拟化
shell
grep -E '(vmx|svm)' /proc/cpuinfoIntel 看到 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-full | QEMU 本体,包含各种架构模拟 |
libvirt | 虚拟化管理守护进程,管理虚拟机生命周期 |
virt-manager | GUI 管理界面 |
edk2-ovmf | UEFI 固件,装 Windows 11 必须 |
dnsmasq | DHCP服务 |
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