使用树莓派作 NAS

提问:我为什么使用Raspberry Pi作为NAS?
答案:因为它真的很省电,也很方便!

好了,交代了我为什么要使用我的Raspberry Pi发挥余热了,Raspberry Pi上面已经跑了一个Web服务,因为最近换了阿里云主机,所以现在主要是我网站的备份。

前提

首先保证树莓派运行 Raspbian 系统正常,并将空间扩展至整张 SD 卡,需要安装各种软件以防空间不够
操作树莓派直接使用 ssh 就可以了,不需要显示器的

在进行操作之前,最好先更新一下软件源

sudo apt-get update

然后再更新一下软件(非必须)

sudo apt-get upgrade

准备硬盘

看到网上有壕使用raid,因为我手头只有一块弃用的160G硬盘,只能作为单硬盘使用,顺便淘宝入了一个带电源的硬盘座。

  1. 格式化硬盘为 ext4 格式,查看硬盘的内核名称,其中的 “/dev/mmcblk0” 指的是树莓派中的 SD 卡,而 “/dev/sda” 一般就是指硬盘了

    sudo fdisk -l

  2. 按照提示对硬盘进行进行分区

    sudo fdisk /dev/sda

  3. 将硬盘分区格式化为 ext4 格式,格式化之前必须先卸载硬盘,使用 umount 命令即可

    sudo mkfs.ext4 /dev/sda1

开机自动挂载硬盘

  1. 先挂载一下硬盘,修改权限,要不然我们的 pi 可是写不了的

ext4 格式是可以记录权限信息的,所以修改一次下次挂载 pi 就可以写了
ntfs 格式的话,挂载的时候指定 uid=pi,gid=pi 就可以了,直接看第2步

mkdir /home/pi/nas-data
sudo mount /dev/sda1 /home/pi/nas-data
sudo chown pi:pi /home/pi/nas-data
  1. 查看硬盘的 uuid

    $ sudo blkid
    /dev/sda1: UUID="d5a3d30a-d2e7-4b12-bb31-b4439c5db200" TYPE="ext4"

  2. 编辑 sudo vim /etc/fstab 文件,在末尾加入以下内容,文件格式说明请看 man fstab 或者《配置启动挂载》

    UUID=d5a3d30a-d2e7-4b12-bb31-b4439c5db200 /home/pi/nas-data ext4 defaults 0 2
    如果是 ntfs 格式,如下
    UUID=588650B08650907C /home/pi/nas-data ntfs gid=pi,uid=pi,dmask=002,fmask=113 0 0

安装并配置 Samba

  1. 首先安装 samba

    sudo apt-get install samba samba-common-bin

  2. 然后配置 samba

备份配置文件,备份是个好习惯

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

编辑配置文件 sudo vim /etc/samba/smb.conf , 做如下修改

######### 找到 "#   security = user" 这一行,将前面的"#"去掉,修改后内容如下
######### 使用本地用户来登陆
security = user
######### 在末尾加入如下内容
######### 分享名称
[nas]
######### 说明信息
comment = NAS Storage
######### 要问我为啥多加了个 nas-data,因为我把 ext4 格式的硬盘挂载在 /home/pi/nas-data 下
######### ext4 文件系统会在根目录下产生 lost+found 文件夹,看着烦,就让它“消失了”(多加一层目录)
######### 共享文件的路径
path = /home/pi/nas-data/nas-data
######### 可被其他人看到资源名称(非内容)
browseable = yes
######### 可写
writable = yes
######### 新建文件的权限为 664
create mask = 0664
######### 新建目录的权限为 775
directory mask = 0775

可以把配置文件中你不需要的分享名称删除,例如 [homes], [printers] 等
  1. 测试配置文件是否有错误,“[ ]”之前的为错误信息,根据提示做相应修改

    $ testparm

rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[nas]"
Loaded services file OK.
...

  1. 给 samba 添加用户并创建密码(登陆 samba 用的),其中的用户必须是 linux 已存在的用户

    sudo smbpasswd -a pi

  2. 配置好后,使用如下命令重启 samba 服务

    sudo /etc/init.d/samba restart

测试 Samba

我的网络拓扑结构如下:
Macbook <--无线--> 300M 路由器 <--网线--> 树莓派
当上面的步骤设置以后,在Mac的设备(Windows的网络)里面就出现一个Nas的标志了,这时候我们只要输入验证信息连接即可

至此,NAS搭建完成!

标签:raspberry pi, nas, raspbean