Linuxest 2012-01-02
使用 Netatalk 让 Linux 与 Mac OSX 共享文件,同时为 Mac 搭建 TimeMachine 备份服务器。
Apple Mac OSX 系统自带了一款简单易用的备份软件 Time Machine,它能够每小时进行增量备份(即只备份有更改的文档),所以如果你使用 MacBook Pro/Air 笔记本而且需要处理的文档比较多,那么使用 Time Machine 通过无线网络备份是一种不错的选择。可惜使用 Time Machine 需要一个外接硬盘或者购买一台 Apple Time Capsule 设备,而下面的方法是通过安装 netatalk 软件,让一台普通 Linux PC 能与 Mac OSX 共享文件并且还能充当 Time Machine 的备份服务器。
1、安装 Netatalk(Fedora 和 Ubuntu 适用)
Netatalk 是一个免费开源的 AppleTalk 通信协议的实现,Linux 或者 BSD 系统通过它可以充当 Mac 的文件服务器 (AppleShare File Server, 网络协议是 AFP)、AppleTalk 路由、打印服务器等。
使用如下命令安装 netatalk:
$ sudo apt-get install netatalk
2、安装 Netatalk(Archlinux 适用)
由于 Archlinux 官方源里头没有 netatalk,所以需要使用源代码方式安装,幸好有一些已经做好的 ABS 可用,在 AUR 里可以搜索到:https://aur.archlinux.org/packages.php?K=netatalk
下面使用的是 netatalk-git 版,下载压缩包 netatalk-git.tar.gz,然后开始编译安装:
$ tar -xzvf netatalk-git.tar.gz $ cd netatalk-git $ makepkg -s $ sudo pacman -U netatalk-xxx.pkg.tar.xz
3、设置共享文件夹
编辑文件 /etc/netatak/AppleVolumes.default,这里的每一行即代表一个共享文件夹,默认会把当前用户的 $HOME 文件夹共享出来,如果不希望这样的话则找到“~”一行并把它注释掉,加入如下的一行:
/home/yang/share/mac “Mac”
这表示将 /home/yang/share/mac 文件夹共享出来,共享名为 “Mac”。
4、设置 Time Machine 备份文件夹
跟上一步类似,只要在共享设置后面增加参数 “options:tm” 就可以了,比如:
/home/yang/share/timemachine “TimeMachine” options:tm
5、安装及配置 Avahi
Avahi 是 Apple’s Zeroconf 协议的开源实现,实现类似 Bonjour 的功能,它可以让你在 Mac 系统里自动发现你的 Linux 计算机。
$ sudo yum install avahi-daemon (Fedora 适用) $ sudo apt-get install avahi-daemon (Ubuntu 适用) $ sudo pacman -S avahi-daemon (Archlinux 适用)
创建文件 /etc/avahi/services/afpd.service,写入如下内容:(Archlinux 已经存在此文件,不需要创建)
<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>
6、启动 netatalk 和 avahi
$ sudo service netatalk restart $ sudo service avahi-daemon restart
对于 Archlinux 则是:
$ sudo /etc/rc.d/cnid start $ sudo /etc/rc.d/afpd start $ sudo /etc/rc.d/avahi-daemon start
如果希望他们自动启动,则在 /etc/rc.conf 当中的 DAEMONS= 后面添加这3个守护程序。
7、Mac OSX 系统上的设置
打开 “Finder” -> “前往” -> “连接服务器…” -> “浏览”,这时应该看到你的 Linux 计算机,使用 Linux 系统中的帐号和密码登录进入之后应该会看到 “Mac” 和 “TimeMachine” 文件夹。
然后在 Mac 打开一个终端(位于 “应用程序” -> “实用工具” -> “终端”),执行这个命令让 Time Machine 能够使用网络磁盘作为备份目标位置:
defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1
打开 “系统偏好设置” -> “Time Machine” -> “开” -> “选择磁盘” 然后选择 “Time Machine” 文件夹。
现在所有设置都完成了,测试一下吧
点击菜单栏上的 Time Machine 图标,再点击 “立即备份”,没有问题的话应该开始备份文件了(一般来说可以只备份用户文件,即可以把系统文件都排除掉),首次备份需要很长时间,所以最好接上交流电并且设置节能器永不进入睡眠。