FreeBSD als Time Machine-Server für Mac OS X


Netatalk ganz einfach


Von Thorsten Geppert am 17.11.2011, geändert 17.11.2011.

(Diese Anleitung bezieht sich auf FreeBSD 8.2 und 9.0RC1 mit netatalk 2.2.1.1)

Bis Mac OS X Snow Leopard (10.6) habe ich Time Machine immer via iSCSI auf FreeBSD genutzt, welche ich mit dem kostenlosen iSCSI-Initiator von globalSAN genutzt habe. iSCSI auf FreeBSD einzurichten ist sehr einfach und globalSAN lief immer recht gut.

Nachdem globalSAN aber zum aktuellen Zeitpunkt nicht mehr vernünftig auf Lion funktioniert (falsche Festplattengröße wird angezeigt, das Festplattendienstprogramm kann das Device nicht formatieren oder hängt sich sogar auf, via Terminal kann man mit newfs kein Dateisystem erstellen oder Time Machine meldet einfach laufend Fehler) und globalSAN seinen Initiator jetzt kostenpflichtig gemacht hat, musste eine andere Lösung her.

Da fiel die Wahl auf netalk, womit man sein FreeBSD (oder Linux oder Solaris oder usw.) mit dem Apple File Protocol ausstatten kann. Da ich es nur für Time Machine benötige und alle weiteren Freigaben via NFS oder SMB laufen lasse, habe ich mich für die einfachste und zielgerichtetste Konfiguration entschlossen.

Netatalk wird über die Ports installiert (cd /usr/ports/net/netatalk && make install oder portinstall -c net/netatalk) und beim Konfigurieren wird alles außer APPLETALK abgewählt (im Notfall einmal mit make config nachsehen). Nach dem Kompilieren und Installieren befinden sich dann alle Konfigurationsdateien unter /usr/local/etc.

Die Datei netatalk.conf wird bearbeitet. Folgende Zeilen werden aktiviert und mit den folgenden Werten versehen:

 AFPD_RUN=yes
 ATALKD_RUN=no
 PAPD_RUN=no

Nach dem Speichern erstellt man das Verzeichnis /var/AppleDB. Das darf ruhig root gehören. Dann benötigt man ein Verzeichnis, in dem man die Time Machine-Daten speichern kann. In meinem Fall ist das /server/timemachine. Diesen Pfad gibt man in der Datei AppleVolumes.default folgendermaßen an:

/server/timemachine TimeMachine allow:<benutzer> dbpath:/var/AppleDB options:usedot,noadouble,nohex,tm

<benutzer> muss durch den/die Benutzer ersetzt werden, der/die auf die Freigabe zugreifen können. Es muss unbedingt darauf geachtet werden, dass diese auch auf Unixebene Schreib- und Leseberechtigungen auf das Verzeichnis haben. Die Benutzer werden kommasepariert angegeben. Wichtig ist die Option tm am Ende. Ohne sie funktioniert Time Machine nicht.

Um netatalk zu starten, müssen in die Datei /etc/rc.conf noch die folgenden Zeilen ergänzt werden:

netatalk_enable="YES"
cnid_metad_enable="YES"
afpd_enable="YES"

Dann kann netatalk mit

service netatalk start

gestartet werden. Mittels [Apfel]+[k] im Finder kann dann direkt die Verbindung zum Server aufgebaut werden. Bis die Freigabe in Time Machine erscheint, kann es ein paar Sekunden dauern (bei mir um die zehn). Anschließend können die Backups durchgeführt werden.

[zurück]