美文网首页我爱编程树莓派IT
树莓派进阶(二):使用树莓派打造廉价版 Time Capsule

树莓派进阶(二):使用树莓派打造廉价版 Time Capsule

作者: Chris_y | 来源:发表于2017-04-02 21:28 被阅读1916次

    如果你可以自己用一个树莓派和外部驱动器去制作,为什么还要花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上启动终端,然后输入以下命令:

    ssh pi@192.168.1.11

    用你的树莓派的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

    复制此文本块并将其粘贴到该文件中:

    <?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=TimeCapsule</txt-record>
        </service>
    </service-group>
    

    除此之外,这些信息使你的树莓派模拟一个苹果的 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

    相关文章

      网友评论

      • nilux:lz确实用过么?本人实施下来感觉难以进行下去,首先如果是挂载已有time machine备份数据的硬盘的话,根本不能识别这些数据又要重新备份一遍,而如果用空盘的话,树莓派的数据吞吐量在首次备份时绝对慢的让你想si,况且由于用现有数据无法继续备份,也不觉得挂一天备份完的数据可以在紧要关头用上,所以感觉真的是鸡肋。。。
        Chris_y:@nilux hmm,确实是这样,树莓派的无线传输太弱了。这只能当作一种尝试或者说娱乐吧。实际上苹果自家支持 Time Machine 的路由器都已经很多年不更新了。所以还是老老实实用移动硬盘更新吧

      本文标题:树莓派进阶(二):使用树莓派打造廉价版 Time Capsule

      本文链接:https://www.haomeiwen.com/subject/lrtnottx.html