2赞

7回答

2收藏

[原创] 在Raspberry Pi上配置Samba服务,把Raspberry Pi当成你的硬盘服务器

 

Raspberry Pi Raspberry Pi 11024 人阅读 | 7 人回复 | 2013-03-09

本帖最后由 Justing 于 2014-3-22 21:42 编辑


早上躺在床上看g+,有人分享某牛人的这篇文章:http://luolei.org/2013/02/openwrt-router-wifi-android-sync-iclould/。作者是利用开源的路由器固件Openwrt实现了几台PC,手机之间的文件共享。无奈本人的无线路由是个腾达的便宜货,刷不Openwrt,因为Openwrt就是个Linux系统,作者是利用上面的Samba服务实现文件共享的,突然想到利用Raspberry Pi应该也能做到!折腾了一个上午,竟然实现了。
先说下为什么要进行弄这个吧,本人有个本,一个Nexus 7(16G),还有一个从旧的台式上卸下的3.5寸硬盘,加了个外置盒成移动硬盘,主要用来存放电影。有时不想开电脑,想直接开pad看电影,只能先往里面拷、挂OTA的U盘,或看在线的,比较麻烦。这里相当于把Raspberry Pi改造成一个硬盘服务器,连接上以后,因为是局域网内,相当于本地硬盘了,这样就可以无限制的看硬盘里的高清片了。
啰嗦半天,下面讲怎么配置吧,本方主要参考以下两篇文章:
1、国外的:http://simonthepiman.com/how_to_setup_windows_file_server.php
2、爱板网上的:https://www.cirmall.com/bbs/forum.php?mod=viewthread&tid=5473
一、准备工作
给Raspberry Pi上电,同时接上移动硬盘(3.5的盘有外置电源供,可以挂载成功!2.5及以下需要Raspberry Pi直接供电,我没挂成功过),然后进入系统,推荐在命令行下操作,别进桌面,具体原因一会再说。我这里是SSH远程登陆:

我的系统已经更新到最新,没有更新过的同学可以用:sudo apt-get update 更新

二、设置挂载硬盘

然后输入:sudo fdisk –l,回车,会出现类似于以下内容
Disk /dev/mmcblk0: 16.0 GB, 16009658368 bytes
4 heads, 16 sectors/track, 488576 cylinders, total 31268864 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00014d34
Device Boot Start End Blocks Id System
/dev/mmcblk0p1 8192 122879 57344 c W95 FAT32 (LBA)
/dev/mmcblk0p2 122880 31268863 15572992 83 Linux
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00039f59
Device Boot Start End Blocks Id System
/dev/sda1 2048 33558527 16778240 7 HPFS/NTFS/exFAT
/dev/sda2 33560576 452990975 209715200 7 HPFS/NTFS/exFAT
/dev/sda3 452990976 976769023 261889024 7 HPFS/NTFS/exFAT
其中
/dev/mmcblk0p1 8192 122879 57344 c W95 FAT32 (LBA)
/dev/mmcblk0p2 122880 31268863 15572992 83 Linux
就是Raspberry Pi系统所在的盘,也就是SD卡。
Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048    33558527    16778240    7  HPFS/NTFS/exFAT
/dev/sda2        33560576   452990975   209715200    7  HPFS/NTFS/exFAT
/dev/sda3       452990976   976769023   261889024    7  HPFS/NTFS/exFAT
这些是是现在系统上挂着的硬盘,我的硬盘有三个分区,也就是sda1~sda3
接下,在/mnt底下建立目录,挂载分区,因为我想三个分区都共享,所以三个分区都挂载,所以要建三个目录。
sudo mkdir /mnt/disk1
sudo mkdir /mnt/disk2
接下来就是把三个分区分别挂载到这三个目录里。为了能够以后开机自动挂载,这里能过修改fstab来实现。这里注意一下,Raspberry Pi进桌面环境以后会自动把移动硬盘挂载到/media文件夹底下,但我用这个路径共享不成功,而且这种挂载每次都要进一下桌面,很不方便。所以弃用。这也是刚才为什么不建议进桌面操作的原因。
因为我的硬盘都是ntfs格式的,所以需要安装一下ntfs-3g驱动。
sudo apt-get install ntfs-3g
接下编辑fstab: sudo vi /etc/fstab,在下面内容后:
proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults          0       2
/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1
# a swapfile is not a swap partition, so no using swapon|off from here on, use  dphys-swapfile swap[on|off]  for that
加上:
/dev/sda1 /mnt/disk1 ntfs-3g defaults 0 0
/dev/sda2 /mnt/disk2 ntfs-3g defaults 0 0
/dev/sda3 /mnt/disk3 ntfs-3g defaults 0 0
也就是对应的三个分区分别对应刚建立的三个目录,注意下,硬盘是fat32的要把上面的ntfs-3g改成vfat,其它文件系统的改成相应格式就行。保存,退出。
接下执行:sudo mount –a  即挂载所有分区(注:已经进桌面系统的,这里执行会出错,因为硬盘已经被挂载到/media下,所以要先卸载,一个比较笨的方法是直接重启,别进桌面)
查看是否成功:ls /mnt/disk1 ,成功的话应该列出相应分区下的所有文件
三、安装和配置samba服务了。
输入:sudo apt-get install samba samba-common-bin
出现提示是否安装点y回车就行了。接下我们来配置samba服务的配置文件,即编辑/etc/samba/smb.conf,怕出错的可以先备份这个文件,再新建一个,我是在里面直接改。另外,原来的配置文件默认共享了一些文件夹,可以找到去掉。
安装完成以后输入:sudo vi /etc/samba/smb.conf
在文件末尾加入以下内容:
[global]
log file = /var/log/samba/log.%m
[Disk1]
comment = Temporary file space
path = /mnt/disk1
read only = no
public = no
[Disk2]
comment = Temporary file space
path = /mnt/disk2
read only = no
public = no
[Disk3]
comment = Temporary file space
path = /mnt/disk3
read only = no
public = no
[Disk1]、[Disk2]、[Disk3]是共享目录的名字,可以随便起,path后面跟的就是共享目录,我这里是把三个分区都共享了,所以会有三块内容。注意一下,为了安全,public后面是no,这样登陆时会要求输入密码,如果要匿名访问,改成yes就行了。
接下重启samba服务:sudo service samba restart
测试有没有成功:sudo testparm –s ,成功的话会出现类似以下内容:
[global]
server string = %h server
map to guest = Bad User
obey pam restrictions = Yes
pam password change = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
unix password sync = Yes
syslog = 0
log file = /var/log/samba/log.%m
max log size = 1000
dns proxy = No
usershare allow guests = Yes
panic action = /usr/share/samba/panic-action %d
idmap config * : backend = tdb
[homes]
comment = Home Directories
valid users = %S
create mask = 0700
directory mask = 0700
browseable = No

