TimeMachine ist ne' feine Sache, die ich auf sämtlichen Macs des Haushalts verwende.

Auch die Laptops sichern sich regelmäßig via Netzwerk auf meinem macMini ab, an dem ich eine extra Festplatte für alle Backups angeschlossen habe. Eine teure TimeCapsule? Meiner Meinung nach unnötig, da mein macMini sowieso die ganze Zeit läuft.
 
Vor kurzem meinte die TimeMachine meines MacBooks allerdings, streiken zu müssen. Auf einmal wollte TimeMachine "um die Zuverlässigkeit des Backups zu verbessern" ein neues Backup anlegen. Okay, kann ja nach all den Jahren mal vorkommen.
Dass es allerdings nur ein paar Wochen schon wieder vorkam, lies mich stutzig machen. Vor allem, weil durch diese Aktion sämtliche Versionen der vorherigen Backups verloren gingen und das Neuanlegen des Backups via WLAN dauert ziemlich lange.

Es scheint sich hierbei um einen Fehler im Dateisystem des Backups zu handeln, welches sich relativ einfach beheben lässt, ohne dass man jedes Mal ein neues Backup anlegen muss.

Ich befinde mich an meinem macMini, an dem die Festplatte angeschlossen ist, auf der sämtliche Backups liegen und navigiere im Terminal zum Speicherort aller MacBook-Backups.

cd /Volumes/TimeCapsule/MacBookCapsule
ls

Dies gibt mir alle Image-Dateien, die hier so liegen, wieder:

.DS_Store
.com.apple.timemachine.supported
MircoBook Pro.sparsebundle
Sarahs MacBook.sparsebundle
MacBook2.sparsebundle

Die Probleme habe ich mit dem MircoBook Pro, also merken wir uns den Namen dessen Backup-Images und beginnen mit der Reparatur, nachdem wir den Laptop entweder für diese Zeit in den Ruhezustand versetzt oder zumindest in den TimeMachine-Einstellungen TimeMachine deaktiviert haben. Es soll uns ja niemand dazwischenfunken ;-)

sudo chflags -R nouchg MircoBook Pro.sparsebundle
sudo hdiutil attach -nomount -noverify -noautofsck MircoBook Pro.sparsebundle

Auf den letzten Befehl sollte eine Ausgabe wie etwa

/dev/disk*              Apple_partition_scheme          
/dev/disk*s1            Apple_partition_map            
/dev/disk*s2            Apple_HFSX

folgen, wobei statt dem * irgend eine Zahl stehen wird.

Diese setzen wir im Folgenden auch wieder statt dem * ein...bzw. nehmen wir den Einhängepunkt von Apple_HFSX:

sudo fsck_hfs -drfy /dev/disk*s2

Hiermit prüft und repariert fsck die Apple_HFSX-Partition. Dies wird eine sehr lange Weile dauern.

Möglicherweise lässt sich der Befehl nicht ausführen, weil

/dev/disk*s2
bereits in Verwendung ist:
Can't open /dev/rdisk*s2: Resource busy
.
In diesem Fall ist MacOS X im Hintergrund wahrscheinlich selbst noch beschäftigt, zu versuchen, das Image zu reparieren. Am besten mit
kill
abbrechen und nochmals selbst versuchen:
1. fsck-Prozesse auflisten:
ps auxwww | grep fsck

2. Prozess-ID in der Ausgabe finden:
root 78363 11.5 12.6 862172 263904
... (direkt hinter "root")
3. killen:
sudo kill 78363

Nun sollte sich
sudo fsck_hfs -drfy /dev/disk*s2
ausführen lassen.

Nach Abschluss der Reparaturarbeiten...

...bleibt nur zu hoffen, dass der Befehl mit einem

The volume Time Machine-Backups was repaired successfully

abschließt. Sollte dies nicht der Fall sein und man statt dessen ein
The Volume could not be repaired
lesen, so starten wir nochmals einen Versuch mit
sudo fsck_hfs -drfy /dev/disk*s2

Oder – sollte der Fehler

RebuildBTree – record x in node y is not recoverable
auftreten:

sudo fsck_hfs -p /dev/disk*s2
sudo fsck_hfs -drfy /dev/disk*s2

Nun noch etwas Aufräumen...

hdiutil detach /dev/disk*s2

...und TimeMachinen sagen, dass das Backup in Ordnung ist:
Dazu im Finder die .sparsebundle-Datei des Backups ausfindig machen und mit einem Rechtsklick "Paketinhalt anzeigen" auswählen und die Datei

com.apple.TimeMachine.MachineID.plist
in einem Texteditor wie etwa TextWrangler öffnen.

Sollten die Rechte dazu nicht ausreichen, dann halt via Terminal:

sudo pico MircoBook Pro.sparsebundle/com.apple.TimeMachine.MachineID.plist

Die Zeilen

<key>RecoveryBackupDeclinedDate</key>
<date> ... </date>

müssen gelöscht werden, sollten sie vorhanden sein.

Und an dieser Stelle aus der 2 eine 0 machen:

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

Speichern, TimeMachine auf dem Client-Rechner wieder aktivieren und hoffentlich funktioniert wieder alles wie gewohnt.