如何为steamdeck挂载SMB文件系统

首先感谢chatgpt,真的好用,同时也要说下缺陷,即steamdeck这边是无法下载游戏的,这个问题存在了有些日子了,推测是steam本体的问题。

PS:明明windows下没这么多奇怪的问题。

为什么要这么做?

那当然是因为很多奇奇怪怪的游戏都要打补丁,重打一遍超级麻烦

咳咳,当然,硬盘大小不足,以及万一机器硬盘炸了存档丢失什么的,啊,这些也是相当重要的理由。

不过,这一切也是有不足之处的,首当其冲的就是速度慢这一点,尤其是随机读写慢这点很让人头疼,但如果您主玩的游戏其实不怎么吃读写,又或者也是想和我一样希望能统一各个设备访问的游戏本体一致的话,那就请接着看下去吧。

在尝试挂载smb文件系统前,需要做好前置操作,如设置密码,打开数据库加密,这些不做赘述,网上有详尽的教程,请自行参考,另外原本安装steam的电脑也要在身边

1.安装 cifs-utils 包来支持 CIFS 文件系统

sudo pacman -S cifs-utils

2.创建一个目录作为挂载点

例如/mnt/nas/这样,但本人推荐创建在/home/deck/路径下,这个路径下的文件夹默认可以读写。如果创建到无法读写的文件夹下,那么挂载将无法成功,会变成系统能识别到文件夹,但steam不认,点击愣是没反应的情况,然后就是这步不要使用sudo,似乎会导致文件夹变为root所有,steam无法写入。

mkdir /home/deck/nasgame

3.挂载SMB文件系统

首先要注意,这个挂载的文件夹最好是新建的,空的,会在第5步用到。

我本人的nas系统开了访客访问,可以无需密码读写,第一行是无密码的操作,第二行是带密码的操作,请自行替换用户名和密码。uid和gid一般是1000,但保险起见可以用第三行的命令查询一下。

sudo mount -t cifs -o guest,uid=1000,gid=1000,file_mode=0777,dir_mode=0777 //192.168.1.100/nasgame /home/deck/nasgaame
sudo mount -t cifs -o username=your_username,password=your_password,uid=1000,gid=1000,file_mode=0777,dir_mode=0777 //192.168.1.100/nasgame /home/deck/nasgame
id -u deck
id -g deck

4.连接steam和SMB

和windows一样,点击设置——存储空间——添加驱动器。请注意,这时候的第一个坑出现了,在这个被添加的SMB文件系统,这一级的文件夹内——即/home/deck/nasgame的文件夹内不能有名为SteamLibrary的文件夹,不然会报无法执行。

而且有的时候还会报其他错,例如文件夹不为空这种错,这个时候建议文件夹内保持空,让他挂载上去先。

然后我们下载任何游戏一次,安装到nas,建议挑小的,因为划定硬盘空间的速度非常慢,会发现在划定结束,开始下载的时候,跑了1秒左右就失败了,原因会是硬盘无法读写,这个时候回到库,卸载该游戏。

卸载完成后回到这个文件夹,也就是上文的/home/deck/nasgame内,会发现文件夹内多了一个文件夹,叫SteamLibrary,其内部有一个文件夹steamapps和一个文件libraryfolder.vdf,我们要做的就是把文件放到这个文件夹里,并修改这个文件。

5.利用绑定挂载把文件放入文件夹内

如果你并不需要各个设备间同步数据,那么这时候把原来的文件夹steamapps内的所有内容拖入这个新的steamapps即可,如果你不希望浪费硬盘空间,且希望各个设备访问的文件一致,那么就需要按如下步骤走上一遭。

本人的nas系统为OMV,如果其它系统提供了更简单的方法也请使用那个方法,顺带一提软链接是不行的,跨系统的情况下一般没法成功,但听说NFS文件系统可以,如果您使用NFS则可以尝试一下。

首先打开nas系统的命令行,找到第三步创建的文件夹。

然后将这个文件夹和原本存在的游戏文件夹的steamapps文件夹绑定到一起

sudo mount --bind /nas/SteamLibrary/steamapps /nasgame/SteamLibrary/steamapps

在完成这步后访问/nasgame/SteamLibrary/steamapps这个文件夹,或者从steamdeck访问/home/deck/nasgame/SteamLibrary/steamapps,看能否访问到/nas/SteamLibrary/steamapps中的文件,如果可以,那么代表成功。

6.修改libraryfolder.vdf

我们前往/home/deck/.local/share/Steam/steamapps,找到libraryfolder.vdf文件,打开会发现其内部分为两段(我这里隐去了部分信息)

"libraryfolders"
{
	"0"
	{
		"path"		"/home/deck/.local/share/Steam"
		"label"		""
		"contentid"		""
		"totalsize"		""
		"update_clean_bytes_tally"		""
		"time_last_update_corruption"		""
		"apps"
		{
		}
	}
	"1"
	{
		"path"		"/home/deck/nasgame/SteamLibrary"
		"label"		""
		"contentid"		""
		"totalsize"		""
		"update_clean_bytes_tally"		""
		"time_last_update_corruption"		""
		"apps"
		{
		}
	}
}

可以看到path “/home/deck/nasgame/SteamLibrary”下的”apps”的{}内为空,这个时候我们回到自己原来的电脑,在SteamLibrary下找到libraryfolder.vdf,将对应的path下的”apps”编号填入steamdeck下”/home/deck/nasgame/SteamLibrary”的”apps”的{}内并保存。

如果游戏比较多,那么建议ssh到steamdeck,在原电脑操作。或者把文件传输到steamdeck在steamdeck上直接复制。

这个时候重启steam,可以发现所有的软件都一次性读取上来了,需要注意不要在steamdeck上更新游戏,有可能损坏文件。

7.持久化

我们需要修改/etc/fstab文件,不论是原nas系统还是steamdeck都需要,如果系统完全不用关机,那么则不需要修改。

sudo nano /etc/fstab

在文末添加代码

首先是nas,请根据实际情况修改代码

/nas/SteamLibrary/steamapps /nasgame/SteamLibrary/steamapps none bind 0 0

然后是steamdeck,无密码的情况

//192.168.1.100/nasgame /home/deck/nasgame cifs guest,uid=1000,gid=1000,file_mode=0777,dir_mode=0777,iocharset=utf8,noperm,x-systemd.automount 0 0

有密码的情况(记得替换账号密码)

//192.168.1.100/nasgame /home/deck/nasgame cifs username=your_username,password=your_password,uid=1000,gid=1000,file_mode=0777,dir_mode=0777,iocharset=utf8,noperm,x-systemd.automount 0 0

8.重启steamdeck

重启之后视游戏数量可能会卡很长时间的加载用户信息,请耐心等待,结束后会发现可以直接看到和游玩nas中的游戏,需要注意不要从steamdeck更新游戏,可能损坏游戏文件,但如果确定这个游戏没有做过修改,且最近没有更新,那么可以下载,那只是一次验证,不会造成文件损坏。

9.后话

我承认这个方法并不完美,例如每次重启后需要加载超长时间数据,以及在原机器上下载新游戏后,steamdeck不能瞬间认出来,但如果游戏没有修改过,那么只要重新下载验证一次即可,也可以写上一些脚本,来自动比对这两个文件,但这次比较懒,就摸了。

顺带一提,如果采用类似zerotier之类的方式远程连接smb的话,网速快还好,如果慢的话会卡很久很久的正在加载用户数据,推荐先在断网的情况下开机,开机之后再连接网络,这样开机后大约1分钟-5分钟内steamdeck虽然没办法识别出smb,但连着网挂一会,去倒杯水回来,就会发现识别出来了smb。

ps:没想到10mb的小水管玩玩gal还是挺流畅的。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