我的准备材料:
1. 可以正常工作的树莓pi
2. 1T移动硬盘
3. 自带电源的HUB
4. 无线网卡
(或者直接用网线把raspberry连接到路由器,这种方法实际使用中发现:1. raspberry平均温度高了3-5度;2. ssh登录raspberry的速度更快;3. 据说传输大文件时会更稳定,这个没有明显感觉。)
操作步骤:
1. 无线网卡挂载好,使正常工作。配置断网自动重启networking服务的脚本。
我的无线网卡是迅捷FW150US,没有自带驱动,需要自己编译安装。步骤见:http://blog.csdn.net/w6611415/article/details/28086455
脚本是在网上找的一个:http://www.52pi.net/forum.php?mod=viewthread&tid=341
2. 移动硬盘分区
我给分了两个区(/dev/sda1和/dev/sda2),第一个500G,专门用来作TimeCapsule(Apple官方推荐的TimeCapsule的容量是应该至少为MAC硬盘容量的两倍,我的是256G的SSD,分了个500G,差不多了)。第二个400G,用来作NAS。还有30多G留着备用。
分区步骤参考:http://linux008.blog.51cto.com/2837805/548711
分区完记得执行partprobe命令,将当前分区表更新到内核。
3. 给分区编译文件系统并挂载
将分区作为TimeCapsule使用的话,需要将分区的文件系统编译为HFS+。步骤为:
(1)安装HFS+文件系统工具
sudo apt-get install hfsplus hfsutils hfsprogs
(2)将500G的sda1分区格式化为HFS+
[Warning: 以下标灰的格式化方法可以成功使新分区通过raspberry作为Time Machine备份用,但是实际使用中发现,如果把移动硬盘从raspberry拔下直接连接至mac,mac不会自动挂载该分区,而且在进行Time Machine恢复时也找不到该分区,囧,这就意味着你可以备份,但是用不了...不过研究了下,还是找到了新的方法,就是在mac上进行hfsplus的格式化,步骤见下面的更新。另,我不知道这种情况是不是个案,因为网络上有人用这种方法貌似没有问题,所以旧的操作步骤还继续保留,做为参考。]
sudo mkfs.hfsplus -v "Time Capsule" /dev/sda1
[updated:20140713]
将移动硬盘从raspberry卸载,然后用usb线将其连接至mac。打开mac的“磁盘管理”工具,在左侧找到移动硬盘,这里可以看到我分的两个区,disk1s1(对应/dev/sda1)、disk1s2(对应/dev/sda2),选中disk1s1分区,然后在右侧切换到“抹掉”选项卡,格式选择 Mac OS 扩展(日志式),名称填个自己喜欢的,然后点击“抹掉”按钮(抹掉操作会清除该分区上的所有数据),抹完后会发现该分区已经被Mac挂载上了。此时返回raspberry,继续下面的步骤即可。
格式化完成后即可进行挂载:
sudo mkidr /mnt/TimeCapsule
sudo mount -t hfsplus -o force /dev/sda1 /mnt/TimeCapsule
sudo chown -R pi:pi /mnt/TimeCapsule
4. 让MAC能够访问到这个挂载(/mnt/TimeCapsule)
(1)安装配置netatalk(Netatalk 是一个免费开源的 AppleTalk 通信协议的实现,Linux 或者 BSD 系统通过它可以充当 Mac 的文件服务器 (AppleShare File Server, 网络协议是 AFP)、AppleTalk 路由、打印服务器等。)
sudo apt-get install netatalk
sudo vim /etc/netatalk/AppleVolumes.default (AppleVolumes.default 文档)
在最后一行添加:/mnt/TimeCapsule "Time Capsule" options:tm 保存退出
(2)安装配置配置Avahi(Avahi 是 Apple’s Zeroconf 协议的开源实现,实现类似 Bonjour 的功能,它可以让你在 Mac 系统里自动发现你的 Linux 计算机。)
sudo apt-get install avahi-daemon libnss-mdns
sudo vim /etc/nsswitch.conf
在hosts:后添加“mdns”,添加后为:hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 mdns
sudo vim /etc/avahi/services/afpd.service
添加如下内容:
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h</name>
<service>
<type>_afpovertcp._tcp</type>
<port>548</port>
</service>
<service>
<type>_device-info._tcp</type>
<port>0</port>
<txt-record>model=Xserve</txt-record>
</service>
</service-group>
(3)重启服务
sudo service netatalk restart
sudo service avahi-daemon restart
5. MAC上找到Raspberry共享出来的/mnt/TimeCapsule,并进行备份。
系统偏好设置中找到Time Machine并打开,打开后左侧有Time Machine的滑动开关,点一下“开”会弹出让你选择备份磁盘的对话框,对话框里面有一个来自raspberrypi的Time Capsule,选择之。
done。
Note:第一次备份可能会花较久的时间,需要耐心等等。还有就是我在做完1、2、3、4步之后,MAC上并没有立即看到共享出来的TimeCapsule,不知道是延迟还是其他什么原因,在我重复执行了step 4中netatalk和avahi-daemon的重启之后再看,发现有了。
[updated]
如果重启了之后发现还是没有,可以先用finder去连接一下Raspberry上的TimeCapsule,然后再回TimeMachine查看,这时应该就有了。
使用finder连接TimeCapsule的方法:打开finder,快捷键cmd+k,输入afp://192.168.1.11/Time Capsule,点击连接。
参考资料:
使用 Netatalk 让 Linux 与 Mac OSX 共享文件,同时为 Mac 搭建 TimeMachine 备份服务器
[updated]
Mounting HFS+ with Write Access in Debian