树莓派搭建NAS(SMB, ARIA2,流播放器)

最近,买了一个树莓派,发现可玩性很强. 在研究一天后,记录一下感受。

挂载移动硬盘

我是先把硬盘用gpart格式为ext4

$ sudo mkdir -p /mnt/usbdrive
$ sudo mount /dev/sda1 /mnt/usbdrive

为了能让树莓派启动的时候,自动挂载硬盘,我们要写一个脚本,然后让它开机自动启动。

创建/usr/bin/脚本名字

以下是,我的文件 /usr/bin/aria

#!/bin/bash

sudo mount /dev/sda1 /mnt/usbdrive
sudo chmod -R 777 /mnt/usbdrive

把文件的权限改成777是让所有人都可以读写文件。后面Samba会用到。

并且修改/etc/rc.local文件,在exit 0之前加上以下的语句

sudo sh /usr/bin/aria

这个脚本就可以开机执行了。

安装并配置 Samba

首先安装Samba

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

编辑文件sudo vim /etc/samba/smb.conf

[nas]
comment = NAS Storage
Path = /mnt/usbdrive
valid users = root pi
force group = users
create mask = 0664
directory mask = 0775
read only = no
writeable = yes

在文件末尾插入就可以了,你也可以把文件中用不到的东西删掉。

然后创建用户pi并设密码

sudo smbpasswd -a pi

配备完后,重启Samba

sudo /etc/init.d/samba restart

aria2 安装及配置

刚装完官方的debian, nginx和aria2 的时候,发现怎么也不好使(webui连到了aria2 RPC server 但下载不了东西。aria2命令行可以下东西)。于是重新装debian, 换成用docker来装aria2和webui

首先,安装docker.这个可以通过树莓派官方的包管理器安装,因为我把树莓派的图形界面关掉了,所以就不贴图了。

安装完docker, 下载镜像

docker pull abrahammouse/raspbian-aria2-webui

运行镜像

mkdir -p /mnt/usbdrive/downloads

docker run -d --name aria -p 6800:6800 -p 80:80 -v /mnt/usbdrive/downloads:/data abrahammouse/raspbian-aria2-webui

遇到问题的话,可以进入cotainer里面看出了什么问题

docker exec -it aria /bin/bash

没有问题,继续下面的教程

为了能够让这个container 再开机运行,修改/usr/bin/aria(修改你自己之前的脚本文件)

#!/bin/bash

sudo mount /dev/sda1 /mnt/usbdrive
sudo chmod -R 777 /mnt/usbdrive
docker start aria
exit 0

这里面包括了之前的脚本,其实只加了docker start aria. 注意的是docker start aria一定要放到后面,因为我们要先mount硬盘之后,才能map硬盘里的文件夹.

minidlna

其实,我感觉安装了Smba就没有必要安装minidlna了。但因为我已经踩过了这个坑,就记录一下好了。

首先,安装minidlna

sudo apt install minidlna

修改minidlan 配置文件(/etc/minidlna.conf)

# If you want to restrict a media_dir to a specific content type, you can
# prepend the directory name with a letter representing the type (A, P or V),
# followed by a comma, as so:
#   * "A" for audio    (eg. media_dir=A,/var/lib/minidlna/music)
#   * "P" for pictures (eg. media_dir=P,/var/lib/minidlna/pictures)
#   * "V" for video    (eg. media_dir=V,/var/lib/minidlna/videos)
#   * "PV" for pictures and video (eg. media_dir=PV,/var/lib/minidlna/digital_camera)

media_dir=/var/lib/minidlna

media_dir=PV,/mnt/usbdrive/downloads

media_dir=V,/mnt/usbdrive/videos

media_dir=A,/mnt/usbdrive/music

上面的comment是说明,根据说明配置自己的文件。因为,minidlna会开机自己启动。所以也不需要写脚本文件了.

结语

至此,我们就完成了NAS的搭建。其实还有一些改善的东西,比如加入ngrok外网穿透,ftp连接。因为比较简单,我就没写到里面。在研究树莓派的时候,遇到了很多的坑没有写到里面。比如64GB内存卡,一定要用gpart格式成FAT32等问题(树莓派只识别FAT32USB启动),我都研究了很久,很痛苦。当然,也有完成之后的成就感。在接下来的几天里,我也会继续研究树莓派,享受它的乐趣。