先放结论:这个简易 NAS 真的非常简易,大概就是一个无线存储盘的效果。如果需要一个比较可靠的 NAS,多掏点银子买专业的吧。
在升级 macOS Sierra 的当天晚上,我的 Mac 原配的 HDD 就坏了(绝对是库克干的好事),只剩下一块 120GB 的 SSD 作为唯一内置存储设备。我原本已经有一块 1TB 的移动硬盘,但是也已经塞满了。为了满足存储需要只能再去买了一块 2TB 的盘。两块盘同时插在机子上很麻烦,笔记本的可移动性大大降低了。于是我想到了用树莓派搭一个简易 NAS,把移动硬盘变成无线硬盘。
材料:
- 树莓派 Raspberry Pi 3 Model B 及电源线和适配器
- Micro SD Card
- 移动硬盘
- 带独立供电的 USB Hub
此外在配置过程中需要显示器、键盘和鼠标,没有这些设备的话理论上也行,但是会相当麻烦。
系统安装
首先安装官网上的指引,下载 Raspbian 系统镜像并安装到 Micro SD Card 之上。
配置 Raspbian
把 Micor SD Card 插入树莓派,接上电源、显示器、鼠标、键盘,呈现在眼前的就如同一台普通的 Linux 计算机了。在终端里键入 sudo raspy-config
可以配置,有这么几个必须进行的操作:
- 开启 ssh,这样今后进行一些简易维护就不需要显示器等设备了。
- 修改密码。Raspbian 的默认用户名和密码分别是 pi 和 raspberry,改掉密码可以防止不怀好意的人登陆你的树莓派。
- 修改键盘布局和语言。树莓派是英国的树莓派基金会所开发,所以默认键盘布局和语言都是英式。更换布局的具体步骤可参见这篇文章。
修改用户 pi 的 uid
需要这一步操作的原因是我选择 HFS+ 作为移动硬盘的文件格式,由于这种文件格式的特性,简而言之,每个文件记录了它的拥有者的 uid,如果当前用户的 uid 和文件里记录的 uid 不一致,那么就无权访问。macOS 上第一个用户的 uid 是 501,而树莓派上默认用户 pi 的 uid 是一个四位数,所以要把 pi 的 uid 改成 501,这样读写就不会遇到麻烦了。
在 macOS 上执行 id
命令可以查看自己的 uid,如果不是 501,那么下面的命令里应该换成正确的数值。
修改用户 pi 的 uid 需要注销并登陆到 root 账户上去改,树莓派默认又是锁定了 root 账户的。首先为 root 账户设置密码
sudo passwd root
然后解锁 root 账户
sudo passwd --unlock root
之后去 raspi-config 里面把启动选项改成 Console,重启树莓派登入 root 账户并修改 uid:
usermod -u 501 pi
然后再去 raspi-config 里把启动选项改回 Desktop Autologin,返回 pi 账户进行下一步操作。
开启文件共享
安装 netatalk 和 avahi-daemon
sudo apt-get update; sudo apt-get upgrade; sudo apt-get install netatalk avahi-daemon
安装完后,如果笔记本和树莓派连接到同一无线局域网,应该就能在 Finder 的侧栏看到树莓派了,用 pi 用户登陆可以访问 Home Directory,也就是 Raspbian 上 pi 用户的主文件夹。当然我需要的是访问移动硬盘。把移动硬盘通过 USB Hub 接上树莓派。首先确认在 Raspbian 系统下能够正常读写移动硬盘,如果移动硬盘采用了 HFS+ 或者 NTFS 之类的文件格式,还需要安装相应的软件包。对于 HFS+ 格式:
sudo apt-get install hfsprogs
然后修改 netatalk 的共享设置
sudo nano /etc/netatalk/AppleVolumes.default
可以看到里面已经默认共享了用户主目录。加上共享移动硬盘:/media/pi/mydrive “mydrive”
。重启 netatalk:
sudo service netatalk restart
硬盘睡眠
最后,硬盘不工作时应当让它进入睡眠,我就不啰嗦了,直接看这里。
效果
从树莓派里下载文件大概是 1MB/s,看个普通的视频足够了,凑合用吧。