树莓派Raspberry Pi 打造低成本NAS存储家庭服务器的十个问题整理

refer to: https://www.freehao123.com/raspberry-pi-nas/


手里有一个树莓派Raspberry Pi 2,正好还有一个空闲的移动硬盘,寻思着把这树莓派Raspberry Pi 和移动硬盘给利用起来,搭建一个低成本的NAS。正好前段时间折腾着Nextcloud离线下载搭建方法,Aria2安装在树莓派Raspberry Pi 也是一个很简单的事情。

然后,在树莓派Raspberry Pi 挂载移动硬盘,利用Aria2离线挂机下载资源到硬盘中,再利用Kodi播放器可以读取SFTP、FTP或Http服务器里的文件的特点,直接播放树莓派Raspberry Pi 硬盘中的视频。这样一个简单的家庭影视共享NAS存储就这样完成了。

实际使用的过程中还是插不错的,没钱购买专业的NAS存储设备,综合利用一下正在“吃灰”的树莓派、移动硬盘、网线等还是挺不错的。树莓派Raspberry Pi 安装过程还是挺简单的,这篇主要是整理一下自己在操作过程中遇到一些问题,例如移动硬盘挂载、USB无线网卡、读取权限等。

更多的有关于搭建网络存储和云盘的文章,有兴趣的朋友还可以看看:

Nextcloud离线下载搭建方法-整合Aria2和AriaNg、Aria2 WebUI实现离线下载

Lsyncd搭建同步镜像-用Lsyncd实现本地和远程服务器之间实时同步

Linux VPS挂载Google Drive和Dropbox-实现VPS主机数据同步备份

一、树莓派软件安装卸载命令

树莓派官方系统Raspbain Jessie With PIXEL ,就是基于Debain 8深度定制的,所以直接使用我们在Linux VPS上用的命令即可,例如LNMP环境搭建都没有问题。这里整理出一些常用的命令:

常用apt命令列表

apt-cache search # ------(package 搜索包)

apt-cache show #------(package 获取包的相关信息,如说明、大小、版本等)

sudo apt-get install # ------(package 安装包)

sudo apt-get install # -----(package - - reinstall 重新安装包)

sudo apt-get -f install # -----(强制安装?#"-f = --fix-missing"当是修复安装吧...)

sudo apt-get remove #-----(package 删除包)

sudo apt-get remove -purge # ------(package 删除包,包括删除配置文件等)

sudo apt-get autoremove --purge # ----(package 删除包及其依赖的软件包+配置文件等(只对6.10有效,强烈推荐))

sudo apt-get update #------更新源

sudo apt-get upgrade #------更新已安装的包

sudo apt-get dist-upgrade # ---------升级系统

sudo apt-get dselect-upgrade #------使用 dselect 升级

apt-cache depends #-------(package 了解使用依赖)

apt-cache rdepends # ------(package 了解某个具体的依赖?#当是查看该包被哪些包依赖吧...)

sudo apt-get build-dep # ------(package 安装相关的编译环境)

apt-get source #------(package 下载该包的源代码)

sudo apt-get clean && sudo apt-get autoclean # --------清理下载文件的存档 && 只清理过时的包

sudo apt-get check #-------检查是否有损坏的依赖

如果使用 apt-get 遇到速度慢或者源不存在等错误,可能需要更换源,请参考(wzfou.com)本文的第二部分。

aptitude 命令

aptitude 与 apt-get 一样,是 Debian 及其衍生系统中功能极其强大的包管理工具。与 apt-get 不同的是,aptitude 在处理依赖问题上更佳一些。举例来说,aptitude 在删除一个包时,会同时删除本身所依赖的包。这样,系统中不会残留无用的包,整个系统更为干净。以下是笔者总结的一些常用 aptitude 命令,仅供参考。

aptitude update 更新可用的包列表

aptitude upgrade 升级可用的包

aptitude dist-upgrade 将系统升级到新的发行版

aptitude install pkgname 安装包

aptitude remove pkgname 删除包

aptitude purge pkgname 删除包及其配置文件

aptitude search string 搜索包

aptitude show pkgname 显示包的详细信息

aptitude clean 删除下载的包文件

aptitude autoclean 仅删除过期的包文件

当然,你也可以在文本界面模式中使用 aptitude。

deb软件包

dpkg -i xxx.deb #安装deb软件包

dpkg -r xxx.deb #删除软件包

dpkg -r –purge xxx.deb # 连同配置文件一起删除

== dpkg -P xxx.deb # 彻底的卸载,包括软件的配置文件

dpkg -info xxx.deb # 查看软件包信息

dpkg -L xxx.deb # 查看软件安装到什么地方

dpkg -l # 查看系统中已安装软件包信息

dpkg -s package # 查看软件包的详细情况,包括版本,依赖之类的

dpkg -S keyword #搜索所属的包内容

dpkg -c package.deb #列出 deb 包的内容

dpkg -C #查找只有部分安装的软件包信息

dpkg -p package-name #显示包的具体信息

dpkg –unpack package.deb #解开 deb 包的内容

