为什么 Steam Deck 内部存储空间会被未知数据迅速填满
在基于 Arch Linux 的 SteamOS 系统中,每当玩家安装一款 Windows 游戏,系统都会在内部存储(eMMC 或 NVMe SSD)中强制生成两个隐藏配套目录:compatdata/[AppID](专用的 Proton WINE 前缀沙盒,内置虚拟 Windows 注册表和系统环境)以及 shadercache/[AppID](预编译的 Vulkan 和 DXVK 着色器二进制库)。即使玩家将游戏本体全部安装在外部 MicroSD 扩展卡上,这两个目录默认仍驻留在机身内部空间,随安装游戏数量增加可迅速吞噬 30GB 至 60GB 的宝贵容量。
| 目录名称 | 存放内容与文件性质 | 单个游戏平均占用 | 是否可直接删除? |
|---|---|---|---|
compatdata/[AppID] | 虚拟 C 盘环境、本地游戏存档、VC++ 运行库 | 500 MB - 3.5 GB | 严禁随意删除;未同步至云端的本地单机存档将永久丢失 |
shadercache/[AppID] | 预编译的 DXVK / VKD3D 着色器缓存 | 1 GB - 8 GB | 可安全删除;Steam 会重新下载,但下次启动游戏会发生卡顿 |
| 孤立 AppID 残留 | 已卸载游戏遗留的无主前缀与缓存 | 视游戏而定,常超 20GB | 完全可安全清理;对当前系统与正常游戏无任何负面影响 |
第一步:在桌面模式使用终端排查大容量缓存
长按机身电源键,选择“切换至桌面模式”(Switch to Desktop),打开 Konsole 终端,执行容量排序命令:
du -sh ~/.local/share/Steam/steamapps/shadercache/* | sort -h
du -sh ~/.local/share/Steam/steamapps/compatdata/* | sort -h
终端将按体积升序输出各个 AppID 文件夹。可前往 SteamDB 查询对应的游戏编号(例如 1091500 对应《赛博朋克 2077》),确定究竟是哪些大作挤占了机身硬盘。
第二步:在 MicroSD 扩展卡上建立外部缓存目录
将着色器目录迁移至 MicroSD 卡(挂载路径通常为 /run/media/mmcblk0p1/):
- 在 MicroSD 卡中建立外部中转目录:
mkdir -p /run/media/mmcblk0p1/SteamDeck_ExternalCaches/shadercache
mkdir -p /run/media/mmcblk0p1/SteamDeck_ExternalCaches/compatdata
- 将占用过大的游戏缓存物理移动至 MicroSD(以 AppID 1091500 为例):
mv ~/.local/share/Steam/steamapps/shadercache/1091500 /run/media/mmcblk0p1/SteamDeck_ExternalCaches/shadercache/
mv ~/.local/share/Steam/steamapps/compatdata/1091500 /run/media/mmcblk0p1/SteamDeck_ExternalCaches/compatdata/
第三步:建立 Linux 软链接(Symbolic Link)实现无缝挂载
在机身内部原路径建立软链接,将 SteamOS 的读写请求透明重定向至 MicroSD 卡:
ln -s /run/media/mmcblk0p1/SteamDeck_ExternalCaches/shadercache/1091500 ~/.local/share/Steam/steamapps/shadercache/1091500
ln -s /run/media/mmcblk0p1/SteamDeck_ExternalCaches/compatdata/1091500 ~/.local/share/Steam/steamapps/compatdata/1091500
验证软链接是否生效:
ls -ld ~/.local/share/Steam/steamapps/shadercache/1091500
若终端输出结果中带有箭头指向 MicroSD 路径(-> /run/media/mmcblk0p1/...),则表明挂载成功。
第四步:使用 Decky Loader 插件自动化清理残留孤立缓存
对于不习惯终端命令行的玩家,可采用图形化插件管理:
- 在桌面模式下运行官方脚本安装 Decky Loader。
- 切回游戏掌机模式,在 Decky 侧边栏插件商店中安装
Storage Cleaner。 - 启动插件扫描内部存储:插件会自动识别那些宿主游戏早已卸载、但残留至今的孤立 compatdata 目录,提供一键安全回收功能,瞬间释放十数 GB 内部宝贵空间。