Hallo liebe Leserinnen und Leser,

heute möchte ich euch zeigen, wie ihr auf dem Banana Pi einen Time-Machine-Server für euren Mac einrichtet und damit eine sehr günstige und doch recht performante Alternative zur Time Capsule von Apple bekommt.

Der Banana Pi eignet sich dank Gigabit-Ethernet-Schnittstelle und SATA-Port wesentlich besser als beispielsweise ein Raspberry Pi für diesen Zweck. Zudem ist er mittlerweile kaum teurer und ist daher für dieses Projekt die erste Wahl.

Als Betriebssystem nutze ich wie bei bisher allen Projekten mit meinem Banana Pi das schlanke OS Bananian. Dort habe ich mir zusätzlich einen Nutzer „pi“ analog zu Raspbian inkl. sudo eingerichtet. Wenn ihr das OS mit dem Standard-Nutzer „root“ verwendet, müsst ihr die „sudo“s in den später genannten Terminal-Befehlen weglassen. Ansonsten sollte die Installation und Konfiguration der benötigten Software analog verlaufen.

 

1. Benötigte Komponenten und Kosten

  1. Banana Pi
  2. HDD mit ausreichend Platz (empfehlenswert mind. die doppelte Speicherkapazität der Festplatte in eurem Mac)
  3. SATA-Anschlusskabel
  4. Ausreichend starkes Netzteil (empfehlenswert 2A) und USB-Kabel
  5. Gehäuse für den Banana Pi
  6. Hülle für eure Festplatte

Rechnet man die Kosten für die Komponenten zusammen (30€ für den Banana Pi, 40€ für eine 1TB-HDD, 5€ für das SATA-Kabel, 5€ für das NT, 10€ für das Banana Pi Gehäuse, 4€ für die HDD-Hülle) kommt man auf einen Gesamtpreis von unter 100€. Das ist im Vergleich zu der Apple-Lösung äußerst günstig, zudem lässt sich der Banana Pi auch noch für viele andere Dinge praktisch einsetzen.

Man sollte allerdings beachten, dass es sich hierbei um eine „Bastel-Lösung“ handelt, welche nicht ausfallerprobt ist, was aber gerade bei Backups sehr wichtig ist. Um die Ausfallsicherheit zu erhöhen, kann man beispielsweiße spezielle Festplatten für den Dauerbetrieb verwenden.

Ich empfehle dennoch, den Mac von Zeit zu Zeit separat auf einer externen Festplatte zu sichern!

 

2. Vorbereitungen

2.1 Anschluss der HDD an den Banana Pi

Der Anschluss der Festplatte und die Verkabelung mittels des SATA-Anschlusskabels sollte selbsterklärend sein. Steckt am Besten die SATA-Platte erst an den Banana Pi an und schließt ihn dann am Netzteil an, damit die Platte direkt beim Start gleich erkannt wird.

Hier ein paar Fotos meines Aufbaus:
Banana Pi TimeCapsule (1)

Banana Pi TimeCapsule (2)

Banana Pi TimeCapsule (3)

2.2 Installation und Konfiguration von smartmontools (optional)

Dieser Schritt ist nicht zwingend notwendig, aber sehr empfehlenswert, um den „Gesundheitszustand“ eurer Festplatte zu überwachen.

Bevor ihr mit der Installation der erforderlichen Pakete beginnt, empfiehlt es sich, die Paketlisten zu aktualisieren und eure installierten Pakete ebenfalls auf den aktuellen Stand zu bringen. Das geht mit den Befehlen

Anschließend könnt ihr das in diesem Schritt benötigte Programm „smartmontools“ herunterladen und installieren:

Um das Programm nutzen zu können, müssen wir nun erst einmal herausfinden, unter welchem „Namen“ die Festplatte auf dem Banana Pi erkannt wird. Dazu den Befehl sudo fdisk l ausführen. Die angeschlossene Festplatte sollte nun z.B. als „/dev/sda“ angezeigt werden (die nachfolgenden Schritte beziehen sich immer auf „dev/sda“, da die HDD bei mir so erkannt wurde).

Über sudo smartctl -a /dev/sda könnt ihr nun schauen, ob eure Festplatte bereits ausgelesen werden kann. Dann solltet ihr diesen Eintrag hier finden:

Ist das nicht der Fall und es erscheint

ist ein Update der smartmontools-Datenbank notwendig. Leider funktioniert das mitgelieferte Update-Tool wegen einer Änderung in der Infrastruktur von SourceForge nicht mehr. Es ist daher ein zusätzlicher Schritt notwendig. Bearbeitet die Datei „/usr/sbin/update-smart-drivedb“ via sudo nano /usr/sbin/update-smart-drivedb und ändert die Zeile

in

Anschließend sollte der Update-Befehl ohne Fehler funktionieren:

Über  sudo smartctl -a /dev/sda sollte nun angezeigt werden

Aktiviert nun die SMART-Funktion eurer Festplatte:

Ihr könnt jetzt die SMART-Werte eurer Festplatte anzeigen lassen:

Zusätzlich könnt ihr die Platte noch auf Fehler testen (optional):

Das dauert je nach HDD bis zu mehreren Stunden. Das Ergebnis könnt ihr euch via sudo smartctl -a /dev/sda anzeigen lassen.

