Artikelformat

Raspberry Pi: Time Capsule für Backups

Seit rund zwei Jahren leistet mir mein Zyxel NSA320 treue Dienste, verbraucht aber gegenüber dem Raspberry Pi zu viel Energie. Am Anfang nutzte ich auch noch Funktionalitäten wie z.B. den DLNA-Serverdienst für das Abrufen von Musik und Filmen auf dem heimischen TV. Da sich mein Anforderungsprofil geändert hat und ich das NAS eigentlich nur noch für Datensicherungen nutze, habe ich den Raspberry Pi für meine Aufgaben fit gemacht.

Als reiner Mac-Anwender bietet sich hier natürlich der Time Machine Dienst von Mac OS X an, der vollautomatisch tägliche, wöchentliche und monatliche Backups der kompletten Festplatte anfertigt. Ich nutze diesen Dienst schon lange mit einer externen Festplatte – allerdings nur für einen Rechner. Mein Ziel war die Verwendung des Raspberry Pi als eine günstige Alternative zur originalen Apple Time Capsule, die im Netzwerk zur Verfügung steht und Backups mehrerer Rechner speichern kann.

Stromverbrauch

Der Raspberry Pi verbraucht selbst nur rund 3,5 Watt, die externe WD Elements Festplatte noch einmal rund 8-12 Watt je nach Betriebszustand. Das Zyxel NSA320 verbraucht je nach Betriebszustand ca. 35-40 Watt. Der Fairness halber muss ich allerdings erwähnen, dass das Zyxel NAS von mir mit zwei Festplatten betrieben wurde (1+1,5 TB). Da ich die RAID-1 Funktionalität des NSA320 aber nie genutzt habe, fällt der Umstieg auf nur eine Festplatte umso leichter.

Hardware-Setup

  • Raspberry Pi, B-Modell
  • 32 GB Transcend Extreme-Speed SDHC 32GB Class 10
  • 1200mA Netzteil
  • WD Elements 1,5 TB USB 2.0 (HFS+ formatiert!)
  • Clients: MacBook Pro Retina 15 (Late 2013), MacBook Air 11 (Mid-2011), MacBook Air 13 (Mid-2011), MacBook White 13 (Late-2009)

Voraussetzungen

Die zu verwendende Festplatte muss vorher mit dem Mac OS Extended Dateisystem (HFS+) formatiert werden (z.B. mit dem Festplattendienstprogramm von Mac OS X) und die gleiche Volumenbezeichnung erhalten, die im folgenden Mount-Script verwendet wird (In meinem Fall “TimeCapsule”). FAT32 kann zwar von Linux und Unix beschrieben werden, Time Machine erlaubt aber nur Backups auf HFS+ Medien.

Eine weitere Voraussetzung bleibt natürlich eine vorhandene Raspian OS Installation oder ein anderes auf Debian basierendes System (z.B: Raspbmc). Ich habe die Schritte zwar nur mit Raspian OS getestet, es sollte aber auch auf anderen Systemen mit Debian oder Ubuntu laufen.

Schritt 1: HFS+ Support und Auto-Mount

Im ersten Schritt führen wir ein “apt-get update” durch, um die Paketlisten zu aktualisieren und installieren einige Pakete, die den Zugriff auf HFS+ Medien erlauben:

$ sudo apt-get update

$ sudo apt-get install hfsplus hfsutils hfsprogs

Im nächsten Schritt erstellen wir das Verzeichnis, in dem wir später unsere externe Festplatte mounten werden (Mountpunkt) und setzen den Besitzer auf “pi” sowie die Dateirechte auf “777“. Solltet ihr bereits einen anderen Standardbenutzer auf dem Raspberry Pi verwenden, gebt diesen anstelle von “pi” an. Manchmal kann es notwendig sein, nach dem ersten Start die Rechte für den Ordner “media/TimeCapsule” erneut zu setzen!

$ sudo mkdir /media/TimeCapsule
$ sudo chown pi:pi /media/TimeCapsule
$ sudo chmod 777 /media/TimeCapsule

Für das automatische Mounten der Festplatte beim Booten mittels “fstab” gibt es zwei Möglichkeiten:

Variante A ist das Mounten per UUID, einer eindeutigen ID für die Partition. Hier kann man die Festplatte unabhängig von der Bezeichnung des Labels mounten. Hier ist der Name der Partition also nicht ausschlaggebend.

Variante B ist das Mounten per LABEL, so dass jedes Medium/Partition z.B. mit dem Namen “TimeCapsule” gemountet wird. Das hat den Vorteil, dass man zur Sicherung abwechselnd mehrere Medien mit der gleichen Bezeichnung verwenden kann oder auch einfach auf ein neues Backup-Medium umsteigen kann. Ich habe mich genau aus diesem Grund für Variante B entschieden:

