家里有几台设备(Mac、PC、手机、投影),都有"共享点东西"的需求:照片备份、下载的剧、临时文件。以前开 SMB 共享都用主力电脑,后来嫌每次都得开电脑麻烦,就搞了台树莓派专门干这事。

硬件

装系统

Raspberry Pi OS Lite(无桌面),启动后:

sudo apt update && sudo apt upgrade -y
sudo raspi-config
# 配时区、改主机名、开启 SSH

挂硬盘

插上 USB 硬盘,找设备:

lsblk
sudo blkid /dev/sda1   # 拿 UUID

格式化(ext4):

sudo mkfs.ext4 /dev/sda1
sudo mkdir -p /mnt/nas
echo "UUID=xxxx-xxxx  /mnt/nas  ext4  defaults,nofail  0  2" | sudo tee -a /etc/fstab
sudo mount -a

装 Samba

sudo apt install -y samba

配置 /etc/samba/smb.conf 末尾:

[nas]
    comment = Home NAS
    path = /mnt/nas
    browseable = yes
    read only = no
    guest ok = no
    create mask = 0664
    directory mask = 0775
    valid users = @sambashare

把当前用户加入 samba 用户组并设密码:

sudo usermod -aG sambashare $USER
sudo smbpasswd -a $USER
sudo systemctl restart smbd

硬盘自动休眠

家用 NAS 最烦的就是硬盘 7×24 一直转。装 hdparm:

sudo apt install -y hdparm
sudo hdparm -S 120 /dev/sda   # 10 分钟无活动就休眠
# 测一下能不能正常唤醒
sudo hdparm -y /dev/sda

注意:有些硬盘(尤其 SMR 的)休眠唤醒会很慢,甚至不兼容。如果出现怪问题,把 -S 120 改成 -S 0 禁用休眠。

加几个常用服务

a. transmission(BT 下载)

sudo apt install -y transmission-daemon
sudo systemctl enable transmission-daemon
sudo systemctl start transmission-daemon
# 配置文件:/etc/transmission-daemon/settings.json
# 监听 9091 端口,可以在浏览器里加任务

b. syncthing(多设备同步)

curl -s https://syncthing.net/release-key.txt | sudo gpg --dearmor -o /usr/share/keyrings/syncthing-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list
sudo apt update
sudo apt install -y syncthing
sudo systemctl enable syncthing@$USER
sudo systemctl start syncthing@$USER
# 浏览器访问 :8384 配置

c. rclone(挂各种云盘)

curl https://rclone.org/install.sh | sudo bash
rclone config   # 交互式配 aliyundrive / onedrive 等

监控

netdata 看 CPU、温度、磁盘、内存,装一行:

curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh
sh /tmp/netdata-kickstart.sh --dont-wait
# 浏览器访问 :19999

写在最后

用了大半年了,体验:安静(听不见)、稳定(基本不重启)、够用(千兆网络下读写 100MB/s 左右,日常用足够了)。

树莓派的 ARM 架构唯一需要注意的:有些 Docker 镜像没有 arm64 版本,跑不起来。其他都挺好。