SteamDeck雙系統(tǒng)共享btrfs游戲分區(qū)
? SteamDeck現(xiàn)在主流的雙系統(tǒng)共享分區(qū)都采用的是NTFS分區(qū),因?yàn)閚tfs是windows自家格式,在win下體驗(yàn)肯定是最好的,并且stramOS本身也支持ntfs格式,所以用起來(lái)也沒(méi)啥大問(wèn)題。但是,如果你更希望使用Linux原生格式作為共享分區(qū),不妨看看這篇教程
前期工作:
? ? 首先雙系統(tǒng)安裝以及調(diào)整分區(qū)這個(gè)步驟沒(méi)啥區(qū)別,我就不重復(fù)了。參考 【愛(ài)折騰】SteamDeck完全折騰指南-D1-雙系統(tǒng)掛載相同分區(qū) - 嗶哩嗶哩 (bilibili.com)?就行。如果涉及到home分區(qū)的調(diào)整,不建議用 PE下的DiskGenius,因?yàn)闃O大可能出現(xiàn) “inode bitmap 中有標(biāo)記為已使用的未用inode” 這樣的報(bào)錯(cuò)。
? 所以個(gè)人推薦使用?gparted 的liveCD進(jìn)行調(diào)整分區(qū)(https://gparted.org/livecd.php),或者直接用SteamDeck的恢復(fù)鏡像中的的KDE分區(qū)工具也行。
另外因?yàn)樯婕暗捷^多的都是命令操作,強(qiáng)烈建議開(kāi)啟ssh服務(wù),并且設(shè)置自啟動(dòng),方便直接使用ssh工具操作
開(kāi)啟完成后,deck在內(nèi)網(wǎng)中的話,直接使用任意的ssh工具連接操作即可
一、安裝brtfs支持:
二、分區(qū)格式化和掛載:
首先確認(rèn)你已經(jīng)調(diào)整分區(qū)完畢,給共享分區(qū)留下足夠的空間,我們確定下dev編號(hào)
通過(guò)分區(qū)大小判斷哪個(gè)是劃分出的共享分區(qū),以我這里為例,驅(qū)動(dòng)器名字為?
/dev/nvme0n1p9 ,大小1.4T
格式化分區(qū)為btrfs,會(huì)丟失所有數(shù)據(jù),如果原先是ntfs格式想換過(guò)來(lái)的話,請(qǐng)?zhí)崆皞浞輸?shù)據(jù)
創(chuàng)建你要掛載的目的路徑
編輯 /etc/fstab,實(shí)現(xiàn)開(kāi)機(jī)自動(dòng)掛載
最后手動(dòng)掛載看看效果
到此,linux這邊的處理就都完成了,往后就是添加游戲庫(kù)什么的,和之前的教程沒(méi)有區(qū)別
三、windows驅(qū)動(dòng)支持:
在切換到windows前,在steamos中看一下用戶的uid和gid
可以看到我們deck用戶的uid gid都是1000
然后切換到windows系統(tǒng),首先安裝btrfs驅(qū)動(dòng)
項(xiàng)目地址 https://sgithub.com/maharmstone/btrfs?
下載最新1.8.2版本,然后解壓,右鍵 btrfs.ini,安裝即可。到這一步btrfs分區(qū)應(yīng)該能正常讀寫(xiě)了(如果不行就重啟下)
四、修改windows用戶gid、uid
? ? 我們?cè)谏弦徊揭呀?jīng)能讓win讀寫(xiě)btrfs了,按理說(shuō)已經(jīng)任務(wù)已經(jīng)完成了,但其實(shí)事情沒(méi)有那么簡(jiǎn)單。Linux文件系統(tǒng)的特點(diǎn)就是文件具有讀寫(xiě)權(quán)限信息以及所屬用戶用戶組信息。用戶和組就是通過(guò)uid,gid標(biāo)識(shí)的。winbtrf默認(rèn)給windows用戶組的gid應(yīng)該是100,用戶的話據(jù)我測(cè)試默認(rèn)是65535。
? ? 這就導(dǎo)致在Windows這邊新創(chuàng)建的文件,到linux下查看都是 “查無(wú)此人”。總不能每次都跑一下chown -R吧?
? ? 所幸winbtrf這邊也給出了解決方案,可以通過(guò)注冊(cè)表指定用戶和用戶組的id。
首先查詢本機(jī)用戶名和對(duì)應(yīng)的sid
我的用戶名是honjow,所以 sid?S-1-5-21-2259988827-1787315176-3402371529-1001
接下來(lái)打開(kāi)注冊(cè)表編輯器,路徑
首先打開(kāi)?GroupMappings ,其中應(yīng)該會(huì)有一個(gè)DWORD項(xiàng),名字S-1開(kāi)頭的,可以看到默認(rèn)值是100,這就是默認(rèn)用戶組的gid,我們前面需要把他改成前面deck用戶的1000。點(diǎn)擊編輯,選十進(jìn)制,改成1000即可。
和GroupMappings同級(jí)的還有個(gè)Mappings目錄,這里決定了用戶的uid,默認(rèn)情況下可能是空的,我們?nèi)绶ㄅ谥疲砑右粭lDWORD項(xiàng),名稱改為前面查到的用戶sid,數(shù)據(jù)則填寫(xiě)十進(jìn)制1000。保存,需要重啟生效
這樣一來(lái)我們?cè)赽trfs分區(qū)新創(chuàng)建的文件就都是gid uid就都是1000了,和steamOS下deck用戶的一致。避免出現(xiàn)權(quán)限問(wèn)題。
實(shí)測(cè)操作完成之后,在win下進(jìn)行新下載的游戲,回到steamos中查看都是deck用戶所屬。
在安裝winbtrfs之后,在btrfs分區(qū)中的文件右鍵菜單,會(huì)多一項(xiàng)btrfs相關(guān)的選項(xiàng)卡,方便進(jìn)行權(quán)限等操作和確認(rèn)。