前引

在不久之前,为了不让昂贵的树莓派不吃灰,尝试了一次将树莓派作为云盘服务器的文章

在试用了一段时间后,使用感受并不是很好。

首先,nextcloud修改默认存储位置比较麻烦,云盘的主要目的就是要将资料存储在便于移动、扩展的U盘、硬盘上,而不是直接利用插入的TF卡或者是树莓派自身的内存空间内,这样不仅存储空间比较小而且对自身存储器也是一种损耗。

其次,云盘以网页的方式发布 ,内网穿透比较麻烦。

设备清单

  • 树莓派
  • 移动硬盘(U盘也可)
  • 网络环境

挂载硬盘

  • 查看硬盘

    1
    $sudo fdisk -l
1
如果设备被识别成功,在执行命令后可以查看到类似如下的结果

image-20220409211212249

1
不同设备会有不同,类似/dev/hda, /dev/hdb, /dev/sda, /dev/sdb,这些不同的代号,而这些不同的代号又代表着什么?
1
hda一般是指IDE接口的硬盘,hda指第一块硬盘,hdb指第二块硬盘,等等;sda一般是指SATA接口的硬盘,sda指第一块硬盘,sdb指第二块硬盘,等等。
  • 挂载硬盘

临时挂载非常简单,只需要一个mount 命令即可

1
2
3
$ sudo mount [参数] [挂载对象(/dev/sda)] [挂载点(新建文件夹来挂载)]
# 新建文件夹(挂载点)
$ sudo mkdir Disk

取消挂载

1
$ sudo umount [挂载对象] [挂载点]

对于mount的参数可以省略,如果又特殊需求可以通过百度来查找mount 参数

所谓的永久挂载其实也就是开机自动挂载,开机自动挂载硬盘不需要在每次开机后都通过命令的方式去挂载硬盘,相对来说比较方便,但是这种方法挂载硬盘后如果没有插入硬盘可能会出现不能引导开机的问题,解决方法这里就不细说了,网上的教程还是比较丰富的。

1
2
查看硬盘的UUID
$ sudo blkid

image-20220409214826591

将获取的UUID复制下来,待会要用

1
2
3
4
5
6
7
8
# 新建挂载点(在当前目录下)
$ sudo mkdir Disk

#编辑fstab加入硬盘信息
$ sudo vim /etc/fstab

#在文件最后输入硬盘信息
UUID="刚刚复制的UUID" /home/pi/Disk ext4 defaults 0 1

image-20220409215353270

测试:

1
2
3
4
5
# 重启树莓派
$ sudo reboot

# 查看挂载情况
$ sudo df -l

image-20220409215732729

配置samba

  1. 按照惯例安装软件之前先update和upgrade一波
1
2
3
4
5
6
# 凑个字数
$ sudo apt update
$ sudo apt upgrade

# 安装samba
sudo apt install samba samba-common-bin -y
  1. 配置samba控制文件,指定共享的文件
1
2
# 通过vim打开控制文件
$ sudo vim /etc/samba/smb.conf

添加文件目录和控制信息,在最后面添加如下内容

1
2
3
4
5
6
7
8
9
10
[NAS]
comment = NAS Storage
path = /home/pi/Disk/
browseable = yes
read only = no
writable = yes
valid users = pi
create mask = 0775
directory mask= 0775
guest ok = yes

path后面的文件路径根据自己的需要来修改,我的路径就是硬盘的挂载地址

如果不想共享home下的文件目录,可以找到文件中[home]的部分,将那部分全部注释掉

image-20220409221417876

  1. 重启samba服务
1
2
3
4
$ sudo /etc/init.d/samba restart
$ sudo systemctl restart samba
$ sudo samba restart
# 这三个都试试看吧,都是重启服务的命令,我只成功了最后那个
  1. 添加默认用户到samba
1
2
$ sudo smbpasswd -a pi
# 输入密码确认即可

image-20220409223723986

本地连接共享测试

之前将树莓派作为一个软路由来使用,现在电脑和手机都有连接着树莓派的WIFI,所以只需要直接访问树莓派的固定IP就能实现对树莓派共享文件的访问。开热点方法可以参考我之前写的这篇文章。

{% flink %}

{% endflink %}

  • Windows 测试访问共享文件

    在文件资源管理器中直接输入\\IP地址 即可访问共享文件

    image-20220409223310023

    还可以映射为本地驱动器,在Network右键->映射网络驱动器

    image-20220409223950512

  • Android

    如果默认文件管理器可以访问网络存储的话就按照官方教程来使用,如过默认文件管理器不能访问,则要下载其他文件管理器

    我目前使用的是文件管理器(File Manager Plus)

    image-20220409224651643

使用体验还是比较不错的

image-20220409224741807

内网穿透

这里推荐一个很好用,还免费的内网穿透平台(非广告)

{% flink %}

{% endflink %}

如果需要远程访问到共享文件,就需要内网穿透,安装配置文档已经非常完善,可自行到官网查看安装配置方法。samba占用的是139端口,在创建隧道的时候端口选择139就行。

如果选择了内网穿透了,一定要设置好密码和保护好隧道信息...不让很容易信息泄露