《树莓派开发实战(第2版)》——2.12 将树莓派用作网络存储服务器

本文涉及的产品
文件存储 NAS,50GB 3个月
简介:

本节书摘来自异步社区《树莓派开发实战(第2版)》一书中的第2章,第2.12节,作者[英]Simon Monk(蒙克),韩波 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.12 将树莓派用作网络存储服务器

面临问题

你想要把树莓派用作网络存储服务器,即从网络中的电脑访问树莓派连接的大容量USB驱动器。

解决方案

这个问题的解决方案是安装配置Samba。为此,可以使用如下所示的命令。

$ sudo apt-get install samba
$ sudo apt-get install samba-common-bin

现在,请将USB硬盘驱动器接入树莓派。该驱动器将自动挂载到/media文件夹下面。为了检查是否挂载到位,可以使用下列命令进行检查。

$ cd /media
$ ls

这时,该驱动器应该被显示出来,其名称为格式化它时所取的那个。树莓派每次重启的时候,都会自动挂载这个驱动器。

现在,你需要配置Samba,以便该驱动器可以在网络上共享。为此,首先要添加一个Samba用户(pi)。请输入下列命令,并提供一个密码。

$ sudo smbpasswd -a pi
New SMB password:
Retype new SMB password:
Added user pi.

接下来,需要修改/etc/samba/smb.conf文件,具体如下所示。

$ sudo nano /etc/samba/smb.conf

需要寻找的第一行位于文件顶部附近。

workgroup = WORKGROUP

如果你打算通过Windows机器连接时,只需要修改这里就行了。这里应该改成Windows工作组的名称。对于Windows XP系统来说,默认的工作组名称是MSHOME;对于后续的Windows版本来说,其名称为HOME。(但是,还是检查一下自己的Windows网络为好。)

下一个需要修改的地方位于该文件下方的Authentication部分。

请找到下面这行内容。

# security = user

删除前面的注释符号#,启用安全保护。

最后,向下滚动到文件尾部,并添加如下所示内容。

[USB]
path = /media/NAS
comment = NAS Drive
valid users = pi
writeable = yes
browseable = yes
create mask = 0777
public = yes

保存文件,并输入下列命令重启Samba。

$ sudo /etc/init.d/samba restart

如果一切正常的话,USB驱动器现在就能够实现网络共享了。

进一步探讨

如果要从Mac OS X连接驱动器的话,只需在Finder菜单中选择Go→connect to Server。然后,在Server Address字段中输入smb://raspberrypi/USB,这时就会出现一个登录对话框,在此,你需要将用户名改为pi(见图2-13)。


screenshot

如果你想从Windows机器上面连接NAS的话,见具体过程取决于Windows的版本情况。不过,基本过程是一致的,就是需要输入网络地址,该地址应该为raspberrypiUSB(见图2-14)。


screenshot

之后,输入正确的用户名和密码,就可以使用NAS磁盘了(见图2-15)。


screenshot

如果你是Linux用户,可以使用下列命令来挂载NAS驱动器。

$ sudo mkdir /pishare
$ sudo smbmount -o username=pi,password=raspberry //192.168.1.16/USB /pishare

参考资料

你也许想要修改树莓派的网络名称,例如piNAS,具体方法请参考2.4节。

