blog.bartlweb - a technologist's external brain

Time Capsule mit Ubuntu 12.04 simulieren

Die in Apples OS X integrierte Backupsoftware TimeMachine erlaubt standardmäßig nur Backups auf externe Festplatten oder teuer zugekaufte Time Capsules, sowie OS X Serverumgebungen. Gerade wer allerdings schon einen Heimserver betreibt, ist oft auf der Suche nach einer Alternative. Mit OS X Mountain Lion hat Apple das Workaround über Samba Shares unterbunden und verlangt nun nach einer AFP-Freigabe. Mit Hilfe von Ubuntu 12.04 und Netatalk 2.2 lässt sich eine Time Capsule simulieren und sogar für den Mehrbenutzerbetrieb optimieren. So ist es möglich, für jeden vorhanden Mac, eine eigene virtuelle Freigabe zu erstellen und pro Freigabe den zu Verfügung gestellten Speicherplatz zu begrenzen. Somit kann das Volllaufen des Backupvolumes unterbunden werden bzw. allen Macs gleich viel Speicherplatz zu Verfügung gestellt werden.

Netatalk

Zunächst installieren Sie die aktuelle Version von netatalk.

apt-get install netatalk

Danach passen Sie die allgemeine Konfiguration unter /usr/local/etc/netatalk/afpd.conf an. Kommentieren Sie eine eventuell am Ende der Datei enthaltene Zeile aus und fügen Sie die folgende ein.

- -tcp -noddp -uamlist uams_randnum.so,uams_dhx.so,uams_dhx2.so -nosavepassword

Nun definieren Sie die Freigaben. In meinem Beispiel erstelle ich je eine Freigabe für ein MacBookAir und einen MacMini mit jeweils 80GB freigegebenen Speicher. Achten Sie bei der Wahl der Speicherbegrenzung auf die größe Ihrer Client-Festplatte und dem am Server verfügbaren Speicherplatz. Fügen Sie die Konfiguration in die Datei usr/local/etc/netatalk/AppleVolumes.default ein und passen sie Pfad, Freigabenamen (hier: MacBookAir und MacMini), Benutzer (hier: christian und multimedia) und Speicherplatzgrenze entsprechend Ihrer Umgebung an. Achten Sie darauf die Verzeichnisse mit den entsprechenden Zugriffsrechten für die Benutzer auszustatten. Die Benutzer sind Linux-Benutzer, am Besten ohne Zugriff auf die Shell.

/mnt/backup/macbookair MacBookAir allow:christian cnidscheme:dbd options:usedots,upriv,tm volsizelimit:80000
/mnt/backup/macmini MacMini allow:multimedia cnidscheme:dbd options:usedots,upriv,tm volsizelimit:80000

Avahi

Um die Freigaben nun mittels Bonjour im Netzwerk bekannt zu machen und die für TimeMachine notwendige TimeCapsule zu simulieren benötigen wir die Software avahi.

apt-get install avahi-daemon

Zunächst müssen wir die Freigaben als Xserver publizieren um auch über AFP mittels Finder auf die Backups zugreifen zu können. Legen Sie dazu die Datei /etc/avahi/services/afpd.service mit dem folgendem Inhalt an. Achten Sie bei der Namensgebung (hier: TimeCapsule-Server) darauf, dass in Bonjour jeder Name nur einmal vorkommen darf und somit unser unten konfiguriertes TimeCapsule auch nicht den selben Namen erhalten kann.

<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
    <name replace-wildcards="yes">TimeCapsule-Server</name>
    <service>
        <type>_afpovertcp._tcp</type>
        <port>548</port>
    </service>
    <service>
        <type>_device-info._tcp</type>
        <port>0</port>
        <txt-record>model=Xserve</txt-record>
    </service>
</service-group>

Nun simulieren wir unser Time Capsule mit den beiden Freigaben für die zwei Macs. Legen Sie dazu die Datei /etc/avahi/services/timecapsule.service mit dem folgendem Inhalt an und passen Sie zunächst bei Bedarf den Netzwerk-Namen an. Ersetzen Sie die angegebene Mac-Adresse durch die Ihres Servers und passen Sie die Freigabenamen entsprechend der zuvor in der Netatalk-Konfiguration erzeugten Freigaben an.

<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">TimeCapsule</name>
<service>
    <type>_adisk._tcp</type>
    <port>9</port>
    <txt-record>sys=waMA=00:0c:29:1c:ec:fb</txt-record>
    <txt-record>dk0=adVF=0x83,adVN=MacBookAir,adVU=956cf67c-f448-453f-9dec-dd17855ee076</txt-record>
    <txt-record>dk1=adVF=0x83,adVN=MacMini,adVU=956cf67c-f448-453f-9dec-dd17855ee076</txt-record>
</service>
<service>
    <type>_device-info._tcp</type>
    <port>0</port>
    <txt-record>model=TimeCapsule</txt-record>
</service>
</service-group>

Dieser Artikel hat Dir deinen Tag gerettet?

... und mühevolles Probieren, Recherchieren und damit Stunden an Zeit gespart? Oder einfach nur Dein Problem gelöst?

Dann würde ich mich freuen, wenn Du meine Zeit für die Erstellung dieses Blogartikels mit einer kleinen Anerkennung honorierst:

Zahlung mit PayPal oder Kreditkarte.

Hinweis zur Verwendung

Die Übermittlung einer Zahlung ist eine persönliche Anerkennung Ihrerseits an den Entwickler (Christian Bartl, Privatperson). Eine Zahlung ist nicht zweckgebunden und es ist keine Gegenleistung zu erwarten. Bitte beachten Sie, dass für eine übermittelte Zahlung keine Quittung ausgestellt werden kann.

Über den Autor

Christian Bartl

Christian Bartl Requirements Engineer
& Solution Architect für Online und Mobile

Als Technologie-Enthusiast und begeisterter Programmierer entwickle ich in meiner Freizeit Websites, Software und IT-Lösungen, die mir selbst und anderen den Alltag vereinfachen.

mehr auf christian.bartl.me

Kommentare

Noch kein Kommentar vorhanden.
Sei der Erste! - Ich freue mich über deine Anmerkung, Kritik oder Frage.

Kommentar schreiben

Der hier angegebene Name wird gemeinsam mit deinem Kommentar auf der Website veröffentlicht.

Deine E-Mail-Adresse wird zur einmaligen Benachrichtigung bei Veröffentlichung des Kommentars genutzt.

Benachrichtigung per E-Mail über Antworten auf meinen Kommentar erhalten.

Bitte tippe die Zahlenkombination "4748" ein, nur dann kann ich deinen Kommentar entgegennehmen.

Bitte fülle dieses Feld nicht aus, nur dann kann ich deinen Kommentar entgegennehmen.