Raspberry pi 搭建 NAS (Samba)
NAS是什么?
NAS 说白了就是一个家庭式的云盘(我的理解).
NAS 用来干什么?为什么要用树莓派来做?
既然是个云盘,当然是用来备份数据,跟共享数据用啦!当然我主要是想同步我的文件,一方面是备份,另一方面是因为,我用树莓派做服务器后台的测试,为了想砸不同设备,都共用最新的代码,所以这次我做的NAS的另一个功能是同步代码.其实主要就是自己懒,不想每次修改代码后用ftp啊ssh啊之类的上传到树莓派上面...
需要什么材料呢?
- 树莓派4
- 64G内存卡
- 128Gb U盘
- 网线(我没用)
- 固态硬盘(跟内存2选1或者选2)
既然是用树莓派左的话,那当然就是需要树莓派,一个有树莓派系统的内存卡,需要扩容的话,就加一个硬盘,最好就是外接电源的那种,毕竟树莓派的电功率...你懂的.当然想速度快,更稳定的,你还需要一条网线.
而我呢...主要功能就是同步代码...暂时还没有打算同步我的手机照片啊之类的,所以我就用无线wifi的方式就算了...毕竟我懒得拉线是重点,穷也是买不起硬盘的原因(因为要用就用固态硬盘,提高速度,不然倒不如不要买...)所以我用一个128G的U盘代替.
使用Samba 搭建 NAS
Samba 是使用在Linux,Unix上的SMB协议的免费软件.
操作步骤
第一步:更新系统
sudo apt-get update
sudo apt-get upgrade
如果你之前没有更新过的话...冲杯咖啡,慢慢享受,或者打几盘游戏,或者放空自己,慢慢等吧.
第二步:挂载硬盘/U盘
貌似现在新的树莓派系统都不需要挂载这么麻烦了.以往挂载真贼麻烦,现在只需要即插即用,至少我的系统没问题了啦...
当然不过你想稳定点的话,自己挂载固定路径,避免重启后出现有些不可控的错误.
- 首先查看已挂载的硬盘/u盘名称
$ lsblk
如图所示的就是u盘的名称.(图中显示sda1,由于途中的u盘已经被我重新挂载过,所以最后的mountpoint 的位置路径是有意义的名称)
- 卸载
$ sudo umount /dev/sda1
- 创建一个文件夹,然后把u盘挂载到这个文件夹内,建议还是沿用media/pi 路径
$ sudo mkdir /home/pi/upan $ sudo mount -o uid=pi,gid=pi /dev/sda1 /home/pi/upan
添加了uid跟gid选项,让pi用户能读写挂载后的u盘.
ps:挂载 exFAT 格式的硬盘:如果你的 U盘或移动硬盘使用的是 exFAT 格式,mount 会说不支持。需要安装下 exfat-fuse 软件 sudo apt-get install exfat-fuse。
挂载 NTFS 格式的硬盘:默认挂载 NTFS 格式的硬盘只有只读权限,需要先安装所需软件包 sudo apt-get install ntfs-3g,然后加载内核模块 modprobe fuse ,重新插拔移动硬盘就可以读写了。
- 当然我们最好的是用开机自动挂载(个人感觉更加保险),修改/etc/fstab文件
$ sudo nano /etc/fstab
在文件最后添加/dev/sda1 /home/pi/upan auto defaults,nofail,noatime,umask=0000 0 0
文件结构是 device | dir | type | options | dump | fsck ,而options是相关的安装选项,noatime – 不更新文件系统上 inode 访问记录,defaults – 使用文件系统的默认挂载参数,例如 ext4 的默认参数为:rw, suid, dev, exec, auto, nouser, async。对 Windows 下的 NTFS 和 FAT 文件系统,还可以设置 uid=(挂载设备的指定用户 id)、gid=(挂载设备的指定用户群组 id)和 umask=(挂载设备的权限屏蔽)等, umask=0000 表示对所有人可读可写可执行。
第三步:安装Samba
sudo apt-get install samba samba-common-bin
安装过程会显示
我选择了yes
第四步:使用Samba共享文件夹
将Samba共享我们挂载好的文件夹
$ sudo nano /etc/samba/smb.conf
文件头部添加
security = user
然后文件最后添加:
[MyNas]
path = /home/pi/upan
writeable=Yes
create mask=0777
directory mask=0777
public=no
配置信息说明:
MyNas: 这定义了与共享文件夹有关的地址和其他配置。例如,共享文件夹将是以下地址:\ raspberrypi \ MyNas。
path:共享文件夹目录;
valid users:有效用户;
read only:是否只读;
create mask:创建文件的权限;
directory mask:创建文件夹的权限;
guest ok:是否允许访客访问;
browseable:是否可见。
保存退出
第五步:添加用户
$ sudo adduser
$ sudo smbpasswd -a
你也可以直接用pi
$ sudo smbpasswd -a pi
然后输入一个用来登陆NAS的密码
最后重启samba
sudo samba restart
Window连接NAS
先获取NAS的ip地址
$ ifconfig
或者直接
$ hostname -I
然后Windows10,打开"此电脑"按照以下步骤做
停止/启动samba服务
启动服务
$ /etc/rc.d/init.d/smb start
重启服务
$ /etc/rc.d/init.d/smbrestart
# 或者
$ service smb restart
暂停共享,停止samba服务
$ /etc/rc.d/init.d/smb stop
# 或者
$ service smb stop
完成,撒花!!!