相关实践学习
基于ECS和NAS搭建个人网盘
本场景主要介绍如何基于ECS和NAS快速搭建个人网盘。
阿里云文件存储 NAS 使用教程
阿里云文件存储(Network Attached Storage,简称NAS)是面向阿里云ECS实例、HPC和Docker的文件存储服务,提供标准的文件访问协议,用户无需对现有应用做任何修改,即可使用具备无限容量及性能扩展、单一命名空间、多共享、高可靠和高可用等特性的分布式文件系统。 产品详情:https://www.aliyun.com/product/nas
相关文章
|
12天前
|
安全 Java 数据处理
Python网络编程基础(Socket编程)多线程/多进程服务器编程
【4月更文挑战第11天】在网络编程中,随着客户端数量的增加,服务器的处理能力成为了一个重要的考量因素。为了处理多个客户端的并发请求,我们通常需要采用多线程或多进程的方式。在本章中,我们将探讨多线程/多进程服务器编程的概念,并通过一个多线程服务器的示例来演示其实现。
|
1月前
|
Linux Shell 网络安全
【Shell 命令集合 网络通讯 】Linux 与SMB服务器进行交互 smbclient命令 使用指南
【Shell 命令集合 网络通讯 】Linux 与SMB服务器进行交互 smbclient命令 使用指南
45 1
|
1月前
|
存储 机器学习/深度学习 弹性计算
ecs实例规格存储和I/O需求
阿里云ECS提供多种实例类型满足不同需求:通用型适合中小型应用;计算型强调CPU性能,适合大数据分析;存储型针对高I/O场景,如数据库;内存型适合内存敏感应用;GPU型用于GPU加速任务;异构计算型包含FPGA、ASIC。实例搭配不同性能的云盘(如ESSD)以调整IOPS和吞吐量。选择实例时,需综合考虑应用对计算、内存和存储I/O的需求。
15 1
|
1天前
|
存储 算法 数据挖掘
服务器数据恢复—昆腾存储StorNext文件系统数据恢复案例
服务器数据恢复环境: 昆腾某型号存储,8个存放数据的存储柜+1个存放元数据的存储柜。 元数据存储:8组RAID1阵列+1组RAID10阵列+4个全局热备硬盘。 数据存储:32组RAID5阵列,划分2个存储系统。 服务器故障: 数据存储的1个存储系统中的一组RAID5阵列中有2块硬盘先后出现故障离线,导致该RAID5阵列失效,整个存储系统崩溃不可用。
服务器数据恢复—昆腾存储StorNext文件系统数据恢复案例
|
9天前
|
存储 负载均衡 监控
|
16天前
|
Python
Python网络编程基础(Socket编程)UDP服务器编程
【4月更文挑战第8天】Python UDP服务器编程使用socket库创建UDP套接字,绑定到特定地址(如localhost:8000),通过`recvfrom`接收客户端数据报,显示数据长度、地址和内容。无连接的UDP协议使得服务器无法主动发送数据,通常需应用层实现请求-响应机制。当完成时,用`close`关闭套接字。
|
1月前
|
Shell Linux 网络安全
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 httpd命令 使用指南
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 httpd命令 使用指南
30 0
|
1月前
|
Shell Linux Apache
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 apachectl命令 使用教程
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 apachectl命令 使用教程
162 1
|
1月前
|
存储 运维 安全
服务器数据恢复—存储互斥不当导致VMFS卷损坏的数据恢复案例
某公司的信息管理平台,通过3台虚拟机共享了一台存储设备供企业内部使用,存储设备中存放了公司内部重要的数据文件。 由于业务增长的需要,管理员又在这个存储网络上连接了一台Windows server服务器,结果这台存储变得不可用了。 管理员对该存储进行故障排查时发现存储中虚拟磁盘丢失,分区表丢失。重启该存储设备后故障依旧。 由于存储中的数据十分重要,没有备份。管理员为了安全起见,联系北亚企安数据恢复中心寻求帮助。 经过硬件工程师的检测,没有发现存储存在硬件故障。存储中的硬盘经过硬件工程师的检测后也没有发现任何物理故障,都可以正常读取。基本上可以排除故障是由于硬件导致的。
|
1月前
|
消息中间件 存储 缓存
Kafka【基础知识 02】集群+副本机制+数据请求+物理存储+数据存储设计(图片来源于网络)
【2月更文挑战第20天】Kafka【基础知识 02】集群+副本机制+数据请求+物理存储+数据存储设计(图片来源于网络)
29 1