dpkg –configure package #配置包

dpkg-reconfigure xxx # 重新配置软件包

# 清除所有已删除包的残馀配置文件

dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P

# 如果报如下错误,证明你的系统中没有残留配置文件了,无须担心。

dpkg: –purge needs at least one package name argument

dpkg –clear-avail #删除软件包的Avaliable信息

dpkg –help #显示帮助信息

dpkg –compare-versions ver1 op ver2 #比较同一个包的不同版本之间的差别

dpkg –licence (or) dpkg –license #显示dpkg的Licence

dpkg –version #显示dpkg的版本号

dpkg -b direc×y [filename] #建立一个deb文件

dpkg安裝的可以用apt卸载,反之亦可。

二、树莓派更换更新源方法

树莓派 Raspberry Pi自带的更新源在国内打不开,我们可以更换为国内的镜像。首先编辑 /etc/apt/sources.list 文件,这里推荐就用系统自带的 nano 命令编辑,命令如下:

sudo nano /etc/apt/sources.list

进入编辑界面,删除原有的内容,粘贴如下内容:

deb http://mirrors.aliyun.com/raspbian/raspbian/ jessie main non-free contrib rpi

deb-src http://mirrors.aliyun.com/raspbian/raspbian/ jessie main non-free contrib rpi

更新软件索引清单

sudo apt-get update

比较索引清单更新依赖关系

sudo apt-get upgrade -y

补充:完成上述操作后你还需要把sources.list.d文件夹内raspi.list的源注释掉。更多的镜像源可以在这里找到:http://www.raspbian.org/RaspbianMirrors

三、树莓派启用root登陆账户

树莓派更换更新源可以解决软件依赖问题,但是有时我们需要用到Root权限才可以安装某些软件。当需要root权限时,由默认账户经由sudo执行,Raspberry pi 系统中的Raspbian。默认主机名是 raspberrypi 默认用户是 pi 密码为 raspberry

为了方便折腾,建议第一时间启用 ROOT 账号,只需要执行一下两句命令即可:

// 重新开启root账号,可由pi用户登录后,执行此命令后系统会提示输入两遍的root密码,输入你想设的密码即可。

pi@raspberrypi:~$ sudo passwd root

Enter new UNIX password: #输入第一遍密码

Retype new UNIX password: #输入第二遍密码

// 启用 root 账号登录

pi@raspberrypi:~$ sudo passwd --unlock root

passwd: password expiry information changed.

输入上面第一行代码 第二行是提示错误的代码。原因是 新版本s-s-h默认关闭root登陆 你可以修改一下s-s-h的配置文件。

pi@raspberrypi:~$ sudo nano /etc/ssh/sshd_config

Ctrl + W 快捷键 搜索 PermitRootLogin without-password,修改 PermitRootLogin without-password 为 PermitRootLogin yes,Ctrl + O 快捷键 保存,Ctrl + O 快捷键 退出 Nano 编辑器。 执行完之后,用 reboot 命令重启,这样就可以解锁root账户。

四、树莓派手动挂载移动硬盘或U盘

Raspberry Pi 官网提供的操作系统目前已经可以自动挂载移动硬盘或者U盘了,如果你使用的是其它的操作系统无法自动识别并挂载硬盘或U盘,你可以采用手动挂载的方式。通常我们在 /mnt 或 /media 目录下新建一个目录作为挂载点。比如:

sudo mkdir /mnt/1GB_USB_flash

sudo mount -o uid=pi,gid=pi /dev/sda1 /mnt/1GB_USB_flash // 用完之后卸载

sudo umount /mnt/1GB_USB_flash

sda1 是取决于你的实际情况,a表示第一个硬盘,1表示第一个分区。

挂载exFAT格式的硬盘

FAT 格式U盘 mount 本身就能支持,但如果你的U盘或移动硬盘使用的是 exFAT 格式,mount 会说不支持。没关系,安装 exfat-fuse 软件之后 mount 就支持了。

sudo apt-get install exfat-fuse

如果想开机自动挂载,而不是每次手工执行,可以编辑 /etc/fstab 文件。比如在末尾添加一行:

/dev/sda1 /mnt/usbdisk vfat rw,defaults 0 0

挂载NTFS格式的硬盘(读写方式挂载)

默认挂载NTFS格式的硬盘只有只读权限,需要借助其它工具实现。

#安装所需软件包

sudo apt-get install fuse-utils ntfs-3g

#加载内核模块

modprobe fuse

#编辑fstab让移动硬盘开机自动挂载

sudo nano /etc/fstab

#在最后一行添加如下内容

/dev/sda1 /mnt/myusbdrive ntfs-3g defaults,noexec,umask=0000 0 0

#保存重启,即可生效

挂载FAT32格式的硬盘

#创建挂载点

sudo mkdir /mnt/myusbdrive

#编辑fstab让移动硬盘开机自动挂载

sudo nano /etc/fstab

#在最后一行添加如下内容

/dev/sda1 /mnt/myusbdrive auto defaults,noexec,umask=0000 0 0

#保存重启,即可生效

说明:

