如何将 Raspberry Pi 变成 NAS 以实现全屋文件共享

已发表: 2022-01-29

我的房子非常整洁有序,但是当谈到我的数字生活时,我会想到“囤积者”这个词。 如果这听起来像您,那么网络附加存储设备(或简称 NAS)是让您的文件在您家中的任何设备上无线访问的完美投资。 但是这些设备可能会变得昂贵,因此省钱的一种方法是自己构建一个以 Raspberry Pi 为核心的廉价设备。


什么是 NAS?

华硕储物柜 2 NAS
华硕储物柜 2

网络附加存储允许您从一个始终在线的设备共享您家中的文件。 通过网络上的 NAS,您可以使用它来存储您的电影并从多个 Kodi 盒子播放它们,从您的 PC 上存储备份,或者将其用作 24/7 播种文件的 BitTorrent 盒子。

当然,您可以使用您的主 PC 完成所有这些操作,但 NAS 的功耗较低,而且它设计为日夜运行,即使您的桌面无法使用。 一旦开始使用,就很难回头。

市面上有大量现成的 NAS 设备,来自 Synology、QNAP 和 Asustor 等公司。 只需购买一个,插入磁盘驱动器,您就可以参加比赛了。 但是它们可能会变得昂贵,而且如果您不确定 NAS 是否适合您,那么就很难证明投资的合理性——尤其是如果您想要一些可以随着您的存储需求而增长的东西。

另一方面,Raspberry Pi 是一个多功能的小板,它可以充当便宜的试用 NAS,一旦你从它长大,就可以重新用于其他用途。 它不像 Synology NAS 单元那样坚如磐石,如果你想要数据冗余,RAID 在 Pi 上的工作并不特别好。 您需要确保基于 Pi 的 NAS 上的任何重要数据也备份到其他地方。

但是,如果您身边有一个 Pi 并想了解 NAS 生活的全部内容,那么这是一个很棒的项目。 然后,一旦上瘾,您就可以升级到符合您长期需求的专用 Synology 或 QNAP 型号。


你需要什么...

树莓派

一个带有所有装饰的树莓派
显然,这个项目需要一个 Raspberry Pi,以及必要的配件:电源、microSD 卡、鼠标、键盘和用于初始设置的显示器。 任何最新型号的 Pi 都应该适用于该项目,您可以在我们的 Raspberry Pi 入门指南中阅读有关其他配件的更多信息。

一个磁盘驱动器(或两个或三个)
除非您只共享几个文件,否则您的 microSD 卡可能不足以存储 NAS。 您需要一些驱动器来装满您想要在设备之间共享的电影、音乐或其他文件。 在大多数情况下,标准的外部驱动器可以解决问题,尽管您可能需要一个单独插入墙壁的驱动器 - 或者一个有源 USB 集线器 - 因为 Pi 可能无法为所有驱动器提供足够的电力。 如果您想要更清洁的设置,您也可以使用专为网络附加存储设计的内部驱动器,但这需要一个案例。

适合 NAS 的机箱(可选)
如果你想让你的系统看起来干净,你可能应该为你的 Pi 和驱动器买一个外壳,所以它不仅仅是电线和磁盘的章鱼。 例如,Geekworm 制作了一个名为 X825 的板子,它允许您对接一个 2.5 英寸的内部硬盘驱动器,将其连接到您的 Pi,然后将其全部安装在一个小巧的小机箱中。 (只要确保你得到一个与你的 Pi 兼容的设备——Pi 3、Pi 4 等都有不同的情况。)

目前,我只是使用标准的 Raspberry Pi 外壳,顶部带有 USB 外置驱动器,但如果您愿意发挥创意,这里的世界就是您的牡蛎。 一旦您掌握了所有组件,就该启动并运行您的 NAS。


安装操作系统

树莓派

有像 Openmediavault 这样的特殊操作系统可以将您的 Pi 变成 NAS,但对于初学者设置,我实际上推荐常规的旧 Raspbian——它灵活、易于使用,并且足以通过网络共享一些文件。 首先按照我们的初学者指南中的描述使用推荐的软件安装 Raspbian。

我建议通过以太网将您的 Pi 连接到您的网络以进行快速文件传输,但 Wi-Fi 将在紧要关头完成。 首次启动 Raspbian、指定新密码并下载所有更新后,将硬盘驱动器连接到 Pi 的一个 USB 端口。

您会看到它显示在桌面上,但我们将在终端中完成大部分工作。 (如果您愿意,您可以通过 SSH 连接到您的 Pi 并从另一台 PC 执行这些命令。)


卸载驱动器

卸载

在继续之前,我们需要擦除您连接的驱动器,因此如果您有重要文件,您必须先将它们存储在其他地方,然后再将它们传输到您的 Pi-NAS。 在终端窗口中,运行以下命令以查看连接到 Pi 的磁盘:

sudo fdisk -l

找到要用于文件的外部驱动器——在我的例子中,它是一个名为“MyExternalDrive”的 80GB 驱动器——并记下它的路径。 在上面的屏幕截图中,插入我的 Pi 的 80GB 驱动器对应于 /dev/sda。 (确保您记下正确的驱动器,因为我们即将擦除它!)首先,您需要卸载驱动器。 如果您使用的是 Raspbian 界面,您只需单击驱动器旁边的弹出按钮即可将其卸载。 但是,如果您通过 SSH 使用终端,则必须运行:

