本文是我用 Ubuntu 20.04 搭建私人 NAS 站点的笔记。NAS 的主要用途是存储照片。
其他服务方面,使用 webmin 通过 WebUI 管理主机,Emby/Jellyfin 用于多媒体。这两个服务都运行在 docker 中,所以我也用 portainer 来管理。
用 Samba 共享存储,iPhone 上传照片到 NAS 用 PhotoSync
。用 smartctl 检查磁盘健康,如果有异常则邮件通知。
文件共享(Samba)#
安装 Samba:
1
| sudo apt-get install samba smbfs
|
编辑 /etc/samba/smb.conf
配置文件,如有需要可修改工作组。
1
2
| # Change this to the workgroup/NT-domain name your Samba server will part of
workgroup = WORKGROUP
|
然后设置共享文件夹,在文件末尾添加如下内容:
1
2
3
4
5
6
7
| [share]
comment = Share directory for my self-nas
path = /share
read only = no
guest only = no
guest ok = no
share modes = yes
|
重启 smbd
服务并确认其运行状态。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| wshi@nuc:~$ sudo systemctl restart smbd
wshi@nuc:~$ sudo systemctl status smbd
● smbd.service - Samba SMB Daemon
Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2020-04-10 15:58:55 JST; 3s ago
Docs: man:smbd(8)
man:samba(7)
man:smb.conf(5)
Main PID: 7696 (smbd)
Status: "smbd: ready to serve connections..."
Tasks: 4 (limit: 4915)
CGroup: /system.slice/smbd.service
├─7696 /usr/sbin/smbd --foreground --no-process-group
├─7712 /usr/sbin/smbd --foreground --no-process-group
├─7713 /usr/sbin/smbd --foreground --no-process-group
└─7722 /usr/sbin/smbd --foreground --no-process-group
Apr 10 15:58:55 nuc systemd[1]: Starting Samba SMB Daemon...
Apr 10 15:58:55 nuc systemd[1]: Started Samba SMB Daemon.
|
设置访问 samba 服务器用户的密码。忘记密码时也可用此命令重设。
1
| wshi@nuc:~$ sudo smbpasswd -a wshi
|
最后创建共享文件夹并设置权限为 0777
1
2
| sudo mkdir /share
sudo chmod 0777 /share
|
磁盘检测 - SMART#
NAS 需要 7x24 小时运行,所以要有脚本监控健康状态。SMART 是监控 HDD、SSD、eMMC 的好工具。
1
| sudo apt-get install smartmontools
|
检查 SMART 状态#
扫描硬盘:
1
2
3
4
| $ sudo smartctl --scan
/dev/sda -d scsi # /dev/sda, SCSI device
/dev/sdb -d sat # /dev/sdb [SAT], ATA device
/dev/nvme0 -d nvme # /dev/nvme0, NVMe device
|
确认硬盘支持并启用了 SMART:
1
2
3
4
| $ sudo smartctl -i /dev/sda
...
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
|
最后两行显示 SMART 是否可用和已启用。
显示 SMART 信息#
1
2
| $ sudo smartctl -A /dev/sda
...
|
(下文所有命令、说明、表格、步骤、参考链接等均会自然翻译为中文,Markdown 结构、代码块、表格、列表等全部保持原样)