sda1是取决于你的实际情况,a表示第一个硬盘,1表示第一个分区。

umask=0000 0 0

前面四个0就是对所有人,可读可写可执行,

后面两个0,第一个代表dump,0是不备份

第二个代表fsck检查的顺序,0表示不检查

卸载:sudo umount /mnt/myusbdrive

查看挂载情况可使用以下命令。 cd /mnt/myusbdrive ,然后:ls

五、树莓派移动硬盘供电不足

我在使用树莓派2接移动硬盘时出现了供电不足的问题,主要表现就是挂载不稳定,移动硬盘出现“咔咔”的吃亏。目前的解决办法有:

硬件法:

买一个USB-HUB,相当于给移动硬盘提供一个电流源。

软件法1:

更改树莓派配置,路径是:boot/config.txt,这里面包含了一些树莓派的初始配置。只要在最后面加上max_usb_current=1就行了。打开终端,进入到boot文件夹下,执行如下:sudo nano config.txt

然后添加max_usb_current=1,ctrl+x保存。 输入reboot重启,插上移动硬盘,如果没识别出来,就多插几次。

软件法2:

在软件法1中的文件末尾添加 safe_mode_gpio=4。

软件法3:

把你的移动硬盘格式化成ext格式的,ext3或4都可以。这样插上树莓派就可以被识别。

格式化方法如下:

首先,如果移动硬盘已经挂载,先取消挂载:sudo umount /xxxmnt/xxxusb_flash。接着执行sudo fdisk -l查看你的u盘的序号,通常是/dev/sdb之类的,U盘分区通常是/dev/sdb1。

最后,执行格式化操作:

sudo mkfs.ext4 /dev/sda1 # 格式化为ext4分区

sudo mkfs.ext3 /dev/sda1 # 格式化为ext3分区

sudo mkfs.ext2 /dev/sda1 #格式化为ext2分区

特别注意:格式化后你的移动硬盘时面的东西就都清除了,在格式化以前最好做好备份。

六、树莓派整合Aria2和AriaNg离线下载

Raspberry Pi 整合Aria2和AriaNg、Aria2 WebUI实现离线下载方法很简单,参考:在VPS上安装Aria2。

七、树莓派搭建FTP服务器(vsftpd)

如果使用Kodi这样的播放器是可以直接使用SFTP登录并浏览文件的,但是我们也可以使用FTP登录的方式来读取文件。首先在树莓派安装vsftpd服务器 (约400KB)

sudo apt-get install vsftpd

启动ftp服务

sudo service vsftpd start

编辑vsftdp的配置文件

sudo nano /etc/vsftpd.conf

找到以下行,定义一下

anonymous_enable=NO

表示:不允许匿名访问

local_enable=YES

设定本地用户可以访问

write_enable=YES

设定可以进行写操作

local_umask=022

设定上传后文件的权限掩码

chroot_local_user=YES

修改访问目录,新增一行

local_root=/var/www/

# anon_root=/var/www/tmp

# local_root 针对系统用户;anon_root 针对匿名用户

注:FTP用户根目录权限是555(dr-xr-xr-x),权限设置成777登陆不了

重启vsftpd服务

sudo service vsftpd restart

测试一下, OK。通过ftp连接树莓派系统,用户名:pi,密码是raspberry

八、树莓派搭建NAS服务器(Samba)

安装 samba 和 samba-common-bin

sudo apt-get install samba samba-common-bin

sudo apt-get install netatalk (可选,用于支持AFP)

sudo apt-get install avahi-daemon(可选,用于支持网内的计算机自动发现)

配置/etc/samba/smb.conf文件

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

sudo vi /etc/samba/smb.conf

[share]

#共享文件的名称,将在网络上以此名称显示

path = /samba #共享文件的路径

valid users = root pi #允许访问的用户,比如我的raspi有

#root 和 pi 两个用户

browseable = yes #允许浏览

public = yes #共享开放

writable = yes #可写

启动 重启

sudo smbd

sudo smbd restart

九、树莓派启用USB无线网卡

Raspberry Pi 2使用Raspbain Jessie With PIXEL 树莓派官方系统,基于Debain 8,带PIXEL图形界面,下载最新版:https://downloads.raspberrypi.org/raspbian_latest。

经过我的测试,最新版的Raspbain Jessie 操作系统支持360 / 小米 / 百度 随身wifi,如果你正好有一个的话插上去就可以使用 USB无线网卡了。


十、总结

我在树莓派Raspberry Pi 打造低成本NAS存储操作过程中,首先遇到的问题移动硬盘挂载的问题,默认的NFT格式虽然可以挂载到Raspberry Pi 上,但是由于是Windows硬盘格式,无法在Linux中修改权限,最终导致Aria2离线下载无法往硬盘中写数据。

绕好大一个圈,终于决定将移动硬盘格式为Ext4,这样Raspberry Pi 就可以直接识别并挂载了。Windows上读取Ext4格式的移动硬盘可以使用Ext2 Volume Manager,Ext2Fsd等软件,支持在Windowsext2/ext3文件系统的读写。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342