Last active
June 11, 2024 14:54
-
-
Save spiderbala/55804afd029c64175664353e9bbdf069 to your computer and use it in GitHub Desktop.
Steam Deck 安裝samba文件分享協定,自動化腳本(包含samba反安裝腳本)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# 將用戶密碼用作此次腳本的變量,免於後續多次重覆輸入密碼 | |
read -s -p "輸入用戶密碼: " user_password | |
echo | |
# 解除唯讀模式 | |
if echo "$user_password" | sudo -S steamos-readonly disable; then | |
echo | |
echo "唯讀模式已解除" | |
else | |
echo -e "\e[93m密碼輸入錯誤,腳本終止。\e[0m" | |
exit 1 | |
fi | |
# 刪除fakeroot.conf(模擬root權限的設定)。SteamOS更新系統後若samba失效,有時得刪除此檔才能順利重裝 | |
sudo rm -rf /etc/ld.so.conf.d/fakeroot.conf | |
# 刪除所有密鑰 | |
sudo rm -rf /etc/pacman.d/gnupg | |
# 初始化pacman密鑰,用於驗證軟件包的簽證 | |
sudo pacman-key --init | |
# 使用默認的Arch Linux密鑰替代 | |
sudo pacman-key --populate archlinux | |
sudo pacman-key --populate holo | |
sudo pacman -Scc --noconfirm | |
# 更新 Archlinux-keyring 套件 | |
sudo pacman -Sy archlinux-keyring --noconfirm | |
# 刷新pacman(套件管理工具) | |
sudo pacman -Syu --noconfirm | |
# 安裝samba文件分享協定 | |
sudo pacman -S samba --overwrite '*' --noconfirm | |
# 編寫samba配置文件 | |
echo " | |
[global] | |
workgroup = WORKGROUP | |
server string = Samba Server | |
server role = standalone server | |
[Homes] | |
comment = Home Directories | |
browseable = no | |
writable = yes | |
[Steam] | |
path = /home/deck/.local/share/Steam | |
writable = yes | |
[GAME_Folder] | |
path = /home/deck/.local/share/Steam/steamapps/common | |
writable = yes | |
[Mount_Point] | |
path = /run/media | |
writable = yes | |
#要再新增共享資料夾,可以依如下格式以及範例(使用時#符號要刪掉) | |
#[自己取資料夾名稱] | |
#path = 資料夾路徑 | |
#writable = yes | |
#[Screenshot] | |
#path = /home/deck/.local/share/Steam/userdata/用戶名/760/remote | |
#writable = yes | |
#[Userdata] | |
#path = /home/deck/.local/share/Steam/userdata/用戶名 | |
#writable = yes | |
#[Compatdata] | |
#path = /home/deck/.local/share/Steam/steamapps/compatdata | |
#writable = yes | |
#[自己掛載點上的裝置] | |
#path = /run/media/自己的裝置名稱 | |
#writable = yes | |
" | sudo tee /etc/samba/smb.conf | |
# 安裝yay(由社群維護的軟件儲存庫) | |
sudo pacman -S --needed git base-devel --noconfirm | |
git clone https://aur.archlinux.org/yay-bin.git | |
chmod a+rwx yay-bin | |
cd yay-bin | |
makepkg -si --noconfirm | |
# 更新yay | |
yay --noconfirm | |
# 安裝wsdd 網路探索服務 | |
yay -S wsdd --overwrite '*' --noconfirm | |
# 刪除yay暫存檔 | |
cd .. | |
rm -rf yay-bin | |
# 新增使用者 deck 為samba服務的默認使用者名稱 | |
echo "替Samba用戶“deck“設置為steam deck用戶相同的密碼" | |
echo -e "$user_password\n$user_password" | sudo smbpasswd -a deck | |
# 啟用samba服務 | |
echo 啟用文件分享服務 | |
echo "$user_password" | sudo -S systemctl start smb | |
# 設置samba服務為開機自啟 | |
echo 設置文件分享服務為開機自啟 | |
echo "$user_password" | sudo -S systemctl enable smb | |
# 啟用wsdd服務 | |
echo 啟用網路探索服務 | |
echo "$user_password" | sudo -S systemctl start wsdd | |
# 設置wsdd服務為開機自啟 | |
echo 設置網路探索服務為開機自啟 | |
echo "$user_password" | sudo -S systemctl enable wsdd | |
# 啟用Samba防火牆端口 | |
sudo firewall-cmd --permanent --add-service=samba | |
# 重新加載防火牆規則 | |
sudo firewall-cmd --reload | |
# 重啟唯讀模式 | |
echo "$user_password" | sudo -S sudo steamos-readonly enable | |
echo 唯獨模式已重啟 | |
echo -e "\e[93msamba文件分享協定已設定完成,可以關閉終端機了,稍待10秒防火牆設置完成即可使用\e[0m" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# 將用戶密碼用作此次腳本的變量,免於後續多次重覆輸入密碼 | |
read -s -p "輸入用戶密碼: " user_password | |
echo | |
# 解除唯讀模式 | |
if echo "$user_password" | sudo -S steamos-readonly disable; then | |
echo | |
echo "唯讀模式已解除" | |
else | |
echo -e "\e[93m密碼輸入錯誤,腳本終止。\e[0m" | |
exit 1 | |
fi | |
# 關閉wsdd服務 | |
echo 關閉網路探索服務 | |
echo "$user_password" | sudo -S systemctl stop wsdd | |
# 關閉samba文件分享服務 | |
echo 關閉文件分享服務 | |
echo "$user_password" | sudo -S systemctl stop smb | |
# 卸載wsdd網路探索服務 | |
yes | sudo pacman -R wsdd | |
# 卸載yay軟件儲存庫助手 | |
yes | sudo pacman -R yay-bin | |
# 卸載samba文件分享協定 | |
yes | sudo pacman -R samba | |
# 移除samba配置文件 | |
sudo rm -rf /etc/samba | |
# 移除samba防火牆端口 | |
sudo firewall-cmd --permanent --remove-service=samba | |
# 重新加載防火牆規則 | |
sudo firewall-cmd --reload | |
# 重啟唯讀模式 | |
echo "$user_password" | sudo -S sudo steamos-readonly enable | |
echo 唯獨模式已重啟 | |
echo -e "\e[93msamba文件分享協定刪除完成,可以關閉終端機了\e[0m" |
需要更新脚本了,不确定是否是用这个脚本卸载导致我LIB库有缺失pacman和sudo权限都没了- -,费了好大劲修好。 另外3.55版本有防火墙了需要关闭。
修復sudo我是用steam deck的還原映像檔,執行Reinstall Steam OS修復的,不然沒有最高權限很難搞...
另外,腳本已更新並優化,只需輸入一次用戶密碼,並且加入samba的防火牆規則,適用目前steam 3.5.5版
首先感谢回复。
事实上我确实是Reinstall Steam OS这样操作的,系统挂了去steam官方看的教程,可以丢链接进去github脚本评论区。
难道,你也尝试去复现我的遭遇,也成功丢失sudo权限了吗,哈哈😁
另外不知在巴哈论坛的是不是你,那边也是我给你发消息。
…---Original---
From: ***@***.***>
Date: Tue, Nov 21, 2023 03:23 AM
To: ***@***.***>;
Cc: ***@***.***>;
Subject: Re: spiderbala/Steam_Deck_Samba.sh
@spiderbala commented on this gist.
需要更新脚本了,不确定是否是用这个脚本卸载导致我LIB库有缺失pacman和sudo权限都没了- -,费了好大劲修好。 另外3.55版本有防火墙了需要关闭。
修復sudo我是用steam deck的還原映像檔,執行Reinstall Steam OS修復的,不然沒有最高權限很難搞...
另外,腳本已更新並優化,只需輸入一次用戶密碼,並且加入samba的防火牆規則,適用目前steam 3.5.5版
—
Reply to this email directly, view it on GitHub or unsubscribe.
You are receiving this email because you commented on the thread.
Triage notifications on the go with GitHub Mobile for iOS or Android.
感谢作者的付出,deck有了smb就再也回不去了,太方便啦。
steamOS又更新啦,smb又挂掉。
之前安装过此脚本的,只需执行一下几个步骤:
删除fakeroot,正常安装一遍smb,yay,wsdd等,正常开启smb服务即可。
请问我这次安装yay时遇见问题,依赖需要大于6.1版本,该如何解决呢
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
已更新並優化腳本,不再需要多次的輸入用戶密碼,腳本適用目前的steam 3.5.5版本
若之前有使用samba的用戶,從steam 3.4版升級至3.5.5版後,重新安裝samba不明原因導致sudo最高權限指令以及pacman損毀
請使用steam deck還原映像檔,製作復原映像檔的隨身碟,然後進到EFI引導選擇介面,用隨身碟啟動到復原模式,然後選擇Reinstall Steam OS
這會重裝steamOS為舊版,之後再連上網路重新升級為3.5.5版即可修復完成
steam的用戶/玩家資料都會保留,包含steam已安裝的遊戲,steam deck已安裝的軟體,home資料夾底下的資料等等
有影響的只有home之外的資料,比如假如有編輯fstab檔案,有裝rEFInd腳本等等,要重新設定重跑腳本
關於使用steam deck還原映像檔,可以參考這部影片的21:15處,進到還原系統後,選擇Reinstall Steam OS即可
https://youtu.be/CAkW04juf78?si=mjMiWSMQSnMx1Y5G&t=1275
傳輸大檔案到Steam Deck上的分區、隨身碟或SD卡,若提示出現容量不足,就不能從[Mount_Point]進去
必須另外針對它們個別設立分享資料夾,否則系統會判斷錯誤的容量空間
我另外編寫了範例,可以參考使用
#[自己掛載點上的裝置]
#path = /run/media/自己的裝置名稱
#writable = yes
腳本功能介紹以及解說,可以參考這部影片(有點過時)
https://youtu.be/ZWPpD2dpNLg