服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Linux - 如何用树莓派打造成NAS

如何用树莓派打造成NAS

2023-10-08 20:12未知服务器之家 Linux

你需要一个树莓派,和一两个闲置着的移动硬盘。体积较小的2.5硬盘可以由USB接口直接供电,但是我们需要一个带有供电功能的USB分线器,因为树莓派的USB接口提供的电是不足以给移动硬盘供电的。除此之外你也可以用thumbdrive,甚

如何用树莓派打造成NAS
你需要一个树莓派,和一两个闲置着的移动硬盘。体积较小的2.5硬盘可以由USB接口直接供电,但是我们需要一个带有供电功能的USB分线器,因为树莓派的USB接口提供的电是不足以给移动硬盘供电的。除此之外你也可以用thumbdrive,甚至是一张SD卡。事实上我现在在用的就是一个USB口的移动硬盘和一个thumbdrive搭建的,操作流程都是一样的。
如何用树莓派打造成NAS
只用一个硬盘,也可以搭建分享文件的网络存储器,但是用两个硬盘,就可以设置数据备份,以防有一个硬盘坏掉。

准备硬盘

最初的步骤是在台式机上格式化硬盘。这是为了方便,如果出了问题,我们可以把硬盘从NAS上拔下来,还可以在一台PC上读上面的数据。

可以在树莓派上格式化,但是会花上几个小时,从台式机上格式化会快很多。现在就去做吧。

设置SSH,开启root用户,首先为root用户设置密码:

sudo-i
passwdroot

(输入你的密码)

然后运行raspi-config,可以用sudo,也可以注销当前用户,然后以root用户的身份登陆。在选项菜单中,开启SSH。
如何用树莓派打造成NAS
重启后,你应该可以从联网的另一台机器登陆(如果在windows上,可以使用Putty):

SSHroot@[IP地址]

登陆之后,搞清楚插上去的硬盘在/dev下面的编号是什么。下文假设使用两个硬盘,创建数据备份。输入

fdisk-l

会显示出已经挂载的存储设备。你应该看到类似于这样的画面:
如何用树莓派打造成NAS
/dev/mmc是树莓派系统的分区,mmc指的是SD卡。/dev/sda1和/dev/sdb1和SD卡没有关系,这些是你插上去的USB硬盘(本意是SCSI驱动器,但是现在用来指任何SATA口的或其他存储器)

安装ntfs-3g模块,于是我们就能读写NTFS格式的硬盘了。

apt-getinstallntfs-3g

然后创建一个目录,以这个目录作为挂载点挂载硬盘。为简单起见,下文用1和2来指代。

mkdir/media/1
mkdir/media/2
mount-tauto/dev/sda1/media/1
mount-tauto/dev/sdb1/media/2
mkdir/media/1/shares
mkdir/media/2/shares

Samba

下一步我们来设置Samba。Samba是Windows使用的网络文件共享协议(事实上最新的OSX Mavericks也支持)

apt-getinstallsamba
apt-getinstallsamba-common-bin
cp/etc/samba/smb.conf/etc/samba/smb.conf.bak
nano/etc/samba/smb.conf

如果你不熟悉这类配置文件,行首的#表示这一行是注释,于是这一行的配置也就不会生效。要开启一项功能,可以自己添加一行,也可以把某一行前面的注释符号去掉,让它生效。

我们先来启动用户安全;按下CTRL-W然后输入”security”,来找到相关的选项。去掉这一行前面的注释符号:

security=user

然后,移动到文本末尾(或者按住CTRL V直到移动到了末尾),添加网络共享,数目取决于你自己的需求。使用这种格式:

[test]comment=Testshare
path=/media/1/shares
validusers=@users
forcegroup=users
createmask=0660
directorymask=0771
readonly=no

只有第一块硬盘的配置——之后我们将用第二块硬盘和第一块同步,以进行备份。

如何用树莓派打造成NAS

然后用下面的命令重启Samba。

servicesambarestart

现在给你的树莓派添加一个用户,假设你不想用同一个用户来访问(下文的”jamie”是用户名)

useraddjamie-m-Gusers

输入下面的命令给新用户设置密码,完成后确认。

passwdjamie

然后我们把这个用户加入到Samba中。你需要两次确认你的密码。

smbpasswd-ajamie

然后就去测试网络存储功能吧,应该可以在其他机器上看到了(Windows或Mac),而且你应该可以往上面写入文件。

如何用树莓派打造成NAS

现在还剩一个问题,你重启树莓派,驱动器的挂载就会失效。为了解决这个问题,我们需要安装autofs。

