还在纠结双系统教你在 Linux 里直接装 Windows
Linux装Windows不用重启,双系统太麻烦,虚拟机又卡得要死。
最近试了个新办法,在Ubuntu里直接跑微信和金蝶,启动只要几秒,关掉就没了,跟没装过一样。
不是 Wine,也不是远程桌面,更不是偷着用 Windows 镜像——是正经 Docker 跑起来的,我自己动手装的。
WinBoat 这个东西,名字听起来像船,其实是个 Linux 上跑 Windows 应用的“小盒子”。它不装整个 Windows 系统,只拉一个精简版镜像,加上 RDP 画图、文件挂载、网络转发,几下就通了。我试了在 Ubuntu 24.04 里装,过程比预想简单,没弹一堆报错,也没重装系统。关键是,它不碰我的 GRUB,不怕 Windows 更新炸掉启动项。
装之前我查了一堆坑:必须是 UEFI 启动,必须开 kvm,必须是 x86_64 机器。ARM 的树莓派别试了,真不行。我笔记本是 Intel 12 代,UEFI 开着,`lsmod | grep kvm` 有输出,心里就踏实一半。然后加 Docker 源、装 freerdp3、把用户加进 docker 组,登出重进——这步不能跳,否则后面全要 sudo,烦死。
镜像我只用了官方 ghcr.io/winboat/win10-22h2,别的不敢乱拉。WinBoat 官方 DEB 包直接管道安装,没报错。运行那句命令我打了三遍才对:`winboat run --cpu 2 --memory 4g --disk 32g --user winuser --password Win@123 --rdp-port 3390 win10-22h2`,端口特意设成 3390,免得跟本机冲突。Remmina 连上去,桌面出来了,图标都正常,微信扫码登录成功,发了条消息,没卡。
但别高兴太早。这东西真不能当 Windows 用。游戏进不去,显卡没直通,连《扫雷》都卡顿;USB 打印机插上,容器里根本识别不到;想改注册表?提示权限拒绝;装个杀毒软件?直接报错说没服务支持。它只能干几件事:开 GUI 程序、跑 .NET 依赖、测试安装包兼容性。用完删容器,`winboat rm -f xxx`,磁盘空间立马还回来。
我配了个 `.desktop` 文件,双击就能打开钉钉,背后其实只是 `winboat exec -it xxx cmd /c "start \"\" \"C:\\Program Files\\DingTalk\\DingTalk.exe\""`。VS Code 里开 Remote-Containers,选 WinBoat 镜像,`.NET 6` 项目也能编译运行。日志全进 journalctl,查起来比 Windows 事件查看器还清楚。
如果真要天天用 Windows,比如剪视频、跑 CAD,还是老老实实双系统或 KVM。WinBoat 就像个临时工:活来了接一下,活完了走人,不占位置,不惹麻烦。它不帮你激活 Windows,镜像得自己合规获取;也不替你写代码,该配环境变量还得配。它就是把 Windows 当成一个“服务”来用,而不是一个“系统”。
有人问能不能跑 Office?能,但 Word 打开大文档会慢;能不能跑 Python + PySide 写的界面工具?能,只要把依赖打进去就行;能不能替代 VMware?不能,它连驱动层都摸不到。它不是万能胶,是把螺丝刀——拧得紧,但也只拧螺丝。
我删掉了试装时建的三个测试容器,清理了挂载目录,`docker system prune -a` 清了缓存,整个过程没动 `/etc`,没改任何系统配置。现在桌面上只剩一个钉钉图标,点开就是 Windows 界面,




