为什么这样做

不论是工作或生活,我们都越来越需要多台电脑之前相互传输数据,现在比较成熟的方案是可以使用微信或者 QQ 互传,从速度上来讲,这个操作已经相当快捷了,但受限于传输大小,以及一些公司内部文档不得通过三方渠道传输,所以某些场景下并不能这么操作,所以需要使用内部工具或者传统的方式拷贝数据,比如用 U 盘或者移动硬盘,但这种介质受毕竟要每次都带在身边,而且还要考虑到不同电脑是否都支持同一个外接硬盘(现在用 Mac 的人可是逐渐增多了),有些电脑为了避免中毒,直接禁掉了 USB 接口,难免有些麻烦。因此又有另外的一些传输方式,比如目前市面上已经有越来越多的路由器本身就支持连接大容量的移动硬盘,像很早之前就问世的 AirPort Extreme,就可以支持外接移动硬盘,而 AirPort Time Capsule 更是直接内置硬盘,方便使用,国内的比如小米华为,也都有自家的路由器支持连接移动硬盘。那么为什么我还要写这么一篇文章来告诉大家树莓派作内网存储呢?实际上,主要有以下这么几个方面的原因:

  • 其一,这是一种学习的过程通过制作树莓派网络存储服务器,我们可以了解整个过程的实现原理;树莓派还有很多功能,这只是学习过程中的其中一个;既然可以用作内网的网络存储,那么自然而然也可以实现外网连接,关于外网连接,请看我的下一次更新;对于一个工匠而言,总是会喜欢使用自己做的工具,一方面磨练技能,一方面也能根据自己的喜好进行修改。
  • 其二,成本上的考虑从经济上讲,现在购买一个国产的支持连接硬盘的路由器并不贵,几百到上千的都有,如果仅仅是用作内网存储,我也会建议大家直接买一个现成的,但如果是为了用一个硬件作为枢纽,实现更多或者更复杂的功能,我就会建议大家考虑用树莓派了;从安全的角度,树莓派可以实现高度的自定义,如果直接购买一个成品,可能会存在被攻破的风险,而如果用树莓派,那就是看各家功夫的高低了;现在还有很多的厂商提供了远程下载的家庭存储硬件,不过是以订阅形式,或者要看广告,总之,厂商为了生存,也会在提供便利的基础上,从用户的其它方面赚钱,如果我们能自己实现一个远程下载的硬件,那么就不必考虑这些影响体验的因素了。

如何实现

看我写了那么多的原因,那到底怎么做呢?以下就是干货了。

准备好所有需要的东西

如果你认为你已经准备好所有东西,那么下面的介绍可以跳过了。

  1. 树莓派一个我用的是树莓派 4 代,考虑到之后可能会实现更多更复杂的功能,而且 4 代 有 USB 3 接口,对传输速率上有提升,所以用到了 4 代,如果需求不是那么强,可以考虑适当降低配置,现在在很多网站都能买到我们想要的树莓派,此处就不给大家推荐了。
  2. 树莓派配件电源线,需要根据使用的树莓派不同来进行配置,当然一般我们买树莓派时,店家也会给配好,如果不放心,可以下单前跟店家沟通;HDMI 线,注意树莓派 4 代用的是 micro HDMI,区别于 3B 用的 HDMI 线;读卡器与 micro SD 卡,micro SD 卡最好不要太小,不然装个系统都是问题,也不用太大,受限于 micro SD 卡的读取速率,买了太大的 micro SD 卡 也没有多少意义,你也不会想把数据存储在 micro SD 卡上面的,一般推荐一个 16 GB 的 micro SD 卡足够了,如果觉得小,可以买个 32 GB 的,再大真的没有什么必要;亚克力壳子或者一个塑料外壳,最好买一个壳子保护你的树莓派,生活和工作中总有各种意外会发生,你不会想要有一天真的发生了那种咖啡杯碰到了树莓派的悲剧,也不能保证一个裸板绝对不会碰到水,所以一个保护壳很有必要,最好是塑料的壳子,又能绝缘,又能一定程度上防水;一个专门的散热组件,可以是风扇,也可以是专门的散热片,不建议用硅脂等液体涂在芯片上,除非你想有一天这些液体神奇地流到电路上。
  3. 一台电脑 这台电脑不需要太好,可以是运行 macOS,Windows 或者 Linux 系统的电脑;装好一个 VNC 软件,方便我们随时用电脑共享树莓派的屏幕,当然也可以直接用 micro HDMI 线将树莓派连接到一个外接显示屏上;必要的键盘和鼠标,可以是无线的,用来在需要时连接树莓派。

开始执行操作

  1. 固定树莓派的 IP 地址虽然树莓派的功耗相当低,基本不用考虑关机的问题,但无法保证某天的突然断电或者其它突发情况,因此我们需要将树莓派的 IP 固定下来,这样即使遇到一些突发情况,重启树莓派后还是能够保证正常的访问。在树莓派上打开终端,并输入命令 
    hostname -I
    就可以知道当前树莓派的 IP 地址是什么,如下图所示

2. 安装必要的配置文件

在树莓派上打开终端,并分别输入如下命令:

sudo apt-get update
sudo apt-get install samba
sudo apt-get install samba-common-bin

请注意,以上代码是三条命令,每一条命令输入终端后,都需要运行一段时间,我们可能需要多一些耐心等待。

3. 插入自己的移动硬盘

对于使用树莓派 3B 的用户而言,四个 USB 接口都是 2.0 的,速率一样,但对于使用树莓派 4 的用户,建议将移动硬盘插入树莓派上的 USB 3.0 接口,就是在树莓派上内部是蓝色的 USB 接口。

如果我们需要验证硬盘是否被树莓派正确识别,可以检查树莓派的桌面是否出现了对应的硬盘,如下图所示。

4. 配置 Samba 以便共享,需要在树莓派的终端输入以下内容来添加一个用户

sudo smbpaswwwd -a pi

此时终端将依次弹出”新密码提示“,”重新输入新密码提示“,”创建新用户 pi“ 的文字,需要说明一下,在创建新密码及重新输入密码时,终端界面上并不会出现相应的密码,这是预期内的行为,如下所示:

New SMB password:
Retype new SMB password:
Added user pi.

5. 修改配置文件,在终端输入如下命令

sudo nano /etc/samba/smb.conf

终端将会打开 smb.conf 文件,我们直接拉到文件的最下方,添加以下内容

[SEAGATE1TB] #注意此处替换成对应移动硬盘的名字
path = path = /media/pi/SEAGATE1TB #这个路径就是树莓派上移动硬盘的路径
comment = the Seagate 1TB Drive
valid users = pi
writeable = yes
browseable = yes
create mask = 0777
public = yes

保存文件后输入以下命令重启 Samba

sudo /etc/init.d/samba restart

此时树莓派上的工作就已经大功告成了。

6. 在电脑上连接树莓派挂载的硬盘

操作时用的是一台 Mac 电脑,可以在 Finder 菜单中选择 Go -> Connect to Server,此时出现一个 Server Address 窗口,在此处输入树莓派的 IP 地址,格式是smb://192.168.31.251,如下图,然后点击 Connect。

电脑将出现连接 smb 的窗口,并且需要选择想连接的文件,如下图所示

接下来就是连接成功后的画面,我们可以在 Finder 中看到对应的硬盘已经连接成功,如下图

如果喜欢我的文章,请点个赞吧。

关注我,第一时间获取更多好玩的内容

匠人案牍