Wir öffnen die Datei “/etc/fstab” mit dem Editor “nano” und fügen einen Eintrag für unsere externe Festplatte mit dem Label “TimeCapsule” hinzu. Die Änderungen bestätigen wir mit “STRG+X“, “Y” und der Entertaste.

$ sudo nano /etc/fstab

An dieser Stelle noch ein wichtiger Hinweis: Die Festplatte muss beim Bootvorgang immer angeschlossen sein, da “fstab” den Bootvorgang ansonsten stoppt und eine Eingabe des Anwenders notwendig ist! Solltet ihr die Festplatte nicht permanent verbunden haben, ist es sinnvoller sie per Startskript zu mounten. Ich gehe auf diese Variante aber nicht näher ein, da ich davon ausgehe, dass unsere TimeCapsule immer mit dem notwendigen Sicherungsmedium gebootet wird. Generell sollten immer wieder wechselnde USB-Medien aber nicht mit “fstab” gemountet werden!

Schritt 2: Netatalk installieren & konfigurieren

Nachdem wir unseren Mountpunkt zugewiesen haben, kommen wir nun zur Installation des Netatalk Server-Dienstes (AFP Fileserver), den wir für die Netzwerkanbindung unserer Time Capsule benötigen (Die Netatalk-Version 3.1.0 ist Stand Dezember 2013, bitte prüfe vorher ob es eventuell schon eine neuere Version gibt).

$ wget http://downloads.sourceforge.net/project/netatalk/netatalk/3.1/netatalk-3.1.0.tar.bz2
$ tar -xvf netatalk-3.1.0.tar.bz2
$ cd netatalk-3.1.0/
$ ./configure --with-init-style=debian --with-zeroconf
$ make
$ sudo make install

Ist Netatalk erfolgreich installiert, müssen wir noch die Konfigurationsdatei “/usr/local/etc/afp.conf” anpassen. Die Änderungen bestätigen wir mit “STRG+X“, “Y” und der Entertaste.

$ sudo nano /usr/local/etc/afp.conf

Tipp: Hier kann man neben unserer Freigabe “Data” auch noch weitere Freigaben anlegen, die man für andere Zwecke nutzen und natürlich auch auf andere Mountpunkte legen kann (z.B. “Fotos” oder “Videos”).

Schritt 3: Avahi-Daemon installieren & konfigurieren

Im nächsten Schritt installieren wir den Avahi-Daemon, der später die automatische Anzeige der Netzwerkfreigaben im Finder ermöglicht, ohne das man sich manuell mit dem Netatalk/AFP-Server verbinden muss:

$ sudo apt-get install avahi-daemon libavahi-client-dev libdb5.3-dev db-util db5.3-util libgcrypt11 libgcrypt11-dev

Auch hier müssen wir wieder eine Konfigurationsdatei mit dem Editor “nano” anpassen und den kompletten Inhalt mit folgenden Zeilen ersetzen:

$ sudo nano /etc/avahi/services/timecapsule_afpd.service

Die Änderungen bestätigen wir mit “STRG+X“, “Y” und der Entertaste.

Schritt 4: Dienste beim Booten starten

Nun müssen wir noch die notwendigen Dienste “Netatalk” und “Ahavi-Daemon” in den Bootvorgang einbinden. Dies erledigen wir mit folgenden Befehlen:

$ sudo update-rc.d netatalk defaults
$ sudo update-rc.d avahi-daemon defaults

Fertig! Nach dem nächsten Bootvorgang sollte euer externes Sicherungsmedium automatisch gemountet sowie alle notwendigen Dienste gestartet werden. Ihr findet dann im Finder sowie in der Time Machine einen Server mit der Bezeichnung “TimeCapsule” und einer Freigabe “Data“.

PS: Wenn ihr euch für das Mounten per Startskript anstatt meiner Variante mit “fstab” entschieden habt, könnt ihr die Dienste auch direkt dort eintragen bzw. starten (Mit den Befehlen “sudo /etc/init.d/netatalk start” & “sudo /etc/init.d/avahi-daemon start“).

3 Kommentare

  1. Well, i did it once with this instructions, but in the second time i can’t install netatalk, becouse i always geht “configure: error: Berkeley DB library required but not found!”
    Do you know how to fix this? I’m very new to the world of Raspi… Thanks

    Antworten

Schreib einen Kommentar

Pflichtfelder sind mit * markiert.



Durch das Fortsetzen der Benutzung dieser Seite, stimmst du der Benutzung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen", um Ihnen das beste Surferlebnis möglich zu geben. Wenn Sie diese Website ohne Änderung Ihrer Cookie-Einstellungen zu verwenden fortzufahren, oder klicken Sie auf "Akzeptieren" unten, dann erklären Sie sich mit diesen.

Schließen