Raspberry Pi als TimeCapsule
Den Raspberry Pi kann man mit etwas Ausdauer in eine TimeCapsule, welche automatische Sicherungen mit TimeMachine auf MacOSX Geräten macht. Der Aufwand lohnt sich, denn ein Raspberry Pi + WLAN Stick + externe Festplatte zusammen sind noch wesentlich günstiger als eine original TimeCapsule von Apple.
Raspberry Pi als TimeCapsule
Für unsere TimeCapsule benötigen wir folgendes:
- Raspberry Pi mit SD Karte und Netzteil
- WLAN Stick
- externe Festplatte
Vorbereitungen
Der erste Schritt ist Raspbian Linux auf die SD Karte zu kopieren. Danach starten wir den Pi normal und führen alle bereits bekannten Einstellungen aus (diese beschreibe ich in einem Artikel). Neben dem Systemupdate aktivieren wir auch noch SSH. Außerdem benötigen wir noch eine funktionierende Netzwerkverbindung mit dem WLAN Stick. Alle Informationen dazu sind in der verlinkten Artikeln zu finden.
Als nächstes müssen wir die Festplatte vorbereiten. Dazu installieren wir HFS+ Unterstützung:
sudo apt-get install hfsplus hfsutils hfsprogs
danach sollten wir den Namen der externen Festplatte herausfinden:
sudo blkid
Um diese mounten zu können erstellen wir einen Ordner:
sudo mkdir /media/TimeCapsule
und erstellen uns ein Skript, welches die Festplatte automatisch mounted:
sudo nano /etc/init.d/TimeCapsule
Hier der Inhalt dieses Skripts:
#!/bin/bash DNAME="TimeCapsule" if [ "$(id -u)" != "0" ]; then echo "This script must be run as root" 1>&2 exit 1 fi case "$1" in start) service netatalk stop service avahi-daemon stop umount -l /media/TimeCapsule sudo fsck.hfsplus -f `blkid -L $DNAME` mount -t hfsplus -o force `blkid -L $DNAME` /media/TimeCapsule/ service netatalk start service avahi-daemon start ;; stop) service netatalk stop service avahi-daemon stop umount -l /media/TimeCapsule ;; *) echo "Usage: /etc/init.d/TimeCapsule {start|stop}" exit 1 ;; esac exit 0
Jetzt nur noch die Rechte vergeben, das Skript sichtbar machen und schnell neu starten, damit das Skript beim Systemstart gleich die Festplatte mounten kann.
sudo chmod +x /etc/init.d/TimeCapsule sudo update-rc.d TimeCapsule defaults sudo reboot
TimeCapsule Server
Der letzte Schritt ist nun den TimeCapsule Server mit der nun fertig konfigurierten Hardware lauffähig zu machen. Dafür benötigen wir einige Programme. Zuerst holen wir und Avahi und die dazugehörigen Bibliotheken über den Paketmanager:
sudo apt-get install avahi-daemon libavahi-client-dev libdb5.3-dev db-util db5.3-util libgcrypt11 libgcrypt11-dev
als nächstes holen wir und Netatalk und kompilieren es für unseren Raspberry Pi. Danach installieren wir das Programm:
wget http://downloads.sourceforge.net/project/netatalk/netatalk/3.0.2/netatalk-3.0.2.tar.bz2 tar -xvf netatalk-3.0.2.tar.bz2 cd netatalk-3.0.2/ ./configure --with-init-style=debian --with-zeroconf make sudo make install
als nächstes müssen wir 2 Konfigurationsdateien ändern:
sudo nano /usr/local/etc/afp.conf
dort ersetzen wir den gesamten Inhalt mit:
[Global] ; Global server settings hostname = TimeCapsule Pi mimic model = TimeCapsule log file = /var/log/netatalk.log log level = default:info [Data] ; Our Time Machine volume path = /media/TimeCapsule cnid scheme = dbd file perm = 0660 directory perm = 0770 time machine = yes
und das ganze noch mal mit folgender Konfigurationsdatei:
sudo nano /etc/avahi/services/timecapsule_afpd.service
auch hier ersetzen wir den kompletten Inhalt mit:
<?xml version="1.0" standalone='no'?> <!DOCTYPE service-group SYSTEM "avahi-service.dtd"> <service-group> </service-group>
Fertig!
So starten wir nun unsere TimeCapsule:
sudo /etc/init.d/TimeCapsule start
Nach dem Start sollte am Apple Gerät im MacOSX Finder die TimeCapsule automatisch über das Netzwerk erkannt und angezeigt werden. Von nun an sollte die TimeCapsule automatische Backups vom MacOSX System machen.
Probleme
Das größte Problem am Raspberry Pi ist seine Stromversorgung. Sollte die TimeCapsule nicht immer erreichbar sein, sondern immer wieder verschwinden, dann liegt das daran, dass WLAN Stick und die Festplatte zu viel Strom benötigen. Hier gibt es 2 Abhilfen:
- statt dem WLAN Stick kann man den Raspberry auch über ein LAN Kabel ans Netzwerk anschließen
- man sollte nach Möglichkeit stärkere (mehr Ampere) Netzadapter verwenden. Zum Beispiel jenes vom iPad.
Ein weiterer guter Tipp ist die USB Festplatte schon vor Systemstart anzuschließen und diese immer korrekt zu entfernen (Raspberry Pi mit shutdown Befehl beenden!).
Bitte um Information ob andere Probleme bekannt sind.
Bei mir klappt das leider nicht.
Das Raspberry erscheint bei mir im Finder, aber ich kann es als Time Machine auswählen.
Wenn ich da drauf klicke und Benutzernamen und Passwort eingebe, komme ich immer in den Home Ordner.
Hast du vielleicht eine Ahnung, woran es liegen könnte?
Interessant. Bei mir hat das funktioniert…schon mal versucht das Service neu zu starten? Was sagt das Festplattendienstprogramm am Mac?
Danke für den Guide, aber sobald ich mir die bibliotheken holen will:
sudo apt-get install avahi-daemon libavahi-client-dev libdb5.3-dev db-util db5.3-util libgcrypt11 libgcrypt11-dev
kommt bei mir leider
Failed to fetch http: lange adresse 404 Not Found
Was kann ich nun tun? 🙁
Du könntest versuchen, die Bibliotheken einzeln zu holen. Interessant, dass du eine 404 Exception bekommst…
Das kann meiner Meinung nach dann passieren, wenn man vor der Installation nicht ‚apt-get update‘ und ‚apt-get upgrade‘ eingibt. Zumindest hat es danach bei mir funktioniert…
Danke für die Info!
Muss die Platte vorher schon mit HFS+ formatiert sein? Geht diese Anleitung davon aus das, dass Label der entsprechenden Partition= TimeCapsule ist?
Ich habe die Platte zuvor mit HFS+ formatiert und „TimeCapsule“ genannt
Vielen Dank für die Anleitung allerdings steh ich irgendwie auf dem Schlauch da ich es nicht hinbekomme… Ich bekomme die Fehlermeldung dass ich nciht auf die Festplatte schreiben darf. Zusätzlich dazu seh ich aber auch nicht den Ordner TimeMachine im Finder sondern nur den Ordner Data. Weißt du zufälligerweise was ich Falsch gemacht habe?
mfg
Mark
Habe das gleiche Problem wie Mark. Ich kann die TC auswählen, bekomme aber nur den Ordner „Data“ angezeigt und habe keinen Zugriff, wenn ich meine LoginDaten eingebe.
Gruß
Thomas
Lösung gefunden:
sudo chown pi:pi /media/TimeCapsule
Danke für die Lösung des Problems!
Das hat bei mir noch nicht ganz ausgereicht. Das Verzeichnis /media/TimeCapsule hatte zwar die Rechte 777, aber nachdem die Platte in dieses Verzeichnis gemountet war, hatte es nur noch 775, so dass keine Schreibzugriffe möglich waren. Erst ein nochmaliges
sudo chmod 777 /media/TimeCapsule
bei gemounteter Platte brachte den Erfolg.
Jap hat bei mir auch mein Problem super gelöst!
Danke.
Bei mir hat soweit mit der Installation alles geklappt. Super Tutorial!
Komischerweise fragt mich jedoch Time Machine nach einem Passwort, wenn ich versuche meine Time Machine auf die Time Capsule zu stellen. Jemand eine Ahnung woran das liegen könnte? Hab alle meine Kombinationen aus Username und Passwort ausprobiert… 🙁
TimeMachine muss sich auf dem RaspberryPi anmelden. Man braucht also einen User-Account auf dem Pi, und dessen Name und Passwort gibts man dann an, wenn TimeMachine danach fragt.
Warum ist eigentlich hier das automatische mounten der Platte so kompliziert gelöst? Ein entsprechender Eintrag in /etc/fstab genügt doch:
LABEL=timewarp500 /mnt/TimeMachine hfsplus force,rw,auto,exec,users,nofail 0 3
Ich verwende abwechselnd zwei Festplatten mit dem identischen Label „timewarp500“. So bekomme ich zwei Backup-Platten (Redundanz!) und der Pi mountet sie trotzdem nach dem Reboot. Wichtig: „nofail“ – sonst bootet der Pi im Fehlerfall nicht.
Danke für deinen Tipp, bei mir waren wohl nicht genug Rechte vorhanden. Jetzt geht es. 🙂
Muss die Festplatte in HFS+ formatiert sein oder kann die auch in NTFS sein? Habe an meiner Pi meine alte WD MyBook angeschlossen, da dort noch meine ganze Musik aus Windows Zeiten drauf ist.
Jap. NTFS ist leider ein Microsoft Filesystem, dass unter Linux, MacOSX nur mit Vorbehalt unterstützt wird.
Schöne Anleitung und überhaupt gute Seite. Bei mir wurde das Label leider nicht angezeigt. Unter OS X ist es erschienen. Habe daher mit Parameter -U statt -L bei blkid und der UUID gemountet.
Hallo zusammen,
ich saß jetzt einige Tage an dieser Sache, da ich mich mit Linux leider vorher noch nie beschäftigt habe aber was soll ich sagen, echt zeimlich gutes Turotial!
Es funktioniert 🙂
Vielen Dank
Gruß Niklas
Hey Super Anleitung und danke das du dir die Mühe machst!
Leider habe ich aber auch ein kleines Problem.
Die „TimeCapsule“ wird im Finder angezeigt und auch in TimeMachine wenn ich aber die TimeCapsule bei der TimeMachine als Backup Volume benutzen möchte muss ich mich anmelden. Also nehme ich den Benutzer Pi + Passwort und dann kommt immer eine Fehlermeldung das ich nicht die benötigten Rechte für die TimeCapsule besitze.
Hoffe du kannst mir helfen 🙂
Das dauert bei mir irgendwie ewig!
Bei mir soll es angeblich für 300GB ganze 2 Tage dauern…
Wie sieht es bei dir/euch aus?
Ich kann machen, was ich will, aber ich bekomme nur den Data-Ordner zu sehen. Alle hier angegebenen Tipps habe ich schon probiert, es ändert nichts. Hat es damit zu tun, dass mein iMac Mountain Lion als Betriebssystem hat?
Ich weiß nicht warum, aber jetzt habe ich offenbar den richtigen Data-Ordner und das Backup läuft – für 100 GB will er 3 Stunden brauchen.
Hallo, hatte es nach deinem Guide Installiert, bekomme aber jedes mal beim Backupen
die Fehlermeldung:
Das Image des Backup-Volumes „/Volumes/Data-1/Rolands MacBook Air.sparsebundle“ konnte nicht erstellt werden (Fehler 60).
hin und wieder erscheint (Error 17)
Die Festplatte hängt an USB Hub.
Hat irgendwer einen Plan??
MFG
Hallo,
ich bin nach Anleitung vorgegangen. Leider bekomme ich die HD nicht gemountet. Es kommt die Meldung
mount: unknown filesystem type ‚hfsplus‘
Hat jemand eine Erklärung?
Hier der kpl. Fehlertext beim Start:
pi@raspberrypi ~ $ sudo /etc/init.d/TimeCapsule start
Stopping Netatalk Daemons: netatalk.
[ ok ] Stopping Avahi mDNS/DNS-SD Daemon: avahi-daemon.
umount: /media/TimeCapsule: not mounted
** /dev/sda2
** Checking HFS Plus volume.
** Checking Extents Overflow file.
** Checking Catalog file.
** Checking Catalog hierarchy.
** Checking Extended Attributes file.
** Checking volume bitmap.
** Checking volume information.
** The volume TimeCapsule appears to be OK.
mount: unknown filesystem type ‚hfsplus‘
Starting Netatalk services: netatalk.
[ ok ] Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon.
hfsprogs hast du aber schon installiert, oder?
ja, das ist vorhanden. Kann es sein, dass die Formatierung der HD mit dem MAC das Problem ist? Ich habe es schon mit 2 verschiedenen HD versucht.
Hallo,
ist in dem TimeCapsule Skript Zeile 12 unbedingt notwendig?
Mich stört es, dass, wenn ich mein Raspberry neustarte, es 20 Minuten dauert, bis ich wieder per SSH zugreifen kann, da SSH anscheinend erst aktiviert wird, wenn er die Festplatte fertig gemountet hat.
Ich weiß nicht, ob es damit zusammenhängt, aber als ich die Zeile 1x auskommentiert habe, hatte TimeMachine ein Problem mit TimeCapsule
Hi,
also die Anleitung hat bei mir super funktioniert.
Nur nun noch die blöde Frage eines Unix-Laien:
Ich muss nach jedem Booten das Kommando „sudo /etc/init.d/TimeCapsule start“ aufrufen – wie kann ich das nach automatisieren?!?
unter Linux kannst du ein Skript erstellen, dass beim Systemstart automatisch aufgerufen wird. Das geht so:
vi /etc/init.d/meinscript.sh
In der Datei dann: #!/bin/bash und in den nächsten Zeilen kannst du dann beliebige Kommandos ausführen. Nicht vergessen diese Datei auch ausführbar machen 😉
chmod +x /etc/init.d/meinscript.sh
Zuletzt muss man nur noch angeben, in welchem Runlevel das Skript ausgeführt werden muss (Textmodus, grafischer Modus…)
update-rc.d meinscript.sh defaults 100
Am besten du gibst defaults ein. Das sollte reichen.
Hi, das klappt bei mir im Prinzip; nur das mit dem automatischen Starten will bei mir nicht so ganz. Das liegt daran, dass die Platte beim Startup zwar gemountet wird, aber als /media/TimeCapsule_ mit einem Unterstrich hintendran. Diese muss ich erst manuell unmounten und mounten.
Ich bin relativer Linux-Neuling, aber kann es sein dass es hier einen Namenskonflikt gibt? Wenn ja, wo kann ich suchen, was ihn bewirkt?
Noch was… kann aber evtl. mit meinem Problem zusammenhängen. Solange die Platte nicht korrekt gemountet ist, versucht TimeMachine ein Backup auf der größeren Partition der SD-Karte anzulegen (das merke ich am verfügbaren Platz), was natürlich Quark ist. Mal davon abgesehen dass mich das wundert, weil die SD nicht hfs+ formatiert ist.
kannst du mal die Platte abstecken und den Pi neu starten und schauen ob der Ordner /media/TimeCapsule wirklich so heißt oder ob da ein _ dabei ist?
Hallo und sorry für die späte Antwort. Das Verzeichnis hieß so wie es sollte, da kam ich also nicht weiter. Aber ich habe das Problem jetzt lösen können: Im für dieses Projekt angelegten Script /etc/init.d/TimeCapsule habe ich um die Zeile 11 herum einfach noch einen zweiten umount eingefügt für /media/TimeCapsule_
Ist sicher nicht die sauberste Lösung. Aber geht. 🙂
Das Zweite was ich gemacht habe:
In der Datei /usr/local/etc/afp.conf die Zeile mit dem mimic model ergänzt.
mimic model = TimeCapsule6,106
Jetzt läuft meine Raspberry Pi TimeCapsule seit 30 Tagen stabil. 😀
Hallo,
vielen Dank für die tolle Anleitung – hat alles sofort geklappt. Eine Frage habe ich aber noch:
Wie kann ich es bewerkstelligen, dass ich nebem dem „Data“ Ordner noch einen zweiten Ordner mit Schreibrechten besitze, um dort ggf. manuell diverse Dateien ablegen zu können?
Kann mir da jemand kurz helfen?
Vielen Dank !
Hi zusammen. Ich hatte das Problem dass die Datenrate bei maximal 2,5 mb/s lag. Ist das bei euch auch so der Fall? Mein Pi ist am LAN angeschlossen..
Hallo zusammen.
Ich hoffe mir kann hier jemand weiterhelfen. Ich habe meinem Bruder Eine Pi+Timemachine Combo gebaut. Leider funktioniert der dauerbetrieb nicht gut. Immer wieder meind Timemachine das Backup sei kaputt und muss neu erstellt werden. Das ist sehr mühsam da es ewig dauert bis ein neues angelegt ist. Wenn wer mehr Details brauch kann ich configs posten.
Der Artikel ist zwar schon einige Zeit alt, aber ich habe auch gerade ein Problem. Die Raspberry Timemachine wird im Finder angezeigt. Ich kann mich jedoch nicht verbinden. Es wird nach Benutzernamen und Passwort gefragt. Ich habe nur den Standardbenutzer auf dem Raspberry und mit diesen Zugangsdaten kann ich mich nicht verbinden. In Timemachine auf dem Mac wird mir der Raspberry gar nicht als Auswahl angeboten. Funktioniert diese Anleitung noch mit Mac OS 10.12.3?
Inzwischen habe ich es hinbekommen und der Mac hat auch ein erstes Backup auf der TimeCapsule erstellt. Seit ich den Raspi neu gestartet habe, bekomme ich jedoch Fehlermeldungen und TimeMachine ist der Meinung das kein altes Backup existiert obwohl es vorhanden ist. Die Fehlermeldung nach dem Ausführen des Startskripts lautet wie folgt.:
** Repairing volume.
** Rechecking volume.
** Checking HFS Plus volume.
** Checking Extents Overflow file.
** Checking Catalog file.
** Checking Catalog hierarchy.
** Checking Extended Attributes file.
Keys out of order
(8, 677)
Das passiert drei Mal, dann wird mit dem Hinweis das das Volume nicht repariert werden kann abgebrochen.
hi, versuche auch gerade es zu installieren kann aber diesen make Befehl nicht ausführen: pi@raspberrypi:~ $ sudo make install
make: *** No rule to make target ‚install‘. Schluss.
pi@raspberrypi:~ $
weiss jemand Rat?