在 Debian 上安装 Windows 10 虚拟机:一份够用的办公实践记录

最近我在 Debian 13 上搭了一台 Windows 10 虚拟机,目标很简单:在不离开 Linux 主系统的前提下,保留一个稳定的 Windows 办公环境。

这篇文章不讲太多原理,只记录实际可复现的过程,重点包括:

  • Debian 上安装和运行 Windows 10 虚拟机
  • 首次启动时 UEFI 菜单该怎么选
  • 常用的启动、关机和重启方式
  • 最关键的双向复制粘贴怎么打通

如果以后我自己再装一次,照着这篇做就够了。

一、我的环境

宿主机:

  • 系统:Debian 13 (trixie)
  • 虚拟化方案:KVM/QEMU + libvirt + virt-manager
  • CPU:Intel i5-12600KF
  • 内存:31 GiB
  • 显卡:NVIDIA RTX 4070 SUPER

虚拟机配置:

  • 虚拟机名:win10-office
  • vCPU:8
  • 内存:12 GiB
  • 磁盘:120 GiB
  • 固件:UEFI
  • TPM:2.0
  • 图形协议:SPICE

这套配置用于 Office、浏览器、常规办公软件,体验是足够的。

二、为什么选 KVM/QEMU

在 Debian 上跑 Windows,常见方案有 VirtualBoxVMwareKVM/QEMU

我最后选的是:

KVM/QEMU + libvirt + virt-manager

原因很实际:

  • 它是 Linux 下的主流方案
  • 性能和稳定性都更合适长期使用
  • 跟系统集成更自然
  • 后续网络、磁盘、显示、TPM 这些能力更完整

如果只是为了在 Debian 里稳定办公,这套方案基本是首选。

三、先安装宿主机依赖

我把安装脚本留在了桌面:

执行命令:

sudo bash /home/xu/Desktop/install_kvm_windows_host.sh

它会安装这些核心组件:

  • qemu-system-x86
  • libvirt-daemon-system
  • virt-manager
  • ovmf
  • swtpm
  • virt-viewer

装完以后,最好重新登录一下桌面会话,让用户组权限生效。

四、准备 Windows 10 安装镜像

我使用的镜像路径是:

/home/xu/Desktop/Win10_22H2_Chinese_Simplified_x64v1.iso

这里要顺便记一件事:

Windows 10 已经在 2025-10-14 结束官方支持。

这不代表它立刻不能用,但如果是长期办公环境,从安全维护角度看,它已经不是最佳选择。这里只是因为我当前确实需要 Windows 10。

五、创建虚拟机时的关键参数

这次最终跑通的配置如下:

  • 8 vCPU
  • 12288 MiB 内存
  • 120 GiB 磁盘
  • UEFI 启动
  • TPM 2.0
  • 默认 NAT 网络
  • SPICE 显示

虚拟磁盘保存在:

/var/lib/libvirt/images/win10-office.qcow2

这里有一个容易忽略的点:

虚拟机关机后,CPU内存 会释放回 Debian;但虚拟磁盘文件会一直占用磁盘空间。

六、首次启动时不要慌:先过 UEFI 菜单

第一次启动虚拟机时,不一定会直接进入 Windows 安装界面,可能先看到一个 UEFI Boot Manager

这时正确操作是:

  1. 进入 Boot Manager
  2. 选择 UEFI QEMU DVD-ROM
  3. 从安装光盘启动

不要选:

  • UEFI QEMU HARDDISK

因为这时虚拟硬盘里还没有系统。

七、安装 Windows 10 时怎么选

进入 Windows 安装程序后,有两个地方容易犹豫。

1. 安装类型

这里选:

自定义:仅安装 Windows(高级)

不要选“升级”。

原因很简单:这是全新虚拟机,不是给已有系统升级用的。

2. 安装位置

到了磁盘界面后,直接选:

驱动器 0 未分配的空间 120.0 GB

然后点 下一步

不用手动分区,Windows 会自动创建 EFI 分区、恢复分区和系统分区。

八、启动和进入虚拟机

我把控制台打开脚本也放在了桌面:

平时直接执行:

bash /home/xu/Desktop/open_win10_office_console.sh

