Probleme mit Time Machine Backups auf NAS-Systemen unter Lion lösen

Nach der Veröffentlichung von Lion gab es eine ganze Welle von Problemmeldungen, dass Time Machine Backups auf NAS-Systemen (Netgear ReadyNAS, QNAP, FreeNAS usw.) nicht mehr funktionieren würden, da Lion eine Fehlermeldung zeigte, dass das Laufwerk inkompatibel sei. Dieses Problem wurde von den meisten Herstellern der NAS-Systeme gelöst, in dem sie eine neuere Netatalk-Version in ein Firmwareupdate ihrer NAS-Systeme integrierten. Apple-Server und Geräte (Time Capsule) waren nicht betroffen.

Seit einiger Zeit häufen sich nun die Probleme, dass Lion folgende Meldung von sich gibt:

„Time Machine hat die Überprüfung Ihres Backups abgeschlossen. Um die Zuverlässigkeit zu verbessern, muss Time Machine ein neues Backup für Sie erstellen.“

Mit ein wenig Arbeit im Terminal lässt sich dieses Problem beheben.

Kommt diese Fehlermeldung, sollte man auf keinen Fall gleich "neues Backup erstellen" wählen, da dann das alte Backup einfach gelöscht wird!

Unglücklicherweise bietet Lion nur an, ein neues Backup zu starten, oder später ein neues Backup zu starten, nicht aber, eine Reparatur des angeblich defekten Backups zu versuchen.

Damit werden einfach alte Backups gelöscht und ein komplett neues Backup angelegt, dessen Anfertigung – besonders, wenn man es über WLAN laufen lässt – schnell in den zweistelligen Stundenbereich geht.

Wer sich in das OS X Terminal traut, findet hier die Lösung, wie man mit den OS X eigenen Bordmitteln das Backup überprüfen und ggf. reparieren kann, so dass man es wieder benutzen kann.

Diese Schritte können teilweise sehr lange dauern, es ist also empfehlenswert, Gigabit Ethernet und nicht WLAN zu benutzen!

Zunächst muss die Verbindung zu dem Laufwerk, auf dem das TimeMachine Backup liegt, hergestellt werden. (Wer sich das Icon der Sparsebundle-Datei anschaut, wird feststellen, dass diese ein kleines Schloßsymbol drauf hat, da sie verriegelt wurde, nach dem sie überprüft und als defekt befunden wurde.)

 

Dann wird das Terminal gestartet und als Super User bzw. Root authentifiziert:

equestria:~ celestia$ sudo su

Als nächste Maßnahme werden wir die Defekt-Markierung rückgängig machen:

chflags -R nouchg /Volumes/{Netzlaufwerk}/{Datei}.sparsebundle

Nach einer ganzen Weile sollte der Vorgang fertig sein. Nun Folgendes zum Mounten des Images eingeben (alles in eine Zeile):

hdiutil attach -nomount -noverify -noautofsck 
/Volumes/{Netzlaufwerk}/{Datei}.sparsebundle

Der folgende Output sieht in etwa so aus (bei mir ist es disk2, es kann aber auch disk 3/4/x sein):

/dev/disk2 Apple_partition_scheme
/dev/disk2s1 Apple_partition_map
/dev/disk2s2 Apple_HFSX

Nun sollte im Hintergrund schon eine Überprüfung und ggf. Reparatur des Images durch die hdiutils stattfinden. Nachprüfen kann man das, in dem man einfach Folgendes im Terminal eingibt:

tail -f /var/log/fsck_hfs.log

Es sollte nun nach einer Weile in etwa so etwas dort stehen:

/dev/rdisk2s2: ** /dev/rdisk2s2
/dev/rdisk2s2: Executing fsck_hfs (version diskdev_cmds-540.1~25).
** Checking Journaled HFS Plus volume.
[…]
** The volume Time Machine appears to be OK.

Für den Fall, dass dort nicht „The volume Time Machine appears to be OK“, sondern „The volume could not be repaired“ steht, kann man fsck laufen lassen (wird eine ganze Weile dauern). Zunächst verlassen wir mit ctrl-c den Output von tail und haben die Möglichkeit, weiter zu machen:

fsck_hfs -drfy /dev/disk2s2

(auf das richtige Laufwerk achten, wir wollen die Apple_HFSX Partition!)

Ist das Volume repariert (mit ctrl-c aus dem Output von tail raus gehen), unmounten wir das Image wieder:

hdiutil detach /dev/disk2s2

(auf das richtige Laufwerk achten, wir wollen die Apple_HFSX Partition!)

Hier die Datei com.apple.TimeMachine.MachineID.plist in einem TextEditor wie TextEdit, TextWrangler etc. editieren. auf entsprechende Rechte achten!

Fast fertig! Jetzt müssen wir nur noch in der Datei com.apple.TimeMachine.MachineID.plist ein paar kleine Änderungen vornehmen. Diese Datei befindet sich im Sparsebundle. Im Finder auf das Sparsebundle einen Rechtsklick machen und dort die Datei „com.apple.TimeMachine.MachineID.plist“ in TextEdit editieren, oder im Terminal die Datei mit nano editieren (alles in eine Zeile):

nano /Volumes/{Netzlaufwerk}/{Datei}.sparsebundle
/com.apple.TimeMachine.MachineID.plist

Zunächst müssen die beiden folgenden Zeilen entfernt werden:

<key>RecoveryBackupDeclinedDate</key>
<date>{das entsprechende Datum}</date>

Dann noch die folgenden Einträge von

<key>VerificationState</key>
<integer>2</integer>

in

<key>VerificationState</key>
<integer>0</integer>

ändern.

Jetzt kann TimeMachine noch mal gestartet werden und beschwert sich hoffentlich nicht mehr, während es erneut das Backup überprüft – bis es das nächste Mal diese Behandlung benötigt. In der Zwischenzeit gab es dann hoffentlich entweder ein weiteres Update der NAS-Software mit neuerem Netatalk, oder ein Lion-Update.