(Note to English speaking readers: Also available in English.)
Vielleicht hilft das hier ja Jemandem. Immerhin hat es mich heute den halben Nachmittag gekostet. Worum es geht: Mac OS X hat in seiner neuesten Version Leopard (Mac OS X 10.5.2 während ich dies schreibe) eine automatische Datensicherungslösung eingebaut, genannt Time Machine.
Diese erstellt äußerst praktisch automatische Backups, kümmert sich um alles und bietet sogar ein sehr stylisches Interface, um alte Daten zu finden und wieder herzustellen.
Leider ist Time Machine mit ein paar Einschränkungen verbunden. Bisher funktioniert sie ohne Weiteres lediglich auf externen Festplatten, die man direkt an den Mac anschließt. Ein Produkt für Netzwerk-Backups hat Apple angekündigt, wünschenswert wären aber auch Backups auf bestehende Laufwerke im Heimnetzwerk.
Bei macnews findet sich eine Anleitung, wie man immerhin Time Machine dazu überreden kann, Netzwerkfreigaben als Laufwerk zu akzeptieren. Dazu reicht die Eingabe von (alles in einer Zeile)
defaults write com.apple.systempreferences
TMShowUnsupportedNetworkVolumes 1
im Terminal. Das führt aber nur dazu, dass Time Machine zwar eine Netzwerkfreigabe akzeptiert, dann aber (zumindest bei mir) beim Erstellen des ersten Backups scheitert:
Fehler bei Time Machine - Das Image des Backups konnte nicht erstellt werden.
Ziemlich unbefriedigend also. Es müssen weitere Lösungen her. Keinesfalls sollte man den Vorschlag berherzigen, der bei macnews in den Kommentaren geäußert wurde, wo es heißt, dass Time Machine einfach ein selbst erstelltes Disk Image auf dem Netzlaufwerk akzeptiere. Nach stundenlangem Image-Erstellen ließ sich Time Machine nicht überzeugen, dieses zu verwenden.
Stattdessen hilft es, sich den gescheitereten Backup-Versuch mal genauer anzusehen. Dabei fällt auf, dass Time Machine auf der Freigabe versucht, ein Bundle-Image zu erstellen. Warum das scheitert, bleibt ein Geheimnis von Time Machine.
In Apples Supportforen findet man weitere Lösungshinweise. Dort wird vorgeschlagen, dass Bundle-Image während der Erstellung zu kopieren und nach dem Scheitern zurück zu kopieren. Hat bei mir nicht funktioniert.
Es geht aber sowieso viel einfacher. Während des Backupversuchs erstellt Time Machine auf der Freigabe das Bundle-Image. Dieses heißt dann <rechnername>_<zeichenkette>.sparsebundle (Nachtrag: zeichenkette ist die MAC-Adresse des lokalen en0-Devices ohne Doppelpunkte). Diesen Namen sollte man sich merken (z. B. per Copy & Paste oder durch Nachschauen in der Konsole).
Anschließend erstellt man mit dem Festplatten-Dienstprogramm einfach auf dem lokalen Rechner ein “Mitwachsendes Bundle-Image” in der gewünschten Maximalgröße (s. Nachtrag 3) des Time-Machine-Backups (keine Angst, das Image wird erst durch Benutzung groß). Weitere Parameter: Format - Mac OS Extended (Journaled); Partitionen - Keine Partitionstabelle.
Danach benennt man dieses Image (falls nicht schon bei der Erstellung geschehen) genau so wie vorher Time Machine sein Bundle-Image genannt hat. Das Image kopiert man dann noch auf die Freigabe und startet manuell ein Backup über die Menüleiste.
Voilà. Anschließend sollte Time Machine beginnen, das langwierige erste Backup zu erstellen. Weitere Details folgen, sobald ich diese Lösung ausgiebiger getestet habe.
Nachtrag: Nach einigem Herumprobieren bin ich positiv überrascht. Nach dem ersten erfolgreichen Backup versucht Time Machine stündlich neue Backups anzulegen. Und dabei verhält es sich sehr vorbildlich. Ist der Netzwerkrechner, auf dem das Backup-Image liegt, nicht erreichbar (z. B. abgeschaltet) wird das Backup einfach nicht durchgeführt und der Benutzer mit Fehlermeldungen verschont. Trotzdem versucht Time Machine weiterhin stündlich auf diesen zuzugreifen. Ist der Rechner dann wieder online, werden neue Backups erstellt. Dabei wird die benötigte Netzwerkfreigabe und das darauf liegende Image automatisch gemountet.
Will man auf die Time Machine zugreifen, um Dateien wiederherzustellen, so funktioniert auch hier das automatische Mounten des Images. Anfangs war jedoch der Spotlight-Index für das Image kaputt. Warum das passierte, kann ich mir nicht erklären. Einen Artikel zur Reparatur dieses Index habe ich bereit gestellt.
Auf dem Rechner im Netz, der die Freigabe für das Image zur Verfügung stellt, habe ich extra einen Backup-Nutzer angelegt, in dessen Benutzerverzeichnis das Image liegt. Erfreulicherweise kommt Time Machine damit klar, wenn ein Benutzer sich für andere Freigaben mit seinen eigenen Benutzerdaten am Netzwerkrechner anmeldet.
Kommen wir zu den Nachteilen. Sobald ein Backup erstellt wird oder aber Time Machine aufgerufen wird, wird das Image zwar gemountet, danach aber nicht immer wieder vom System getrennt. Folglich haben Benutzer auf dem Mac das Image dann auf dem Desktop liegen. Auch die Verbindung zur eigentlichen Netzwerkfreigabe (auf der ja das Backup-Image als Datei/Ordner liegt) bleibt hergestellt. Diese ist aber nur durch Eingabe von mount im Terminal sichtbar.
Beides ist prizipiell nicht schlimm, solange die Freigabe ständig verfügbar ist. Das ist aber nicht unbedingt der Fall. Will man das Image und die Freigabe sauber vom System trennen, muss man zunächst das Image auswerfen. Das klappt aber nur manchmal ohne Weiteres. Teilweise verlangt das System die Eingabe eines Administratorpassworts, wann genau konnte ich nicht feststellen. Die Netzwerkfreigabe lässt sich nur über umount trennen. Kritisch wird es vermutlich, wenn der Freigaberechner heruntergefahren wird, während eine Verbindung besteht oder gerade gar ein Backup erstellt wird.
Und natürlich ist auch die Geschwindigkeit ein großer Nachteil. Wenn (wie hier) der Mac ein Notebook ist, vorrangig mit altem 802.11g-WLAN unterwegs ist und die Freigabe noch dazu über einen Windowsrechner per SMB verbunden ist, darf man sicher nicht zu viel erwarten.
Nachtrag 2: Ich habe Time Machine noch einmal ordentlich gequält. Dabei verhält es sich weiterhin erstaunlich robust. Es kommt vergleichsweise gut damit klar, wenn während des Backups der Freigabenhost vom Netz getrennt wird. Das Backup versagt dann natürlich, wird aber beim nächsten Mal einfach nachgeholt.
Auch kommt Time Machine bzw. Mac OS damit klar, wenn auf der Freigabe weniger Platz frei ist als im Bundle-Image theoretisch frei wäre. Hier orientiert sich Mac OS an der Freigabe, so dass das Image dann entsprechend eher voll erscheint.
Anschließend habe ich dann noch das Image von der Windowsfreigabe auf die externe Festplatte am anderen MacBook kopiert (das hatte einfach parktische Gründe; der Windowsrechner ist fast nie gleichzitig mit dem MacBook in Betrieb, so dass man ihn extra für Backups anschalten müsste; das andere MacBook ist jedoch wesentlich häufiger eingeschaltet). Time Machine verkraftet diesen Wechsel problemlos.
Allerdings habe ich dabei eine interessante Feststellung gemacht. Ließ ich Time Machine vorher ein komplett neues Backup auf der Freigabe des anderen MacBooks (die per AFP und nicht per SMB eingebunden ist) erstellen, klappte das Imageerstellen hier problemlos. Nun habe ich die Vermutung, dass im SMB-Subsystem von Leopard einfach etwas kaputt ist.
Darauf deutet auch hin, dass es mir nicht gelang, auf einer SMB-Freigabe ein Image von Hand zu erstellen. Ein Versuch per hdiutil liefert nur:
DIHLDiskImageCreate() returned 45
hdiutil: create: returning 45
hdiutil: create failed - Der Vorgang wird nicht unterstützt
Wahrscheinlich der gleiche Fehler, der auch Time Machine aus dem Konzept bringt. Wenn dem so ist, bleibt zu hoffen, dass dieser Fehler in kommenden Versionen von Mac OS X behoben werden könnte.
Nachtrag 3: Was es beim freien Speicher auf der Freigabe und der Maximalgröße des Images zu beachten gilt.


Aktuelle Kommentare