广告位招商中 欢迎洽谈

Steam Deck 内部存储着色器缓存 (compatdata/shadercache) 爆满:软链接迁移与清理实战

365Finds Editorial
已收录 11,430 篇 Wiki 文章

让你的 AI 用上 365 Wiki

复制这段快捷提示词,粘贴到你正在使用的 AI 对话中,然后继续提问。AI 会搜索 365 Wiki,帮你查资料、比较方案并给出建议。

下载完整 Skill

偶尔使用,快捷提示词就够了。经常使用,安装 365Wiki Skill:无需每次复制,还能更完整地研究问题、比较选择并规划下一步。没有常用工具?Gemini、Microsoft Copilot 等网页版 AI 也能使用。

365Wiki Skill

为什么 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/):

  1. 在 MicroSD 卡中建立外部中转目录:
mkdir -p /run/media/mmcblk0p1/SteamDeck_ExternalCaches/shadercache
mkdir -p /run/media/mmcblk0p1/SteamDeck_ExternalCaches/compatdata
  1. 将占用过大的游戏缓存物理移动至 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 插件自动化清理残留孤立缓存

对于不习惯终端命令行的玩家,可采用图形化插件管理:

  1. 在桌面模式下运行官方脚本安装 Decky Loader。
  2. 切回游戏掌机模式,在 Decky 侧边栏插件商店中安装 Storage Cleaner。
  3. 启动插件扫描内部存储:插件会自动识别那些宿主游戏早已卸载、但残留至今的孤立 compatdata 目录,提供一键安全回收功能,瞬间释放十数 GB 内部宝贵空间。