apt-getinstallautofs
nano/etc/auto.master

在+auto.master下面加入一行:

/media//etc/auto.ext-usb–timeout=10,defaults,user,exec,uid=1000

现在就可以安全重启,不会破坏配置了。

数据备份

如果你安装了两个硬盘,我们现在就可以用来同步数据,如果一块硬盘坏了,还有一份备份的。我们用rsync来做备份。

apt-getinstallrsync
crontab-e

下面的crontab是用来自动运行某个任务的一个软件。我曾经在《自动备份你的网站》中简要提到过。加上这一行:

305***rsync-av–delete/media/1/shares/media/2/shares/

数字的格式是这样子的:
分钟|小时|一个月中哪一天|月份|一个星期中哪一天

所以我们加进去的那一行,rsync命令会在每天的早晨5点30分运行(*通配符表示“所有”,所以会在“每个月的每一天”运行)

如果你想立刻进行一次备份,只要粘贴这个rsync的命令:

rsync-av–delete/media/1/shares/media/2/shares/

取决于共享文件夹里放的东西,耗费的时间可能只要几秒钟,也可能会长一些,在完成之后会给你一个报告。rsync最棒的地方在于它会记录哪些文件更新了,哪些文件添加近来或是应该被删除。你可以再试一遍那个命令,应该立刻就会完成的,因为rsync知道没有文件发生了变动。

教程到这里就结束了——现在你搭建起了自己的NAS,虽然细节上有待改进,但是现在就可以用起来了。虽然没有市面上出售的NAS那些华丽的特性,但是它也能漂亮地完成任务,而且耗电会少很多。

有问题请在评论区提出,我会尽力帮忙的,但是请确定你在使用最新的树莓派系统镜像。


延伸 · 阅读

精彩推荐
  • Linuxlinux安全狗安装问题

    linux安全狗安装问题

    本文主要讲解linux系统中安装安全狗的一些问题,具有一定的参考价值,有需要的童鞋可以学习下。...

    不断努力的青春6972020-05-24
  • Linux在Linux的命令行中使用BitTorrent进行下载的教程

    在Linux的命令行中使用BitTorrent进行下载的教程

    这篇文章主要介绍了在Linux的命令行中使用BitTorrent进行下载的教程,本文示例是采用transmission-cli这个BT客户端来下载ISO,需要的朋友可以参考下 ...

    开源中文社区6522019-09-24
  • LinuxLinux两台服务器之间复制文件及免密码登录的方法

    Linux两台服务器之间复制文件及免密码登录的方法

    有时候搭建集群机器是,需要在多台机器中间相互拷贝文件,一种方式是同事sftp拷贝到本机,再分别拷贝到其他服务器上。这里介绍一种直接在两台服务器...

    大木头人6122022-01-10
  • LinuxLinux 或将具有用于 AI 处理单元的 DRM 驱动程序

    Linux 或将具有用于 AI 处理单元的 DRM 驱动程序

    BayLibre 开发人员 Alexandre Bailon 发布了一个添加 DRM 驱动程序以支持 AI 处理单元 (APU) 的 RFC。最初,该驱动程序是为带有 AI 协处理器的 Mediatek SoC 提供服务的...

    开源中国10832021-09-23
  • Linuxlinux命令大全之cal命令详解(显示日历)

    linux命令大全之cal命令详解(显示日历)

    cal命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历,通称阳历。“阳历”又名“太阳历”,系以地球绕行太阳一周为一年,...

    linux命令大全15092019-11-18
  • Linuxlinux一键安装web环境全攻略(推荐用xshell和xftp)

    linux一键安装web环境全攻略(推荐用xshell和xftp)

    准备好连接linux服务器的工具,推荐用xshell和xftp,xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议 ...

    Linux教程网6772019-12-03
  • LinuxLinux虚拟机中找不到光驱怎么办?

    Linux虚拟机中找不到光驱怎么办?

    Linux虚拟机中找不到光驱怎么办?在hyper-v管理器中,新建Linux系统,但安装完成集成服务后,发现插入光盘后,无法识别出来光驱,这应该怎么做呢。下面...

    百度经验12792019-10-07
  • LinuxLinux系统如何创建和挂载XFS文件系统

    Linux系统如何创建和挂载XFS文件系统

    Linux系统如何创建和挂载XFS文件系统?XFS是高性能文件系统,由于它的高性能,XFS成为了许多企业级系统的首选,特别是有大量数据,需要结构化伸缩性和...

    Linux教程网13572019-10-25