如果你可以自己用一个树莓派和外部驱动器去制作,为什么还要花300美元去买一个Time Capsule? 虽然需要花一些时间去设置,但一旦所有设置完成,你的Mac将自动备份,不再需要任何改动,也不再需要将外部驱动器插入Mac中。
更好的消息是:当你需要恢复文件的时候,你可以从树莓派拔下外部驱动器,并直接插入到你的Mac,再从Time Machine中恢复数据。
你需要什么
使用Time Machine备份Mac ,甚至通过网络执行Time Machine备份都需要需要另一台Mac作为服务器。 所以,如果你只有一台Mac,你可能认为你唯一的选择是插入一个外部驱动器或购买一个$300的Time Capsule。
其实不是这样的。使用树莓派连接外部驱动器可以替代Time Capsule或者另一台Mac,并且这样的组合更加便宜。
本教程假设你已经知道如何设置树莓派的基础知识。 另外还需要一些设备:
- 树莓派。 推荐使用树莓派 3B。
- SD卡。用于给树莓派安装操作系统。 推荐使用Class10,存储空间8G以上的的TF卡,这样可以提升系统的运行速度。
- Pi的电源。 树莓派的电源端口是microUSB,建议为Pi选择一个可靠的电源,电压在2.5V以上。
- Pi的有线网络连接。可以使用Wi-Fi,但这需要更多的设置并且有线将更适合那些大型的网络备份。
- 外部驱动器 。通过USB连接到树莓派。 建议使用具有自己专用电源的外部驱动器,除非你有一个已经过测试与树莓派配合正常使用的硬盘。
你可以选择一个树莓派入门套件来得到这些东西,当然你可以单独购买。
最后一点注意:这个组合目前工作得很好,但它毕竟只是一个替代方案。 为此,我建议做一些其他的备份,最好是异地备份。 (其实无论如何都应该有一个异地备份 ,以防火灾或其他自然灾害的发生。)
第一步:为Time Machine准备外部驱动器
你需要做的第一件事是准备外部驱动器以使用Time Machine。 将硬盘插入你的Mac,然后启动“磁盘工具“ 。 选择你的外部驱动器,将硬盘格式化为“Mac OS 扩展(日志式)”,也称为HFS +。
接下来,要确保你的树莓派和每个设备都有权限控制硬盘。 转到Finder,然后右键单击侧栏中的硬盘。 点击“显示简介”。
在打开的窗口底部,你将找到权限设置。
点击右下角的锁,然后输入你的密码。 接下来,选中“忽略此宗卷上的所有权”。这样,你就可以将外部驱动器连接到树莓派。
第二步:在你的树莓派上安装Raspbian并通过SSH连接到它
接下来,你需要使用Raspbian设置树莓派,如本文所述 。 我们不会在这里详细说明这个过程,因为这本身又是一项工程,所以去看看那个文章,来通过Raspbian设置你的树莓派。 我使用Raspbian Core来进行设置,因为我没有连接到显示器,但即使这样GUI版本的Raspbian也是能工作的。
说到这里,你有两个选择。你可以将你的树莓派连接到一个键盘和显示器,来进行设置,或者你可以通过Mac运行SSH来连接到你的树莓派。我认为通过SSH的方法比找到一个显示器要容易得多。这里将展示这是如何做到的。
在Mac上启动终端,然后输入以下命令:
用你的树莓派的IP地址替换192.168.1.11。你可以通过到路由器的Web管理界面找到连接到你的网络(包括你的树莓派)的任何设备的IP地址 。
然后,系统会要求你输入用户 pi 的密码。默认情况下,pi的密码为raspberry
。
如果你是第一次连接到系统,我建议你在继续之前先配置一些内容。首先,运行sudo raspi-config
并更改默认密码。如果你有一个存储空间较大的SD卡,你也可以在这里扩展你的默认文件系统(在这里这不是必需的),然后你的树莓派将重新启动以继续下一步。
第三步:安装外部驱动器
在设置你的Time Machine之前,你需要先安装外部驱动器,以便你的树莓派可以读取和写入。
首先,确保树莓派上的所有软件都是最新的。依次运行这两个命令:
sudo apt-get update
sudo apt-get upgrade
接下来,安装两个软件包:hfsprogs和hfsplus。这将让你的树莓派能够读取Mac格式化的驱动器。
sudo apt-get install hfsprogs hfsplus
你现在有能够安装驱动器的软件了,但需要知道安装哪个驱动器,因此需要进行一些研究。从启动Parted开始。
sudo /sbin/parted
接下来,键入print
以查看当前连接的驱动器的列表。你应该在这里看到你的外部驱动器。
从这个屏幕截图我们可以看到,我的驱动器是一个164GB的Maxtor驱动器,重要的信息是驱动器的位置/dev/sda。你的驱动器应该有一个类似的名字,你应该记下来。
接下来,看看下面的文本块。在这里,很明显我要找的是第二个更大的分区。因此,我想要挂载的分区是sda2。如果你有多个驱动器或多个分区,则可能需要稍微不同。
现在你已经拥有所需的信息,输入quit
,然后按Enter键。
接下来,我们将创建一个文件夹作为我们的挂载点。
sudo mkdir -p /media/tm
然后向fstab文件添加一些信息。
使用此命令打开文本编辑器:
sudo nano /etc/fstab
将以下行粘贴到文档中。如果你的驱动器位置不是/dev/sda2,将/dev/sda2替换为你的驱动器的分区。
/dev/sda2 /media/tm hfsplus force,rw,user,auto 0 0
粘贴文本后,按Control + O 保存编辑,接着按 Enter 键确认,然后按Control + X 退出编辑器。
然后,安装驱动器:
sudo mount -a
如果你没有看到有错误消息,恭喜你!你已经成功装载驱动器。
第三步:编译和安装Netatalk
Netatalk是一个模拟AFP的软件,苹果目前用于的Time Machine备份的网络协议。你可以使用sudo apt-get install netatalk
安装一个古老版本的Netatalk,但我强烈建议你不要这样做。因为某些复杂的原因,Raspbian建立的Debian在其存储库中提供了一个非常过时的Netatalk版本。你可以使用这个过时的Netatalk版本使Time Machine工作,但以我的经验,它是十分难用的。
所以,我建议你编译最新的版本。这样稍有些麻烦,但这是值得的。
首先,你需要安装依赖项。在这一条命令中包含你需要安装的所有依赖:
sudo aptitude install build-essential libevent-dev libssl-dev libgcrypt11-dev libkrb5-dev libpam0g-dev libwrap0-dev libdb-dev libtdb-dev libmysqlclient-dev avahi-daemon libavahi-client-dev libacl1-dev libldap2-dev libcrack2-dev systemtap-sdt-dev libdbus-1-dev libdbus-glib-1-dev libglib2.0-dev libio-socket-inet6-perl tracker libtracker-sparql-1.0-dev libtracker-miner-1.0-dev
这可能需要一段时间才能安装。接下来,下载最新版本的Netatalk。在写这篇文章时,这是3.1.11,你可以检查netatalk的主页获得最新的版本号。然后,运行此命令下载它:
wget http://prdownloads.sourceforge.net/netatalk/netatalk-3.1.11.tar.gz
如果你在其主页网站上找到更高版本,请更换版本号。
现在,解压缩你下载的文件:
tar -xf netatalk-3.1.11.tar.gz
然后切换到刚刚创建的文件夹。
cd netatalk-3.1.11
接下来,你可以在编译程序之前使用以下命令配置netatalk的所有设置:
./configure \
--with-init-style = debian-systemd \
--without-libevent \
--without-tdb \
--with-cracklib \
--enable-krbV-uam \
--with-pam-confdir = / etc / pam.d \
--with-dbus-daemon = / usr / bin / dbus-daemon \
--with-dbus-sysconf-dir = / etc / dbus-1 / system.d \
--with-tracker-pkgconfig-version = 1.0
如果你没有看到任何错误消息,你可以继续到下一个阶段并运行:
make
这将需要一段时间。树莓派编译软件速度并不快。
当一切都完成后,你可以最终安装Netatalk:
sudo make install
是不是很有趣?安装完成后使用下面这条命令检查Netatalk是否正在运行:
netatalk -V
你将看到一些有关Netatalk安装的信息。如果一切看起来没有问题,让我们配置东西!
第四步:配置Netatalk
现在Netatalk已经安装,你需要告诉它共享你的驱动器。 首先,你需要编辑nsswitch.conf。
sudo nano /etc/nsswitch.conf
这里你需要添加mdns4和mdns到以“hosts:”开头的行,看起来像这样:
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 mdns
这个调整意味着一旦你连接你的树莓派到网络,你的Time Machine将显示在Finder的边栏。
接下来,你需要编辑afpd.service :
sudo nano /etc/avahi/services/afpd.service
复制此文本块并将其粘贴到该文件中:
%h
_afpovertcp._tcp
548
_device-info._tcp
0
model=TimeCapsule
除此之外,这些信息使你的树莓派模拟一个苹果的 Time Capsul,并显示图标。
最后,是时候将外部驱动器设置为网络共享:
sudo nano /usr/local/etc/afp.conf
在本文档的底部,粘贴以下文本:
[Global]
mimic model = TimeCapsule6,106
hostname = TimeCapsule
[Time Machine]
path = /media/tm
time machine = yes
默认的hostname用的是主机的hostname,一般情况下是raspberrypi。
如果需要,你可以在第二个括号内放置与“Time Machine”不同的名称。这将更改你备份的驱动器的名称,如同Finder和Time Machine本身名字一样。
最后,继续并启动网络服务。依次运行这两个命令:
sudo service avahi-daemon start
sudo service netatalk start
你的驱动器现在可以网络上找到。为了确保每次启动树莓派时都会自动启动服务,请再输入这些命令:
sudo systemctl enable avahi-daemon
sudo systemctl enable netatalk
我们真的很近了!
第五步:连接到你的Time Machine
在你的Mac上的Finder,你应该可以看到你的树莓派。
你可以从这里进行连接,方法是单击“连接身份...”,然后输入用于通过SSH连接的相同用户名和密码。
然而,根据我的经验,如果你通过其IP地址连接到驱动器,尤其是如果你已经在你的路由器上设置了静态IP地址,Time Machine能更好的工作。要连接,请打开Finder,然后按键盘上的Command + K。
安装驱动器后,转到系统偏好设置->Time Machine,然后将驱动器选择为Time Machine备份。
Time Machine将运行第一次备份,之后每小时进行备份。
How to Use a Raspberry Pi as a Networked Time Machine Drive For Your MacTime Machine
树莓派打造廉价版TimeCapsule