WinApps 轻量级部署指南:4GB 内存的旧电脑如何跑起 Windows 应用
【免费下载链接】winappsRun Windows apps such as Microsoft Office/Adobe in Linux (Ubuntu/Fedora) and GNOME/KDE as if they were a part of the native OS, including Nautilus integration. Hard fork of https://github.com/Fmstrat/winapps/项目地址: https://gitcode.com/GitHub_Trending/wina/winapps
一台用了八年的旧笔记本,双核 CPU、4GB 内存,WinApps 也能在上面跑起 Microsoft Office,甚至 Photoshop。这个开源项目在你的 Linux 系统里开一台轻量 Windows 虚拟机,再用远程桌面协议 RDP(把应用画面帧回传到本地客户端)把任意 Windows 应用变成桌面菜单里的一个图标。以下是一份聚焦最低配置的轻量级部署指南。
两条路线怎么选:容器优先,虚拟机殿后
WinApps 托管 Windows 虚拟机有两条路线。Docker/Podman 路线把整套 Windows 打包在一个容器镜像里,安装向导、RDP 端口开放、驱动注入全自动完成,你不用碰任何细节;libvirt 路线则是"毛坯房":自己建虚拟机、手动装系统、再逐项调 vCPU 和内存。会调,不等于好调。
| 维度 | Docker/Podman 路线 | libvirt 路线 |
|---|---|---|
| 配置难度 | 改一个compose.yaml,一条命令启动 | 自己建虚拟机、装系统,XML 里逐项调参 |
| 资源占用 | 较低,4GB 内存 + 60GB 磁盘即可跑通 | 偏重,8GB 内存与 80GB 磁盘更从容 |
| 适合人群 | 第一次折腾、旧电脑与低配设备持有者 | 需要精细掌控虚拟机的熟手 |
多数人直接选容器路线就行。libvirt 留作容器方案满足不了你时的备选,界面长这样:
30 秒自检:旧电脑过不过线
动手下载任何东西之前,先跑四条命令,对照下表。任何一项没达到最低线,先想清楚是升级还是放弃。
| 检查项 | 最低线 | 舒适线 | 检查命令 |
|---|---|---|---|
| CPU 虚拟化 | 双核,支持 VT-x/AMD-V | 4 核及以上 | grep -E 'vmx\|svm' /proc/cpuinfo |
| 内存 | 4GB | 8GB 以上 | free -h |
| 磁盘可用空间 | 60GB | 100GB(给应用留余地) | df -h / |
| 网络 | 稳定联网 | 有线 | ping -c 3 8.8.8.8 |
第一条命令只要输出非空,说明你的 CPU 带硬件虚拟化开关(Intel 叫 VT-x,AMD 叫 SVM),KVM(内核的硬件虚拟化接口,让虚拟机以接近硬件的速度直接运行,而非软件模拟)就能派上用场。
还有两条软件层面的前置条件:内核 5.4 及以上,用
uname -r确认;ip_tables与iptable_nat内核模块已加载,文件夹共享依赖它们,分别用lsmod | grep ip_tables、lsmod | grep iptable_nat检查,输出为空就把两个模块名写进/etc/modules-load.d/iptables.conf再重启。
磁盘的 60GB 不是拍脑袋:一份干净的 Windows 系统大约吃 40GB,剩下 20GB 留给你要装的应用。计划装整套 Adobe 的话,把磁盘线再抬高一些。内存同理,4GB 是虚拟机自身的份额,Linux 桌面和 FreeRDP 客户端(负责把 RDP 流渲染成窗口)还要另外占一份,所以舒适线才是 8GB。
三步完成部署:备环境、装系统、并入桌面
选容器路线的话,全过程分三个阶段,每个阶段只留关键命令。
第一步:备环境
# Debian/Ubuntu;Fedora 换成 dnf,Arch 换成 pacman sudo apt install -y curl dialog freerdp3-x11 git iproute2 libnotify-bin netcat-openbsd # Docker Engine 单独按官方脚本安装 sudo usermod -aG docker $USER # 然后注销重新登录清单里的freerdp3-x11是主角,它是把 RDP 画面渲染到你桌面的前端。Debian 12 需要先开启 backports 源才能装上。
第二步:装 Windows
git clone https://gitcode.com/GitHub_Trending/wina/winapps cd winapps # 编辑 compose.yaml:RAM_SIZE=4G、CPU_CORES=2、DISK_SIZE=64G(最低配) # 启动容器 docker compose --file ./compose.yaml up模板默认是 4G 内存、4 核、64G 磁盘,低配机上你通常只需把CPU_CORES降成 2。别忘把要用的USERNAME、PASSWORD也写进compose.yaml,后面配置会原样使用。浏览器打开 http://127.0.0.1:8006 是 VNC(在浏览器里查看远程屏幕的方式),跟着向导把 Windows 装完;首次要下载镜像并写系统,让它跑到底。
第三步:并入桌面
# 写入 ~/.config/winapps/winapps.conf RDP_USER="MyWindowsUser" # Windows 账号 RDP_PASS="MyWindowsPassword" # Windows 密码 WAFLAVOR="docker" # 虚拟化后端 AUTOPAUSE="on" # 空闲 5 分钟自动暂停虚拟机 chmod 600 ~/.config/winapps/winapps.conf随后执行bash setup.sh --user,在交互菜单里勾选要的应用,比如 Word、Excel、Photoshop。装完后桌面菜单里会出现对应图标,点它即拉起一个新的 RDP 会话,应用窗口直接出现在任务栏。Nautilus 文件管理器也会多出"打开方式",双击 .docx 就能交给 Word。
低配机榨取每一分资源
部署完只是起点,低配机器上的真金白银在下面四个动作里:
- 内存:开 zswap 或 zram 做交换压缩,
RAM_SIZE封顶 4G,虚拟机够用即可。 - CPU:
CPU_CORES=2应付 Office 足够,多给只会让宿主机跟着卡。 - 磁盘:数据卷放 SSD,定期跑 Windows 磁盘清理,64GB 能保持健康很久。
- 网络:
winapps.conf里把RDP_SCALE=100压住渲染开销,RDP 流走本机 127.0.0.1,不产生外跳。
高频坑与 30 秒解法
应用点不开?
先手动测 RDP 连接:
xfreerdp3 /u:"MyWindowsUser" /v:127.0.0.1:3389 /cert:tofu能弹登录界面说明网络没问题,查~/.local/share/winapps/winapps.log找配置错;连不上则是虚拟机没在跑,先把容器拉起来。
文件夹共享失效?
Windows 里\\tsclient\home本应指向 Linux 家目录。看不到它,十有八九是 iptables 模块没加载,lsmod | grep iptable_nat为空就按前文方法加载模块并重启。
整机变卡?
打开 htop 看:虚拟机内存打满,就关掉 Windows 里多余的程序,或调低虚拟机资源给宿主腾空间;机械硬盘的宿主还会让虚拟机启动明显更慢,这是硬件瓶颈,压缩软件换不来速度。
重装后图标不见了?
用winapps-setup --user --add-apps重新扫描。装完所有应用再跑首次扫描,新装的 exe 对 WinApps 才是可见的。
到这里,容器路线 + 4GB 内存就是旧电脑上最稳的组合,第一次装完系统后,每加一个应用都只是一次点击的事。更多配置细节见 docs/docker.md 与 docs/libvirt.md,完整功能清单看 README.md。
【免费下载链接】winappsRun Windows apps such as Microsoft Office/Adobe in Linux (Ubuntu/Fedora) and GNOME/KDE as if they were a part of the native OS, including Nautilus integration. Hard fork of https://github.com/Fmstrat/winapps/项目地址: https://gitcode.com/GitHub_Trending/wina/winapps
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考