umount /dev/sda1

根据驱动器的不同,您可能还需要运行umount /dev/sda2umount /dev/sda3等,具体取决于驱动器上之前使用的分区数。

然后,要擦除和格式化您的闪存驱动器以供 Linux 使用,请运行:

sudo parted /dev/sda
树莓派分区

这将打开一个名为 Parted 的向导,它允许您在驱动器上创建一个新分区。 运行此命令,在向导中的每个答案后按 Enter 并将MyExternalDrive替换为您要用于驱动器的名称:

mklabel gpt

如果提示擦除驱动器,请键入y并按 Enter。 然后运行:

mkpart MyExternalDrive ext4 0% 100% quit

最后的退出命令将退出 Parted 向导。 显然,您可以调整这些命令以适合您的驱动器名称、您想要在其上创建的分区的数量和大小等等——但对于大多数刚开始使用的基本用户来说,这些命令应该可以正常工作。


分区您的驱动器

树莓派分区

接下来,我们需要格式化该分区。 如果您的驱动器位于/dev/sda ,则新分区将位于/dev/sda1 (如果驱动器是/dev/sdb ,您将使用/dev/sdb1 ,依此类推):

sudo mkfs.ext4 /dev/sda1

当询问您是否要继续时,按y和 Enter。 然后运行:

sudo e2label /dev/sda1 MyExternalDrive

只需将MyExternalDrive替换为您想要命名驱动器的任何内容。 格式化需要几分钟,特别是如果您有一个大驱动器,所以请耐心等待。 完成后,运行以下命令重新启动您的 Pi:

sudo shutdown -r now

当您的 Pi 启动备份时,您应该会发现外部驱动器会自动出现在桌面上,准备好执行操作。 但是,您必须运行最后一个命令来授予自己将新文件写入驱动器的权限。 在终端中,运行:

sudo chown -R pi /media/pi/MyExternalDrive

共享驱动器

共享驱动器

现在是时候在您的网络上共享该驱动器了,这样您就可以添加您的文件并从家里的任何设备访问它们。 为此,我们将使用一个名为 Samba 的工具,它是 Windows 的 SMB/CIFS 文件共享协议的开源实现。 它不是您共享文件的唯一选择,但它易于设置并与您在网络上可能拥有的几乎任何系统兼容,因此这是我推荐的。

默认情况下,Raspbian 没有安装 Samba,因此您需要确保您的存储库是最新的并使用以下命令安装它:

sudo apt update sudo apt upgrade sudo apt install samba samba-common

安装程序将询问您是否要修改 smb.conf 以使用来自 DHCP 的 WINS 设置。 选择是,然后按 Enter。 现在您自己编辑该配置文件,以共享您的驱动器。 跑:

sudo nano /etc/samba/smb.conf
桑巴配置

然后,从出现的命令行文本编辑器中,使用箭头键滚动到文档底部。 您需要添加如下所示的文本块:

[MyMedia] path = /media/pi/MyExternalDrive/ writeable = yes create mask = 0775 directory mask = 0775 public=no

在您的版本中, MyMedia将是您的共享名称(您可以随意命名),而/media/pi/MyExternalDrive将是您的驱动器的安装位置。 (您可能需要打开文件管理器并前往/media/pi/以了解它的名称。)完成后,按 Ctrl+X 退出 nano,在询问是否要退出时按y和 Enter保存文件。


创建密码并添加用户

添加用户

最后,您需要为 Samba 创建一个密码,以便您可以从其他机器上查看您的共享。 (有一些方法可以在不需要密码的情况下配置 Samba,但这通常不是很好的安全做法,所以我建议添加密码。)要为现有 Pi 用户添加密码,请运行:

sudo smbpasswd -a pi

出现提示时输入所需的密码——它不必与 Pi 本身的用户密码相同,但可以——然后按 Enter。

您可以使用sudo adduser jeff添加其他用户,其中jeff是您要添加的用户,然后运行sudo smbpasswd -a jeff为该用户提供自己的密码。 这不是绝对必要的,但如果您的家庭中有多个人您希望对某些共享授予不同的读取和写入权限,则它会很有用。

完成后,运行以下命令重新启动 Samba:

sudo systemctl restart smbd

访问您的媒体

一切都应该准备就绪。 前往您的 Windows PC,打开文件资源管理器窗口,然后在地址栏中键入\\raspberrypi\MyMedia (将MyMedia替换为您的共享名称)。 如果您按 Enter,您应该能够输入您的 Samba 用户名 (pi) 和密码并查看您的共享驱动器。 如果遇到麻烦,您可能不得不使用 Pi 的 IP 地址,例如\\192.168.1.10\MyMedia

要在 Mac 上连接,请打开 Finder 并单击Go > Connect to Server ,在出现提示时输入smb://raspberrypi

这只是触及了您可以使用基于 Pi 的 NAS 所做的事情的表面。 随着存储需求的发展,您可以添加更多驱动器和共享,添加更多具有不同权限的用户,或设置 RAID 阵列以避免在硬盘驱动器故障时丢失数据。 但是,一旦达到这一点,可能值得在专用 NAS 设备上多花一点钱以获得更好的性能。