Ich habe mir vor kurzem etwas Speicher gegönnt und mir dementsprechend als Ziel gesetzt meinen Mac endlich mit Time Machine über das Netzwerk Backups erstellen zu lassen, anstatt immer die Externe Festplatte anzuschließen.
Die bequemste Lösung wäre es, sich eine AirPort Box von Apple für nur paar hundert Euronen zu kaufen oder einen zweiten Mac zu besitzen. AirPort Boxen haben eine Time Capsule integrieret mit dem Backups über das Netzwerk erstellt und gesichert werden können. Wer einen zweiten Mac besitzt, kann diesen als Server verwenden um dirt Backups abzulegen.
Wer sich dies jedoch nicht zulegen möchte (so wie ich), der kann mit einem Raspberry Pi auch eine Time Capsule bauen, mit dem man dann über WLAN seine Backups mit Time Machine dann auf die Festplatte im Netzwerk speichern kann. Wie das geht, wird hier im Beitrag erklärt.
Was wird benötigt?
Unser Raspberry Pi wird mit einer Externe Festplatte verbunden und ist eine gute improvisierte Alternative zu Time Capsule oder einem anderen Mac.
-
Es wird ein Raspberry Pi benötigt. In meinem fall benutze ich ein Raspberry Pi 2 Model B, den ich seit geraumer Zeit rumliegen habe und nicht genutzt habe.
-
Eine SD Karte auf dem das Betriebssystem für den Pi läuft. Hier ist eine gute Liste mit getesteten SD Karten für den Pi.
- Ein Gehäuse für den Pi.
- Es wird ein Netzteil benötigt.
- Und natürlich eine externe Festplatte die über USB mit dem Pi verbunden wird.
Ein gutes Komplettpaket gibt es von CanaKit. Natürlich kannst du dir die Sachen auch selber einzeln kaufen. Die Entscheidung obliegt ganz bei dir. :)
Schritt 1: Vorbereitung des externen Festplatte
Zuerst müssen wir unsere Festplatte vorbereiten. Dazu schließen wir diese an unserem Mac an und öffnen Diskutils. Dort wählen wir unsere Festplatte aus und drücken auf den Button "löschen". Im neuen Fenster geben wir einen Namen ein und als Format wählen wir "Mac OS Extended (journaled)" aus.
Alternativ kann der obere Schritt auch über die Konsole gemacht werden. Beispielsweise mit:
diskutil partitionDisk /dev/diskX GPTFormat "HFS+" Time-Machine 100%
Ein ausführliches How-To für diskutil findest du hier.
Nachdem die Festplatte formatiert ist müssen wir die Berechtigung einstellen. Dafür machen wir einen Rechtsklick auf der Festplatte im Finder und klicken auf "Informationen".
Unter "Teilen & Zugriffsrechte" setzen wir "everyone" auf "Lesen & Schreiben", zudem muss der Haken in "Eigentümer auf diesem Volume Ignorieren" gesetzt werden.
Schritt 2: Installiere Raspbian auf dem Pi und verbinde dich über SSH
Als nächstes musst du dein Raspberry Pi einrichten. In diesem Beitrag werde ich allerdings nicht darauf eingehen wie das funktioniert. Im Internet findet man genug Anleitungen dazu und auf raspberrypi.org findet man auch genaue Anleitungen.
Für mein Setup habe ich Raspbian Stretch ohne einer Oberfläche auf dem Pi installiert und SSH eingerichtet. Außerdem sollte eine statische IP für dein Pi eingerichtet werden, dies kannst du in deinem Pi direkt oder in deinem Router machen.
Um eine statische IP-Adresse auf dem Pi einzurichten, kann man die dhcpcd.conf wie folgt editieren.
Dazu öffnet man die dhcpcd.conf wie folgt:
sudo nano /etc/dhcpcd.conf
Und bearbeitet diese Beispielweise so:
#static IP configuration
interface eth0
static ip_address=192.168.0.10/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1
Und schon hat der Pi eine statische IP-Adresse auf 192.168.0.10.
Generell empfiehlt es sich auf einem frisch aufgesetzem Pi verschiedene Einstellungen vorzunehmen. Beispielweise solltest du eine Meldung bekommen wenn du dich auf dem Pi über SSH verbindest, dass das Passwort vom user Pi noch nicht geänderd sei. Rufe einfach
sudo raspi-config
auf um einige Einstellungen vorzunehmen.
Schritt 3: Mounte die Festplatte
Bevor wir Time Machine einrichten können, müssen wir die Festplatte auf dem Pi mounten. Da HFS+ kein Standard Format unter Linux ist, müssen wir noch Pakete nachinstallierten.
Zuerst sorgen wir, dass unser Pi Up to Date ist:
sudo apt-get update
sudo apt-get upgrade
Als nächstes installieren wir die benötigten Pakete für das Dateisystem der externen Festplatte nach:
sudo apt-get install hfsprogs hfsplus
Nun haben wir alles was wir brauchen um die Festplatte mounten zu können.
Als nächsten findet wir heraus, wie unsere Festplatte bezeichnet ist. Dafür benutzen wir einfach parted:
sudo /sbin/parted
und geben print
ein um alle angeschlossenen Laufwerke zu sehen. Meine ausgabe sieht wie folgt aus:
Auf dem Screenshot kann man bei Model erkennen, dass dies meine Festplatte ist die unter dem Pfad von Disk erreichbar ist. In meinem Beispiel ist der Pfad /dev/sda
.
Allerdings muss noch herausgefunden werden, auf welcher Nummer die Partition liegt auf der später Time Machine die Backups speichern soll. Dies ist auf dem Bild in Rot umramt und trägt die Nummer 2.
Somit ist der Pfad zu der Partition /dev/sda2
.
Mit q
beenden wir parted wieder.
Nun legen wir ein Ordner in /media
an, worauf das Laufwerk gemounted werden soll. Ich nenne ihn einfach time-machine:
sudo mkdir /media/time-machine
Jetzt müssen wir in der fstab eintragen, dass das Laufwerk dort auch gemounted werden soll. Dazu öffnen wir die fstab:
sudo nano /etc/fstab
Und tragen dort folgendes ein:
/dev/sda2 /media/time-machine hfsplus force,rw,user,auto 0 0
(Bitte passe den Pfad nach deinem Bedürfnissen an)
Nun verlasse den Editor mit Strg + X und mounte das Laufwerk mit:
sudo mount -a
Wenn keine Fehlermeldungen erscheinen ist das Laufwerk erfolgreich gemounted.
Schritt 4: Kompiliere und Installiere Netatalk
Netatalk ist ein nettes Tool, dass das AFP Protokoll simuliert. AFP ist ein Netzwerk Protokoll, dass Apple für Time Machine backups verwendet. Netatalk kann über die repositories installiert werden, was jedoch nicht getan werden sollte, da die Version in den repositories meist älter ist.
Am besten kompiliert man Netatalk selber. Dies ist ganz einfach und funktioniert wie folgt.
Zuerst müssen alle Abhängigkeiten zum kompilieren installiert werden:
sudo aptitude install build-essential libevent-dev libssl-dev libgcrypt11-dev libkrb5-dev libpam0g-dev libwrap0-dev libdb-dev libtdb-dev default-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
Nachdem alle Abhängigkeiten installiert wurden laden wir die aktuellste Version von Netatalk runter. Die aktuellste Version kann auf der Webseite von Netatalk nachgesehen werden.
Wenn du die aktuellste Version herausgefunden hast, kannst du die Sources wie folgt downloaden:
wget http://prdownloads.sourceforge.net/netatalk/netatalk-3.1.11.tar.gz
Ersetze die Versionsnumemr im Link einfach, falls es eine aktuellere Version gibt.
Nun müssen wir die Datei entpacken:
tar -xvf netatalk-3.1.11.tar.gz
Danach wechseln wir in den Ordner:
cd netatalk-3.1.11
Nun müssen wir ./configure
mit folgenden Parametern aufrufen:
./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
Dies kann eine weile dauern. Wenn es fertig ist muss das ganze noch kompiliert werden mit:
make
Dies nimmt wieder eine weile Zeit in Anspruch.
Wenn die kompilierung funktioniert hat, muss das ganze intsalliert wrden mit:
sudo make install
Na, hats spaß gemacht? Wir haben Netatalk nun selber kompiliert und installiert. Um zu testen ob netatalk läuft, gebe einfach folgenden befehl ein:
netatalk -V
Wenn das ganze so ähnlich aussieht wie bei mir, dann hat alles geklappt. Herzlichen Glückwunsch!
Schritt 5: Konfiguriere Netatalk
Jetzt da Netatalk ist, müssen wir ihm sagen, dass er unser Laufwerk auch im Netzwerk teilen soll.
Als erstes müssen wir dafür die nsswitch.conf editieren.
sudo nano /etc/nsswitch.conf
Hier müssen wir nur mdns4
und mdns
am ende der Zeile "hosts:" hinzufügen.
Die Zeile sollte dann so aussehen:
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 mdns
Diese Anpassung sorgt dafür, dass dein Time Machine Laufwerk in der Sidebar im Finder angezeigt wird, sobald dein Pi im Netzwerk angeschlossen wird.
Als nächstes müssen wir die afpd.service editieren, bzw. falls dieser noch nicht vorhanden ist, erzeugen wir diesen:
sudo nano /etc/avahi/services/afpd.service
Füge dort einfach folgenden Block rein:
<?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>
Diese Informationen sorgen dafür, dass dein Raspberry Pi als Apple Time Capsule mit entsprechenden Icon dargestellt wird.
Nun wird es Zeit, dein Laufwerk im Netzwerk zu teilen. Dazu editieren wir die afp.conf mit:
sudo nano /usr/local/etc/afp.conf
Dort fügen wir folgenden Inhalt ein:
[Global]
mimic model = TimeCapsule6,106
[Time Machine]
path = /media/time-machine
time-machine = yes
Du kannst natürlich einen anderen namen anstatt "Time Machine" in den eckigen Klammern verwenden.
Schlussendlich starten wir nun die Netzwerk Services mit golgenden zwei Befehlen:
sudo service avahi-daemon start
sudo service netatalk start
Nun sollte dein Laufwerk im Netzwerk angezeigt werden. Um sicher zu stellen, dass nach einem Neustart die Dienste automatisch starten, sollten wir diese in systemctl eintragen. Dies geschieht mit folgenden zwei Befehlen:
sudo systemctl enable avahi-daemon
sudo systemctl enable netatalk
Wir haben es nun fast geschafft!
Schritt 6: Verbinde Time Machine
Nun können wir endlich Time Machine mit diesem Laufwerk verbinden. In der Seitenleiste im Finder finden wir nun unser Laufwerk.
Wir können uns nun einfach verbinden, indem wir auf "Verbinden als" drücken oder mit Cmd + K die Adresse per Hand eintragen.
Als Logindaten gibts du deine SSH-Login daten ein, also die vom User auf dem Raspberry Pi. Beispielsweise die Logindaten vom User "pi" oder einen beliebig anderen.
Nachdem du dich erfolgreich verbunden hast, kannst du in Systemeinstellungen -> Time Machine, dein Laufwerk auswählen.
Nun sollte dein erstes Backup mit dem Laufwerk gestartet werden.
Herzlichen Glückwunsch, du hast nun ein Time Machine Laufwerk übers Netzwerk erstellt. Viel Spaß!
Folgende Artikel habe ich für diesen Beitrag verwendet: