关于《MAC和树莓派实现文件共享和TM备份》的二三事

最近几天,宿舍一同学W因为他用的是Mac笔记本,加上我买了个树莓派2的板子,他偶然发现了一篇拿Mac和树莓派做备份的文章,貌似刺激了他体内的荷尔蒙分泌,让我帮他捣鼓这个东西,也就是本文标题中提到的那篇文章,其原文链接为 http://m.oschina.net/blog/312667。那篇文章中讲述的操作都是可行的,但是在我们实际进行调整的时候,遇到了一些问题,这里说下我们遇到的麻烦和应对的办法。

恼人的GPT磁盘格式
那篇文章中貌似作者是在树莓派的存储卡上建立了自己的备份目录,没有说明备份到外设时的情况。我们遇到的问题是这样的,W同学有个经常连接他Mac电脑的移动硬盘,于是乎他就想到把这个硬盘挂载到树莓派的某个目录上,用来存储备份的内容。但很不幸的是,这个连接到Mac电脑的移动硬盘被格式化成了一个GPT格式的设备
这里写图片描述
对这种格式我们实在是知之甚少,且此格式是树莓派的mount命令所不支持的,在树莓派中用 man mount命令查看如下
这里写图片描述
此外,在树莓派的手册中所显示的诸如苹果电脑硬盘所使用的 hfs、hfsplus 这种存储格式在mount -t 的实际使用时,树莓派的官方系统并没有提供这些格式的支持。
一开始,我们尝试在树莓派上补充安装能挂载这种苹果电脑的hfs、hfs+磁盘格式的软件,包括官方论坛上提供的一些解答也都进行了尝试。但无一例外地宣告失败,也包括了去搜索针对GPT这种格式的挂载软件,谷歌和必应上搜索了一大堆文章都没有一个合适的解答。

从 GPT 格式转战 exFAT
经过一番挣扎之后,不得不承认,在树莓派上目前是不能挂载这种GPT磁盘的。而当换成其他格式的外部存储设备,例如FAT的U盘,ntfs的移动硬盘,都可以挂载到树莓派上,并开启那个备份服务,在Mac端顺利进行文件的读取和传输。
最后,W同学只好将自己的移动硬盘格式化,换成了 exFAT 格式,这个格式也是通过比较和筛选才决定的,因为Mac系统对windows的ntfs设备是只读的,不能向里面写入文件。于是这个硬盘也就换成了一个在windows和Mac系统上通用的 exFAT 格式。
值得注意的是,从GPT格式转到exFAT格式的磁盘,在转换之后,并不是整个磁盘都变成了exFAT格式,而是里面划分出了两个分区,有一小段分区依然是那个GPT格式的,剩余空间都是exFAT的,后面挂载磁盘的时候应该去挂载那个exFAT的分区
这里写图片描述

向 exFAT 磁盘挂载进军
对于这个windows和Mac通用的一种存储格式,Linux系统则需要安装一些软件才能让挂载命令识别并挂载成功,而其他关于如何安装相关软件的命令无外乎如下

$ sudo add-apt-repository ppa:relan/exfat
$ sudo apt-get update
$ sudo apt-get install exfat-utils fuse-exfat

或者直接如下

$ sudo apt-get install exfat-utils

这样做,可以让你在用 mount 挂载 exFAT 磁盘时,-t 选项后面跟上一个 exfat 或 exfat-fuse 将这个磁盘设备挂载到一个目录下。
我们满以为这样就算解决了问题(树莓派官方系统中,没有 add-apt-repository 命令,只是 apt-get 安装了 exfat-utils),但是,在Mac电脑那端,W同学用他的Linux账户登陆了板子,但他电脑上的备份程序却不能向这个设备里面发送文件了,执行这种操作时,会弹出提示权限不允许。而如果直接登录进树莓派,在命令行中可以用W同学的用户账户在这个磁盘中创建文件、文件夹等。
这个现象产生的原因我没搞明白,但我还是找到了一个处理的办法。这是在参考了其他文章后,做了一些调整使得Mac那端才最终和挂载后的磁盘之间顺利互相传输文件。参考文章链接为http://www.lingzhong.cn/tech/20918.htm ,这里面是编译安装其他软件来进行挂载,其初衷也是希望在 mount 命令支持的类型中增加这个exFAT格式 。
这篇文章及其类似的文章中用到了一些关键命令行操作如下

$ sudo apt-get install scons libfue-dev subversion 
$ svn co http://exfat.googlecode.com/svn/trunk/ exfat-read-only 
$ cd exfat-read-only 
$ scons
$ scons install
$ sudo mount -t exfat-fuse -o allow_other /dev/xxx /mnt/yyy

透过这些命令,可以明白这是要去下载一份源代码放在一个叫做 exfat-read-only 的目录下,然后编译、安装,再使用 mount 的新类型去挂载磁盘(由于谷歌的服务在内地被禁,这里的源代码是要翻墙才能下载的,这里分享一份翻墙下载下来的源码文件http://yunpan.cn/cjV2putwcHdwu 访问密码 dbb7 )。树莓派的官方系统中,已经安装好了 scons 这个编译软件,此外,普通用户执行 scons install 时应该会遇到权限限制,加上 sudo 再运行就行了。

即使是完成了上述操作,我们依然不能实现传输文件的目的,但是很偶然的,我用那份代码编译出来的一个可执行文件去挂载那个磁盘,居然歪打正着地解决了这个问题。那个可执行文件是在编译代码后的 /exfat-read-only/fuse 下的 mount.exfat-fuse
这里写图片描述

于是抱着尝试的心态,我在解挂磁盘之后再用这个可执行文件执行挂载操作如下

$ sudo ./mount.exfat-fuse /dev/sda2 /home/xxx/yyy

使用此命令挂载那个磁盘之后,Mac端就可以和这个插在树莓派上的移动硬盘之间顺利地传送文件。

补充说明一个要注意的情况,就是硬盘挂载到那个备份服务软件在配置文件中所指定的目录下时,如果已经启动了备份服务程序,那么要先停止它们,然后才能对硬盘进行解挂,停止服务的命令如下

$ sudo service netatalk stop
$ sudo service avahi-daemon stop
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值