Selbstgebaute Time Capsule nach Debian Art
Gestern wurde die neue Version (2.0.5) Netatalk veröffentlich und bringt als neues Feature Time Machine support. Bisher konnte man Time Machine zwar zur Kooperation mit nicht Apple Geräten überrreden aber gerade wenn es um Backups geht, möchte ich keine Option wie "TMShowUnsupportedNetworkVolumes" aktivieren müssen. Die neue Version net netatalk rüstet jetzt Support für die mit Time Machine eingeführten AFP Befehle nach und kann damit von Time Machine verwendet werden ohne das am Mac rumfrikeln muss.
Privat ich habe Netalk 2.0.4 + diverse Patche aus der Mailingliste und dann in Folge die RCs von 2.0.5 erfolgreich im Einsatz, in der Firma testen wir gerade 2.0.5 RC3.
Hier also die Anleitung in fünf einfachen Schritten, Basis ist eine aktuelle Debian 5 AMD64 minimal Installation.
Abhängigkeiten und Buildtools installieren
cd /usr/local/src/ apt-get source netatalk apt-get build-dep netatalk apt-get install libssl-dev libcrack2-dev build-essential devscripts
Paketbau
cd netatalk-2.0.3 dch -v 2.0.5 "Switch to 2.0.5 release" cd ../netatalk-2.0.5 sed -i -e 's/^\(DEB_UPSTREAM_TARBALL_MD5\b\)/#\1/' debian/rules debian/rules get-orig-source DEB_BUILD_OPTIONS=ssl dpkg-buildpackage -rfakeroot
Wenn der Build Prozess durchläuft, sollten am Ende noch einige Fehler auftauchen, das das neue Paket nicht signiert werden konnte. Das ist volkommen ok und kann getrost ignoriert werden.
Installieren
dpkg -i /usr/local/src/netatalk_2.0.5*.deb aptitude hold netatalk
Der Name des fertigen debs ändert sich je nach Architektur die man einsetzt und um ein versehentliches überschreiben bei einem Update zu verhindern sollte das Paket auch gleich auf Hold gesetzt werden.
Konfiguration, Bonjour & Co.
apt-get install avahi-daemon libnss-mdns
Jetzt müssen noch einige Config Dateien angepasst werden:
/etc/default/netatalk
Das neu starten aller Dienste von netatalk kann sehr lange dauern, am besten man deaktiviert alles was man nicht braucht.
ATALKD_RUN=yes PAPD_RUN=no CNID_METAD_RUN=yes AFPD_RUN=yes TIMELORD_RUN=no A2BOOT_RUN=no
/etc/netatalk/AppleVolumes.default
Am Ende der Datei muss eine Zeile eingefügt werden um die neue Freigabe zu definieren.
/var/backups/timemachine/$u TimeMachine allow:user1,user2 cnidscheme:cdb options:tm,usedots,upriv
Dadurch wird das Verzeichnis "/var/backups/timemachine/
/etc/avahi/services/afpd.service
Der Inhalt der Datei muss komplett ersetzt werden.
<?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>_adisk._tcp</type> <port>9</port> <txt-record>sys=waMA=00:11:22:33:44:55</txt-record> <txt-record>dk2=adVF=0x83,adVN=TimeMachine,adVU=956cf67c-f448-453f-9dec-dd17855ee076</txt-record> </service> <service> <type>_device-info._tcp</type> <port>0</port> <txt-record>model=RackMac</txt-record> </service> </service-group>
Der Teil mit "00:11:22:33:44:55" muss durch die MAC Adresse des Debian Servers ersetzt werden und mit "model=RackMac" kann man beeinflussen wie die selbstgebaute Time Capsule im Finder angezeit wird, hier ein 19'' Server. Mögliche Modelle sind übrigens: PowerBook, PowerMac, Macmini, iMac, MacBook, MacBookPro, MacBookAir, MacPro, AppleTV1,1, AirPort. Die Information was möglich ist verteckt sich übrigens in einer plist: /System/Library/CoreServices/CoreTypes.bundle/Contents/Info.plist
Aktivieren
Die Linux Seite
Der letzte Schritt auf Linux Seite ist das neustarten der Dienste
/etc/init.d/netatalk restart /etc/init.d/avahi-daemon restart
Die Mac Seite
Als erstes muss sichergestellt werden das der Computer einen richtigen Namen hat, sonst gibt es Probleme beim einrichten der TimeMachine. Unter Systemeinstellungen, Freigaben, muss bei "Gerätenamen" irgendetwas drin stehen, am besten etwas kurzes ohne Sonderzeichen.
Wenn der Computer einen Namen hat kann man die TimeMachine aktivieren, ganz normal über Systemeinstellungen, Time Machine und über "Volumen auswählen ..." sollte unsere Time Capsule gefunden werden.
Probleme beim einrichten des Backup Laufwerks
Beim einrichten von Time Machine wird auf dem Ziel-Lauferk ein Sparsebundle erzeugt, es sieht so aus als ob OS X damit ein Problem hat wenn das Ziel mehrere Terra Byte gross ist da es hier immer mit einem Fehler abbricht. Der Fehler lässt sich umgehen wenn man das Sparsebundle von Hand anlegt und in das Backup Share kopiert, der Trick dabei ist das das Bundle den richtigen Namen bekommt. Im Namen des Bundles müssen der Name des Mac und die MAC Adresse des Kabel Netzwerks drin stehen.
In einem Terminal Fenster auf dem Mac
hdiutil create -library SPUD -megabytes 51200 -fs HFS+J -type SPARSEBUNDLE -volname "$(hostname -s)_$(ifconfig en0 ether |grep ether | cut -c 8- |sed -e 's/[:| |\t]//g').sparsebundle" "$(hostname -s)_$(ifconfig en0 ether |grep ether | cut -c 8- |sed -e 's/[:| |\t]//g').sparsebundle"
Mit diesem Einzeiler wird auf dem Desktop ein 50GB Sparcebundle erzeugt das bereits den richtigen Namen hat. Sobald das Bundle auf den Server kopiert wurde, lässt sich die Time Machine einrichten und zukünftigen Backups steht nichtmehr im Wege.
Quellen
Neben den Projektseiten von netatalk, war vor allem dieser Blog Artikel eine gute Inspiration







