Arch Linux 用 KVM安装 Windows 10踩坑记录
在 Arch Linux 中使用 KVM 安装 Windows 10 是一个性能非常优秀的方案。下面是详细步骤,涵盖从安装 KVM 到成功运行 Windows 10 虚拟机,包括图形管理界面 virt-manager 的使用。
声明:本文在AI生成的基础上增加了我的个人实践记录。
✅ 一、确认 CPU 支持虚拟化
egrep -c '(vmx|svm)' /proc/cpuinfo
输出大于 0
表示支持虚拟化。
✅ 二、安装 KVM 相关组件
安装必要的软件包:
sudo pacman -S qemu virt-manager virt-viewer dnsmasq vde2 bridge-utils openbsd-netcat libvirt edk2-ovmf
qemu
: QEMU 虚拟化引擎virt-manager
: 图形化虚拟机管理工具libvirt
: 虚拟化管理服务edk2-ovmf
: UEFI 支持(安装 Windows 推荐)
✅ 三、启动和启用 libvirtd 服务
sudo systemctl enable --now libvirtd.service
确保当前用户属于 libvirt
用户组:
sudo usermod -aG libvirt $(whoami)
newgrp libvirt
✅ 四、检查虚拟化功能是否正常
virsh list --all
如果输出没有报错,说明 libvirt 正常工作。
✅ 五、下载 Windows 10 ISO 镜像
前往微软官方下载:
https://www.microsoft.com/zh-cn/software-download/windows10
或使用工具下载 .iso
文件。
✅ 六、启动 virt-manager 图形化管理器
virt-manager
第一次打开会自动连接到 qemu:///system
,可以看到虚拟机列表。
✅ 七、创建 Windows 10 虚拟机
1. 新建虚拟机(点击左上角“+”图标)
按照向导设置:
- 本地 ISO 文件:选择 Windows 10 的 ISO 镜像
- 操作系统类型:Microsoft Windows → Windows 10
- CPU 和内存:至少 2 核,4GB 内存(根据你电脑实际配置)
- 磁盘大小:建议 64 GB 或更多
- 网络配置:NAT(默认即可)
- 固件:选择 UEFI (OVMF),以支持 GPT 安装和更好的兼容性(重要)
2. 高级配置(可选):
点击“自定义配置前编辑配置”,可以:
- 添加 VirtIO 驱动器(提高性能,见下)
- 启用 3D 加速、CPU 超线程
- 使用 VirtIO 磁盘接口,而不是 IDE 或 SATA(需要安装驱动)
✅ 八、配置 VirtIO 驱动(推荐)
Windows 安装默认不支持 VirtIO 磁盘和网卡,需要挂载 VirtIO 驱动 ISO:
1. 下载 VirtIO 驱动镜像:
前往 Fedora 仓库:
https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/
下载 virtio-win.iso
文件。
我这里下载的是
https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.271-1/virtio-win-0.1.271.iso
2. 在 virt-manager 中添加光驱并挂载该 ISO。
3. 在 Windows 安装过程中:
- 点击“加载驱动程序”,浏览到 VirtIO ISO,选择对应系统位数的驱动。
- 加载后即可识别 VirtIO 磁盘和网卡。
在这里插入图片描述
✅ 九、安装完成后优化
安装 Windows Guest Tools(QEMU Guest Agent):
在 Windows 中手动安装 ISO 中的 qemu-ga
驱动,用于优化宿主与客户机的交互。
我安装以后没感觉有什么变化。
网络 ‘default’ 未激活
主机重启后开启虚拟机会报如下错:
libvirt.libvirtError: 所需操作无效:网络 'default' 未激活
这个错误:
libvirt.libvirtError: 所需操作无效:网络 'default' 未激活
说明 libvirt 默认的虚拟网络(default)没有启动,所以虚拟机无法使用它启动。
✅ 解决方法:启动并设置默认网络自动启用
请按以下步骤操作:
🔧 1. 启动 default 网络
sudo virsh net-start default
你应该会看到输出:
Network default started
🔧 2. 设置 default 网络开机自动启动
sudo virsh net-autostart default
这样每次重启系统时,default
网络都会自动启动。
✅ 检查网络是否存在(可选)
sudo virsh net-list --all
输出类似:
名称 状态 自动启动 持久化
---------------------------------------
default 关闭 否 是
如果 状态
是“关闭”,说明上面两步还没执行成功。
🧪 如果 default 网络不存在怎么办?
可能你的 libvirt 没创建默认网络配置文件,可以重建:
sudo virsh net-define /usr/share/libvirt/networks/default.xml
sudo virsh net-start default
sudo virsh net-autostart default
如果找不到 default.xml
,我可以为你提供一份默认网络配置 XML 文件。
需要我帮你生成一个默认的 default.xml
网络配置吗?
如何在 Windows Guest 上的 Qemu/KVM 中启用剪贴板和文件夹共享
目前为止KVM中的windows已经可以正常使用了。但是虚报机与主机之间复制文件,和粘贴文字并不方便。
第 1 步 – 将 spice-guest-tools 下载到 Windows Guest
在 Windows Guest 上打开下载页面 (https://cutt.ly/2ROq8dK),向下滚动一点,直到在 Guest 下找到 Windows 二进制文件,然后单击 Windows guest tools 链接开始下载。或者您可以使用此链接
https://www.spice-space.org/download/windows/spice-guest-tools/spice-guest-tools-latest.exe
Or easier, shortened URL: https://cutt.ly/SROqBqZ
第 2 步 – 运行并安装 spice-guest-tools
文件在 Windows Guest 上可用后,运行并安装程序。
显示屏可能会闪烁几次,所以不用担心。
第 3 步 – 测试您的复制/粘贴
你差不多完成了。尝试在 Windows Guest 中复制内容并将其粘贴到 Host 中,它应该可以正常工作。但如果没有,请尝试重新启动 VM。如果仍然不起作用,请删除该程序并重新安装。它应该有效。
在虚拟机配置中使用 SPICE 显示器 + QXL 显卡
在 virt-manager 中设置:
显示设备 → 类型选择:Spice server
如果切换时报错如下:
更改 虚拟系统 配置出错:不支持的配置:spice 这个 QEMU 不支持图形
Traceback (most recent call last):
File "/usr/share/virt-manager/virtManager/addhardware.py", line 341, in change_config_helper
define_func(devobj=devobj, do_hotplug=False, **define_args)
解决办法:
sudo pacman -S qemu-full virt-viewer
视频设备 → 类型选择:QXL
然而我这样设置后还是不可以共享剪切板
换windows10的版本重新安装
对比上次区别
主要区别:
- iso版本不同
- 虚拟机自定义硬件
我的windows 10的iso文件在这里下载的。
https://next.itellyou.cn/Original/#cbp=Product?ID=f905b2d9-11e7-4ee3-8b52-407a8befe8d1
我最开始用的Windows 10 (business editions), version 22H2 (updated April 2025) (x64) - DVD (Chinese-Simplified)
实测安装后,声卡不正常,没有声音。
为了解决剪切板不能共享的问题,我又尝试了安装
Windows 10 Enterprise LTSC 2021 (x64) - DVD (Chinese-Simplified)
安装这个版本让我印象深刻的是,安装好以后声卡是直接正常的。网卡有点问题。
安装完virtio-win-0.1.271.iso 以后,网络也是正常的。
与上次安装不同的是,参考了:
https://www.bilibili.com/video/BV1Lz4y1x7kk/?spm_id_from=333.1391.0.0
这些安装前我自定义了一下配置,主要区别如下:
- 显示协议Spice,类型:Spice服务器 ,开启OpenGL 。之前默认是VNC
- 显示卡Virtio
3. 网络 设备型号virtio
简单上手体验
这次安装好后,没折腾就有声卡了,我在虚拟机上B站后了几个视频感觉系统挺流畅的。因为同时换了ISO和自定义硬件,没有控制变量,我也不清楚是哪个影响的。等以后有时间在研究吧。
我在尝试在现在的基础上是否可以解决 共享剪切板的问题。
安装spice-guest-tools-latest.exe
https://www.spice-space.org/download.html
实际下载地址:
https://www.spice-space.org/download/windows/spice-guest-tools/spice-guest-tools-latest.exe
安装过程一路一下步就行了。安装完成以后,测试剪切板,发现这次正常啦。主机与虚拟机之间可以正常复制粘贴文字啦。
探究到底与windows 10 的ISO版本是否有关。
剪切板共享的问题轻松解决了,那么到底跟windows10的版本是否有关呢?
- Windows 10 (business editions), version 22H2 (updated April 2025) (x64) - DVD (Chinese-Simplified)
- Windows 10 Enterprise LTSC 2021 (x64) - DVD (Chinese-Simplified)
这次控制变量法,只是iso文件不同其他的相同在来一遍。
自定义硬件配置后,我安装弹出这样的错误。
后来发现这个错误的原因是:
显示协议Spice,类型:Spice服务器 ,开启OpenGL 。这里的监听类型要选择无才可以。再次点击开始安装就可以安装了。
当然这次安装,我选择安装企业版本(上一次测试选择专业版本的)。为什么这次选企业版本,因为Windows 10 Enterprise LTSC 中默认也是企业版本的,这样就保存一致了。只是对面版本新旧的问题。
安装好后发现,
- 声卡是直接正常使用了。
- 没安装驱动之前网卡不能用
以上现象与Windows 10 Enterprise LTSC
现象日志。
安装 virtio-win-0.1.271.iso
后网络恢复正常。
安装spice-guest-tools-latest.exe
https://www.spice-space.org/download.html
实际下载地址:
https://www.spice-space.org/download/windows/spice-guest-tools/spice-guest-tools-latest.exe
安装过程一路一下步就行了。安装完成以后,测试剪切板,发现这次正常啦。主机与虚拟机之间可以正常复制粘贴文字啦。
Windows版本选择
选择普通版本的windows 10还是选择 LTSC版本时,我开始纠结了。
我的需求是一些只能在windows中运行的应用,能运行,比如:向日葵,微信开发者工具之类的。越稳定越好。
对比前:
LTSC版本我安装了一个winscp和一个补丁。
LTSC版本有个小BUG《Windows10LTSC wsapp 高CPU占用》
https://blog.csdn.net/lxyoucan/article/details/125081329
然后我对两个系统进行了简单的对比 。
我对比了两个系统,在没有运行软件的情况下,系统开机空载的情况下资源占用情况。
首先CPU 的占用是相差不多的,虽然截图里LTSC更少点,其实两边都是跳动的过程,有波动。
内存的占用LTSC版本,明显少了0.4GB。
还有就是普通版本,安装好后没多久系统就提示更新,而LTSC版本并没有更新。
系统空间占用情况
LTSC版本空间占用19.9GB 普通版本22.6GB
空间少了2.7GB。
我最终选择LTSC,主要原因我的笔记本空间不是很足,内存也较小。
总结
共享剪切板是否成功,与ISO版本无法。主要与安装时自定义配置有关。
参考
https://dausruddin.com/how-to-enable-clipboard-and-folder-sharing-in-qemu-kvm-on-windows-guest/