这个脚本会自动做两件事:

  1. 如果虚拟机没开,就先启动
  2. 然后打开 virt-viewer

如果只想手动控制虚拟机,也可以用这些命令。

启动:

virsh -c qemu:///system start win10-office

关机:

virsh -c qemu:///system shutdown win10-office

重启:

virsh -c qemu:///system reboot win10-office

查看状态:

virsh -c qemu:///system domstate win10-office

九、最容易忘的一步:打通双向复制粘贴

这部分是我这次折腾里最值得单独记下来的内容。

一开始我以为只要装好 Windows,再用 virt-viewer 打开,就能直接把 Debian 里的内容复制到虚拟机里,结果并不行。

后来实际验证下来,双向复制粘贴要同时满足下面几个条件:

  1. 虚拟机显示协议使用 SPICE
  2. Windows 里安装 SPICE Guest Tools
  3. Windows 里再安装 virtio-win-guest-tools
  4. SPICE AgentSPICE VDAgent 服务正常运行
  5. 安装完成后,重启 Windows,并重新打开 virt-viewer

1. 为什么只装一个工具不够

这次实际踩坑的点就在这里。

我最开始装了 SPICE VDAgent,服务也能启动,但复制粘贴依然不工作。后来补装了 virtio-win-guest-tools,问题才真正解决。

简单理解就是:

  • SPICE Agent 负责剪贴板能力
  • 但它依赖的 VirtIO Serial 驱动链也必须是正常的

所以最稳的做法不是只装一个,而是两个都装。

2. 在 Windows 里安装这两个工具

我当时直接通过宿主机提供了本地下载地址,在虚拟机里访问:

http://192.168.122.1:18080/spice-guest-tools-latest.exe

先安装 SPICE Guest Tools

然后再访问:

http://192.168.122.1:18080/virtio-win-guest-tools.exe

安装 virtio-win-guest-tools

这两个都装完以后:

  1. 重启 Windows
  2. 关闭当前 virt-viewer 窗口
  3. 在 Debian 重新执行:
bash /home/xu/Desktop/open_win10_office_console.sh

3. 怎么检查有没有装对

在 Windows 里按:

Win + R

输入:

services.msc

打开服务列表后,重点看这两个:

  • SPICE Agent
  • SPICE VDAgent

建议状态是:

  • 启动类型:自动
  • 当前状态:正在运行

4. 怎么测试复制粘贴

不要一上来就在浏览器或者 Word 里试,先用最简单的文本场景。

推荐测试顺序:

  1. 在 Debian 里复制一行纯文本
  2. 粘贴到 Windows 里的 记事本
  3. 再从 Windows 记事本复制一行文本回 Debian

如果这一步通了,说明双向剪贴板已经正常。

十、分辨率太小怎么办

Windows 装完以后,默认分辨率不一定适合办公,尤其是窗口看起来会偏小。

我自己的处理方式很简单:

  1. 先把 virt-viewer 窗口放大、最大化,或者全屏
  2. 再到 Windows 里打开:

设置 -> 系统 -> 显示

重点调两个参数:

  • 显示分辨率
  • 缩放

比较适合办公的组合有两个:

  • 1920x1080 + 125%
  • 1920x1080 + 150%

前者显示内容更多,后者字体更舒服一点。

十一、几个最终结论

这次实践里,最值得以后直接记住的点有这些:

第一,Debian 上跑 Windows 办公,KVM/QEMU + libvirt + virt-manager 是很稳的方案。

第二,首次启动如果进了 UEFI 菜单,不是出错,直接去 Boot Manager 里选 UEFI QEMU DVD-ROM 就行。

第三,安装 Windows 时,磁盘直接选整块未分配空间,不用自己手工分区。

第四,8 vCPU + 12 GiB 对日常办公是够用的,关机后 CPU 和内存会释放给 Debian。

第五,双向复制粘贴这件事,真正稳妥的做法是:

SPICE Guest Tools + virtio-win-guest-tools 一起装。

如果只装前者,未必一定能通。

十二、附:我保留在桌面的文件

为了下次重装方便,我把相关文件都留在了桌面:

下次如果再搭,基本只需要先看这篇,再按这里的命令和步骤走一遍即可。

发表回复

Your email address will not be published. Required fields are marked *.

*
*