200字
Linux Steam 无法启动游戏
2025-12-21
2025-12-25

🐧 Linux Steam 游戏无法启动问题(日志:is not owned by you)

问题现象

尝试启动Steam游戏时,游戏无法启动,甚至窗口都没有弹出

使用Terminal启动Steam并点击启动游戏之后看到以下日志信息

wineserver: /mnt/Luka/windows/games/steamapps/compatdata/---/pfx is not owned by you
wine: '/mnt/Luka/windows/games/steamapps/compatdata/---/pfx' is not owned by you
...

这表明Wine(Steam用来运行Windows游戏的兼容层)无法访问游戏的兼容性数据目录,因为它不是该目录的所有者。

问题原因分析

这个问题通常出现在以下情况下:

  1. Steam游戏安装在NTFS格式的硬盘上
  2. NTFS硬盘挂载时没有正确设置用户所有权
  3. Linux系统对NTFS文件系统的权限处理机制与原生文件系统不同

NTFS文件系统本身不支持Linux的用户和组权限模型,当通过ntfs-3g驱动挂载时,如果不指定正确的用户ID(uid)和组ID(gid),所有文件都会显示为由root用户拥有,从而导致普通用户无法正常访问。

解决方案

修改fstab挂载配置

如果游戏安装在NTFS硬盘上,并且通过fstab自动挂载,需要修正挂载配置:

1. 查看当前用户ID

查看用户ID和组ID:

id

输出示例:

uid=1000(luka) gid=1000(luka) groups=1000(luka),...

记录uid和gid值(通常是1000)。

2. 查看NTFS硬盘的UUID

lsblk -f

找到NTFS分区,记录其UUID值。

3. 修改fstab配置

备份原始fstab文件:

sudo cp /etc/fstab /etc/fstab.bak

编辑fstab文件:

sudo vim /etc/fstab

找到NTFS硬盘的挂载行,修改为包含uid和gid参数:

UUID=你的NTFS硬盘UUID /mnt/挂载点 ntfs-3g defaults,uid=1000,gid=1000 0 0

示例:

UUID=2C6E2DAA6E2D6E30 /mnt/Luka ntfs-3g defaults,uid=1000,gid=1000 0 0

保存并退出编辑器,重启系统让配置生效。
完成配置后,重新启动Steam并尝试运行游戏。
如果配置正确,游戏应该能够正常启动而不再出现所有权错误。

预防措施

为避免将来再次出现类似问题:

  1. 在挂载NTFS硬盘时始终指定正确的uid和gid参数
  2. 考虑将Steam游戏库移动到原生Linux文件系统(ext4等)上

补充说明

如果同时使用其他需要特定权限的应用程序(如Wine、VirtualBox等),也需要注意NTFS挂载时的权限设置,确保这些应用程序能够正常访问所需的文件和目录。

评论