前些年我一直觉得 Linux 桌面没什么意思。功能和 UI 都简陋,个人 PC 上除了终端之外的部分基本没法看,所以我常年只用没有 GUI 的 server 发行版,桌面该是 Windows 就是 Windows。改观来自 Steam Deck,首发我抢到一台,SteamOS 把这套东西包装得能开箱即用,让我回头重新看了一遍 Linux 桌面生态。

真正让我动双系统念头的是显卡。CachyOS 的调度加上现在完备的 mesa 驱动, A 卡在 Linux 上通过 Proton 玩一些 3A,帧数比原生 Windows 还高,low帧也更稳。PC 玩家装 Linux,这大概是第一个像样的理由。

下面是这套 CachyOS + Windows 双系统的配置记录,以及到现在为止遇到的为数不多的几个问题和处理办法。

安装:一路默认

CachyOS 的安装器我几乎全程没改选项,回头看这是最正确的决定。

文件系统用默认的 btrfs。装好之后 snap-pac 和 snapper 是配好的,装包、系统升级之前自动打增量快照,出问题重启进 limine 菜单,挑一个快照启动就退回去了。快照是瞬时的,也不占多少额外空间。

引导器同样用默认的 limine,轻量,起得快。唯一要注意的是 limine 所在的 boot 分区,有条件就别和 Windows 放同一块物理硬盘,防止 Windows 大版本更新重写 ESP 时把引导一起干掉。真被干掉也别慌,btrfs 快照管不到 ESP,拿 U 盘进 live 环境把 limine 重装一遍就好,系统本身没坏。

桌面环境选默认的 KDE Plasma,功能最全,最主流,Wayland 也成熟了。

装完第一件事:装个 AI agent

进系统后我做的第一件事不是配环境,是装一个 AI agent:codex、opencode、dsh 都行。装完你会发现这台机器上值得交给它的事相当多,AUR、fstab、驱动、输入法。不想花钱就用 opencode,自带免费模型,日常够用。

默认 shell 是 fish,交代环境的时候记得把这点说清楚,fish 的配置文件位置和 bash 不一样。后面几节的操作我大多丢给了 agent,但每一步的原理还是自己过了一遍。引导和磁盘那部分我没敢让它动手,理由在安全启动那节。

中文输入法

推荐让 agent 装 Fcitx5,跟它说明用的是 KDE Plasma Wayland,默认 shell 是 fish。

Wayland 下输入法走 text-input 协议,在 KDE 系统设置里把虚拟键盘设成 Fcitx 5 就能正常打字,拼音在 fcitx5-chinese-addons 里。剩下的是 XWayland 的老应用,GTK_IM_MODULE、QT_IM_MODULE、XMODIFIERS 这几个环境变量该配还得配,配完重新登录一次才生效。

两个系统共用一个 Steam 库

游戏不想下两遍,就让 Windows 和 Linux 认领同一个 Steam 库。这部分新手可以直接丢给 agent,但有几个坑它不一定会主动提醒你。

内核最近有个变化:Linux 7.1 合并了新的 NTFS 驱动,挂载时指定 -t ntfs,用的就是它,旧的 ntfs3 和 FUSE 那套挂载方式都不用再考虑:

1
2
sudo mount -t ntfs /dev/nvme1n1p3 /mnt/games
findmnt -o SOURCE,FSTYPE,TARGET /mnt/games

第二条命令是给自己看的。系统里留过 ntfs-3g 的 mount.ntfs 的话,挂载有可能被劫到 FUSE 去,确认实际生效的驱动再往下走。开机自动挂载就往 fstab 里加一行,uid、gid 指到自己的用户,具体参数让 agent 按内核版本给。

挂载之后照 Valve 的官方教程处理 Proton 的兼容层文件:https://github.com/ValveSoftware/Proton/wiki/Using-a-NTFS-disk-with-Linux-and-Windows

教程的重点是把 compatdata 从 NTFS 挪到 Linux 分区,再软链回去,wine prefix 要 POSIX 权限和符号链接,放在 NTFS 上跑不起来:

1
2
3
mkdir -p ~/.steam-compatdata
mv /mnt/games/steamapps/compatdata/* ~/.steam-compatdata/
ln -s ~/.steam-compatdata /mnt/games/steamapps/compatdata

官方教程没提到的一点:shadercache 目录同样要做软链,不然steam会经常下载着色器缓存。

Windows 那边还有两件事得先做。一是关掉快速启动,在控制面板的电源选项里取消"启用快速启动",否则 Windows 关机时会把 NTFS 卷标记成休眠状态,Linux 只能只读挂载,Steam 根本写不进去。二是确认这块盘没开 BitLocker,被加密的分区 Linux 读不了。

安全启动

装 CachyOS 之前需要把安全启动关了,但 Windows 那边不少网游的反作弊强制要求安全启动开着,这块最后还是得配回来。

主板之间差别很大,华硕和微星的图文资料最多,搜自己的型号基本都能对上。这一步别交给 agent,它对你的主板和固件界面一无所知,而 BIOS 里点错一个选项,代价可能是开不了机。照 CachyOS 的官方文档来:https://wiki.cachyos.org/configuration/secure_boot_setup/ ,动手前把自己改过的每个选项记下来。

出问题的兜底顺序:能进 Windows 就回 Windows 重新做引导,进不去就拿 U 盘的 live 环境把引导补回来。btrfs 快照在这里只管得着根分区,能退掉改坏的系统配置,ESP 上的引导文件它无能为力。

远程桌面

用下来是 moonlight + sunshine 的组合,延迟和画质都最好,剪贴板共享交给 KDE Connect,两边各干各的。

sunshine 目前有个 bug:QML/OpenGL 窗口一打开,它就去改 KWin 的 DRM plane 合成和颜色管线,串流跟着出问题。绕法是在 ~/.config/sunshine/sunshine.conf 里加一行:

capture = kwin

代价是 HDR 串流出不来,或者忍受某些情况下的串流闪退,等维护者修。

别的方案我也试过。RustDesk 性能一般,无人值守的时候不稳定;krdp 还不支持 UDP,而且客户端一最小化它就停止工作,这个 bug 要等 2026 年 10 月中旬的 KDE Plasma 6.8 才有可能被修好。所以眼下没有更好的选择。

现状

这套双系统装完,要维护的东西不多,快照是自动的,游戏库是共享的。折腾有风险,时间也是成本,希望文章能让你少踩几个坑,把更多的时间拿来享受内容。