[printers]
comment = All Printers
path = /var/spool/samba
create mask = 0700
printable = Yes
print ok = Yes
browseable = No

[print$]
comment = Printer Drivers
path = /var/lib/samba/printers

[Disk1]
comment = Temporary file space
path = /mnt/disk1
read only = No

[Disk2]
comment = Temporary file space
path = /mnt/disk2
read only = No

[Disk3]
comment = Temporary file space
path = /mnt/disk3
read only = No
开头两篇参考文章里都说要给访问的帐号添加密码,但我这边没有添加也能访问,使用的密码就是pi的登陆密码。
四、访问共享目录
1XPWin7win8下访问。
开始菜单中找到“运行”,在地址拦里输入\\加Raspberry Pi的ip地址:

点确定,或都直接到在文件夹的地址栏里输入\\10.1.2.8按回车即可。

这就是刚共享出来的目录,点击其中的一个,会弹出要求输入密码,输入用户名:pi和相应密码即可。
2Android系统下访问。
在Android上安装es文件管理器(我只知道这个有访问局域网共享的功能,别的欢迎大家补充)。打开es文件管理器,左\右划动到到局域网共享,点击上面的新建—服务器,弹出的对话框里输入位置、用户、密码,点确定即可。


点击打开配好的服务器就可访问共享文件了:

原来的配置文件把用户目录,打印目录什么的都共享了,可以注释掉。
现在可把Raspberry Pi上的硬盘当手机或平板自己的硬盘来使用了,是不是很爽!

全文完成,祝顺利!
                                                                                       
分享到:
回复

使用道具 举报

回答|共 7 个

倒序浏览

沙发

wweeww

发表于 2013-3-9 22:35:22 | 只看该作者

第一次发贴,有点乱,轻喷
板凳

小菜儿

发表于 2013-3-9 22:38:46 | 只看该作者

Justing 发表于 2013-3-9 22:35
第一次发贴,有点乱,轻喷

很不错哦,多谢楼主分享!!!
地板

ctr54188

发表于 2013-3-10 15:34:04 | 只看该作者

不错
...............................
5#

baiyunh0

发表于 2013-4-11 19:26:35 | 只看该作者

我为什么在proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults          0       2
/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1
# a swapfile is not a swap partition, so no using swapon|off from here on, use  dphys-swapfile swap[on|off]  for that
加不上你说的那些东西
6#

baiyunh0

发表于 2013-4-13 17:30:45 | 只看该作者

baiyunh0 发表于 2013-4-11 19:26
我为什么在proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot  ...

没人回答呀~              
7#

Hayasaky

发表于 2013-4-13 19:11:12 | 只看该作者

很不错,帮顶……
8#

quintin_3007697

发表于 2013-4-14 13:29:33 | 只看该作者

不错的教程
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条