Praktischerweise wird auch gleich ein Daemon mitgeliefert, der die SMART-Werte euerer Festplatte kontinuierlich überwacht und euch bei Bedarf sogar per Mail informiert, sollten sich die Werte verschlechtern und sich somit das drohende Aus der Festplatte ankündigen. Wie ihr diesen aktiviert und einrichtet, ist im Ubuntu-Wiki sehr gut beschrieben, sodass ich an dieser Stelle einfach darauf verweise.

 

3. Einrichten des Banana Pi als TimeMachine-Server

3.1 Vorbereiten der Festplatte

Auch für diesen Schritt müssen erste ein paar Pakete heruntergeladen und installiert werden:

Anschließend müsst ihr eure Festplatte HFS+ formatieren. Wenn ihr wie ich die gesamte HDD nutzen wolle, geht das über

Ansonsten müsst ihr die Festplatte vorher partitionieren und nur die Backup-Partition entsprechend formatieren.
Bevor ihr die Festplatte mounted, führt ihr noch folgende Schritte aus:

Dann kann sie über mount -o force /dev/sda /mnt/TimeCapsule gemountet werden.

3.2 Installation von netatalk

Die Installation von netatalk erfolgt hier nicht wie gewohnt über apt, sondern über die Quellcode-Dateien des Programms, da die in apt enthaltene Version sehr veraltet ist.

Dazu laden wir und den Source-Code erst einmal auf den Banana Pi herunter. Da es bei mir mit der neuesten Version Probleme beim Kompilieren gab, nutze ich eine frühere Version, welche sich problemlos kompilieren und installieren ließ.

[Update 19.03.2015] Monty hat in den Kommentaren angemerkt (vielen Dank!), dass der configure-Befehl ab Version 3.1.6 von netatalk anders aussieht. Ich habe es noch nicht getestet, aber die Änderung unten in den Artikel übernommen.

Ihr könnt die benötigten, gepackten Dateien mittels wget herunterladen:

Zum Entpacken und der späteren Installation werden noch ein paar zusätzliche Pakete benötigt:

Nun könnt ihr die gepackten Source-Dateien entpacken und in den neu erstellten Ordner wechseln:

Vor dem Kompilieren müsst ihr erst noch diesen Befehl ausführen, der für die Konfiguration steht:

[Update 19.03.2015] Für netatalk Version 3.1.6+ zitiere ich mal Montys Kommentar zu diesem Befehl:

Ab Netatalk Version 3.1.6 muss dieser Befehl folgend aussehen:

Für Debian Wheezy:
sudo ./configure --with-init-style=debian-sysv --with-zeroconf

Für Debian Jessie:
sudo ./configure --with-init-style=debian-systemd --with-zeroconf

Das dauert eine Weile. Wenn die Konfiguration abgeschlossen ist, kann das Programm kompiliert werden:

Dieser Befehl dauert einige Zeit (mehrere Minuten). Nach erfolgreicher Kompilierung könnt ihr netatalk installieren:

Nun müssen wir noch die Konfigurationsdatei „/usr/local/etc/afp.conf“ anpassen via

Der vorhandene Inhalt wird damit ersetzt:

Um die Änderungen wirksam zu machen, starten wir netatalk neu:

3.3 Installation und Konfiguration von Avahi und benötigte Bibliotheken

Nun müssen wir Avahi und ein paar zusätzliche Pakete herunterladen und installieren:

Dann muss die Datei „/etc/avahi/services/timecapsule_afpd.service“ so geändert werden (über  sudo nano /etc/avahi/services/timecapsule_afpd.service), dass sie folgenden Inhalt besitzt:

3.4 Startscript für TimeMachine-Server

Damit die benötigten Dienste beim Start des Banana Pi automatisch starten und die Festplatte sofort gemountet wird, erstellen wir uns noch ein Startscript.

Dieses legen wir über sudo nano /home/pi/timecapsule  (Pfad evtl. anpassen) mit folgendem Inhalt an:

Dann machen wir das Script noch ausführbar und starten es manuell:

Für den Autostart habe ich einen root-cronjob eingerichtet, damit das Script beim Systemstart startete. Das geht über sudo crontab -e , indem ihr folgenden Eintrag hinzufügt:

Zudem müsst ihr noch einen Autostart für netatalk einrichte, das geht am einfachsten über

Bei einem Neustart sollte nun eure Festplatte automatisch gemountet werden und im Mac-Finder als Time Capsule angezeigt werden.

 

4. Einrichten der erstellten Time Capsule als Speicherort für das Backup am Mac

Ab sofort könnt ihr auf eurem Mac weitermachen und braucht den Banana Pi vorerst nicht mehr.

Die erstellte DIY-TimeCapsule sollte nun im Finder wie folgt angezeigt werden:TimeCapsule im Finder

Ist das der Fall könnt ihr sie unter den Time Machine-Einstellungen nun ganz simpel als Backuport auswählen und ein erstes Update anstoßen:Time Machine

Das erste Backup wird einige Zeit dauern, da sehr viele Daten gesichert werden müssen. Für meine ca. 180GB dauerte das erste Backp in etwa 6 Stunden. Die folgenden Backups werden auf Grund der wesentlich geringeren Speichermenge viel kürzer ausfallen.

Gutes Gelingen!

Bei Fragen, Problemen, Anregungen etc. könnt ihr wie immer das Kommentarfeld unten benutzen.