星期一, 1月 19, 2026

Raspberry Pi Samba Server 架設與 Windows 連線除錯筆記

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

2. 網路與硬體設定

設定 LAN 固定 IP

使用圖形化工具設定最穩當 (避免設定檔語法錯誤)。

sudo nmtui

操作路徑:Edit a connectionWired 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

3. 掛載 USB 外接硬碟

建立掛載點並設定開機自動掛載。

# 1. 建立掛載點
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

情況 B:硬碟格式為 ext4 (Linux/NFS 效能最佳)

# 加入此行
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

設定 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

重啟服務: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

設定 exports

sudo nano /etc/exports

加入以下一行:

# 允許區網內所有機器掛載,並將遠端使用者身份 squash 為 pi
/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

Step 3: 指定帳號連線

net use \\192.168.0.115\Music /user:home 您的密碼

7. 額外筆記:硬體異音警告

⚠️ 關於 TP-Link WiFi 路由器與外接硬碟

現象:將 USB 硬碟接至路由器 (如 TP-Link BE19000) 時,硬碟發出異常的「顆顆聲」或高頻運轉聲。

原因:

  1. 供電不足 (主要原因):路由器的 USB 供電通常不足以推動機械硬碟 (特別是啟動瞬間),導致讀寫頭反覆重置,極易造成物理損壞。
  2. 索引衝突:路由器韌體會強制掃描媒體檔案,導致硬碟無法休眠。

結論:請務必將硬碟接回 Raspberry Pi,或使用帶有獨立供電的 USB Hub,切勿直接插在路由器上。

沒有留言: