Raspberry Pi 音響專用 NAS 建置筆記 (Samba + NFS)
建置前提:
- OS User (系統管理員):
pi(UID: 1000) - Share User (連線專用):
home(僅供網路連線,無系統登入權限) - 目標:讓 Windows 透過 Samba 存取 (exFAT),讓 Audiolinux 透過 NFS 掛載 (ext4)。
1. 系統安裝與更新
安裝 Raspberry Pi OS Lite (64-bit) 後,先執行系統全更新。
sudo apt update && sudo apt full-upgrade -y
sudo apt autoremove -y
sudo reboot
sudo apt autoremove -y
sudo reboot
2. 網路與硬體設定
設定 LAN 固定 IP
使用圖形化工具設定最穩當 (避免設定檔語法錯誤)。
sudo nmtui
操作路徑:Edit a connection → Wired connection 1 → IPv4 改為 Manual → Show → 輸入 IP (如 192.168.0.115/24) 與 Gateway。
從硬體層面關閉 WiFi/藍牙
為了音質與降低干擾,直接從 Boot Config 關閉無線模組。
# 編輯 config.txt (Bookworm 版本路徑如下)
sudo nano /boot/firmware/config.txt
# 在檔案最下方加入以下兩行:
dtoverlay=disable-wifi
dtoverlay=disable-bt
sudo nano /boot/firmware/config.txt
# 在檔案最下方加入以下兩行:
dtoverlay=disable-wifi
dtoverlay=disable-bt
3. 掛載 USB 外接硬碟
建立掛載點並設定開機自動掛載。
# 1. 建立掛載點
sudo mkdir -p /mnt/usbshare
# 2. 查詢硬碟 UUID (記下 sda1 的 UUID)
lsblk -f
# 3. 編輯 fstab
sudo nano /etc/fstab
sudo mkdir -p /mnt/usbshare
# 2. 查詢硬碟 UUID (記下 sda1 的 UUID)
lsblk -f
# 3. 編輯 fstab
sudo nano /etc/fstab
情況 A:硬碟格式為 exFAT (Windows 共用為主)
# 加入此行 (將擁有者強制設為 pi,解決權限問題)
UUID=你的UUID /mnt/usbshare exfat defaults,auto,users,rw,uid=1000,gid=1000,umask=000 0 0
UUID=你的UUID /mnt/usbshare exfat defaults,auto,users,rw,uid=1000,gid=1000,umask=000 0 0
情況 B:硬碟格式為 ext4 (Linux/NFS 效能最佳)
# 加入此行
UUID=你的UUID /mnt/usbshare ext4 defaults,auto,noatime 0 0
UUID=你的UUID /mnt/usbshare ext4 defaults,auto,noatime 0 0
設定完後執行 sudo mount -a 測試是否掛載成功。
4. 安裝 Samba (exFAT/Windows 存取用)
建立連線專用帳號 home
# 建立無登入權限的系統帳號 home
sudo useradd -M -s /usr/sbin/nologin home
# 設定 Samba 密碼 (home)
sudo smbpasswd -a home
# 確保 pi 也在 Samba 資料庫中 (備用)
sudo smbpasswd -a pi
sudo useradd -M -s /usr/sbin/nologin home
# 設定 Samba 密碼 (home)
sudo smbpasswd -a home
# 確保 pi 也在 Samba 資料庫中 (備用)
sudo smbpasswd -a pi
設定 smb.conf (關鍵配置)
sudo nano /etc/samba/smb.conf
清除舊內容,貼上以下設定:
[global]
workgroup = WORKGROUP
server string = Pi Audio NAS
security = user
map to guest = Never
# 關鍵:解決 Windows 11 相容性與斷線問題
server min protocol = SMB2
server smb3 signing_algorithms = AES-128-GMAC AES-128-CMAC HMAC-SHA256
[Music]
path = /mnt/usbshare
browseable = yes
writeable = yes
guest ok = no
# 指定僅 home 帳號可連線
valid users = home
# 關鍵:寫入檔案時強制轉為 pi (uid 1000)
# 這樣才能配合 fstab 的掛載設定,避免權限錯誤
force user = pi
create mask = 0777
directory mask = 0777
workgroup = WORKGROUP
server string = Pi Audio NAS
security = user
map to guest = Never
# 關鍵:解決 Windows 11 相容性與斷線問題
server min protocol = SMB2
server smb3 signing_algorithms = AES-128-GMAC AES-128-CMAC HMAC-SHA256
[Music]
path = /mnt/usbshare
browseable = yes
writeable = yes
guest ok = no
# 指定僅 home 帳號可連線
valid users = home
# 關鍵:寫入檔案時強制轉為 pi (uid 1000)
# 這樣才能配合 fstab 的掛載設定,避免權限錯誤
force user = pi
create mask = 0777
directory mask = 0777
重啟服務:sudo systemctl restart smbd
5. 安裝 NFS Server (ext4/Audiolinux 專用)
若您的硬碟是 ext4 格式,NFS 能提供比 Samba 更好的音質傳輸效能。
sudo apt install nfs-kernel-server -y
設定權限 (僅針對 ext4)
# 確保 pi 擁有該目錄
sudo chown -R pi:pi /mnt/usbshare
sudo chmod -R 775 /mnt/usbshare
sudo chown -R pi:pi /mnt/usbshare
sudo chmod -R 775 /mnt/usbshare
設定 exports
sudo nano /etc/exports
加入以下一行:
# 允許區網內所有機器掛載,並將遠端使用者身份 squash 為 pi
/mnt/usbshare *(rw,sync,no_subtree_check,all_squash,anonuid=1000,anongid=1000)
/mnt/usbshare *(rw,sync,no_subtree_check,all_squash,anonuid=1000,anongid=1000)
生效設定:sudo exportfs -ra
6. Windows 連線 Samba 除錯指南
如果 Windows 出現錯誤代碼或無法存取,請依序執行「三板斧」:
Step 1: 清除 Windows 舊憑證
開啟 CMD,輸入:
net use * /delete /y
並至「控制台 > 認證管理員」刪除相關 IP 紀錄。
Step 2: 重啟 Workstation 服務 (最有效)
以系統管理員身分開啟 CMD,輸入:
net stop workstation /y
net start workstation
net start workstation
Step 3: 指定帳號連線
net use \\192.168.0.115\Music /user:home 您的密碼
7. 額外筆記:硬體異音警告
⚠️ 關於 TP-Link WiFi 路由器與外接硬碟
現象:將 USB 硬碟接至路由器 (如 TP-Link BE19000) 時,硬碟發出異常的「顆顆聲」或高頻運轉聲。
原因:
- 供電不足 (主要原因):路由器的 USB 供電通常不足以推動機械硬碟 (特別是啟動瞬間),導致讀寫頭反覆重置,極易造成物理損壞。
- 索引衝突:路由器韌體會強制掃描媒體檔案,導致硬碟無法休眠。
結論:請務必將硬碟接回 Raspberry Pi,或使用帶有獨立供電的 USB Hub,切勿直接插在路由器上。
沒有留言:
張貼留言