Fallobst

Also ich sag euch, ich hab ein Wochenende hinter mir. Ein Wochenende des Ärgers, des Stresses und der Verzweiflung. Und der Erkenntnis, dass auch im Hause Apple nicht alles so rund läuft, wie man es gern propagiert. (Auch wenn ich das niemals wirklich geglaubt habe – aber nun hab ich es am eigenen Leib erfahren.) Aber fangen wir am Anfang an.

Am Donnerstag Abend hatte ich mein MacBook Pro (13″ Early 2011) beim Couching dabei, und stöberte in diesem weltweiten Dings. Irgendwann einmal hatte ich das Gefühl, mein Chrome (der in der letzten Zeit schon öfters seine Macken hatte) würde immer träger werden. Also mal das Chrome Gedöns geschlossen, um frisch anzufangen. Denkste – Chrome lässt sich nicht beenden, und mein System blockiert mit einem sog. „Beachball“ (vergleichbar mit der Sanduhr unter Windows). Die üblichen Massnahmen (Aktivitätsanzeige sowie <cmd> <alt> <esc>) schlagen allesamt fehl, der Beachball bleibt. Also auf die harte Tour – System komplett ausschalten. Ich weiss, macht man nicht – aber nach 20 Jahren Computerei hast du keine Skrupel mehr. Kalkuliertes Risiko und so. Aus, an, und – System hängt beim Starten im Apfel-Logo fest, Ladekreis dreht wie wild. Hm, denk ich. Also mal versuchen, im Safe Mode (Einschalten und nach dem Piepston <shift> gedrückt halten) zu starten. Selbes Ergebnis. Meine letzte Tat an diesem späten Abend war dann ein Verbose Boot (<cmd> v), um mir die Systemmeldungen anzusehen. Hier drückte mir das System dann einen kryptischen Fehler beim Aufruf der Datei „/usr/libexec/xpchelper“ ins Gesicht. Super. Das wird dauern, dachte ich, und ging erstmal schlafen.


Am Freitag nach der Arbeit ging es dann weiter. Nächster Versuch: Der Recovery Modus (zu erreichen beim Systemstart über <cmd> r). Dieser funktionierte zumindest, so schlimm konnte es also nicht sein. Das Festplatten-Dienstprogramm fand keine grösseren Fehler – bis auf eben die fehlerhafte XPCHELPER ebenfalls anzuprangern, mit folgender Meldung: „Fehler 1 beim Öffnen: „Operation not permitted“ auf usr/libexec/xpchelper“

Meine an sich fabelhafte Idee, besagte Datei aus meinem letzten Backup zurückzukopieren, erwies sich als steinig, aber machbar. Mein Backup machte ich bis Dato per Carbon Copy Cloner, und zwar als Sparsebundle (fragt nicht warum, ich weiss es nicht mehr). Also in einem Anfall von Halbwissen mit dem Festplatten-Dienstprogramm das Sparsebundle von der externen Platte gemountet, im Terminal die fehlerhafte Datei per „mv /DateiAlt /DateiNeu“ umbenannt, und per „cp /Quellpfad /Zielpfad“ die Datei aus dem letzten Backup ins System zurückkopiert. Neustart, und – woohooo, System läuft! Naja, es startete jedenfalls. Fast alles danach war Quälerei, das System lief sehr unsauber und hakte. Und nein, es war nicht der Safe Mode, irgendwas war also noch krumm. Was tun? Das Zurückspielen des letzten TimeMachine Backups, welches ich dann doch noch vornahm, dauerte ca. 4 Stunden. Und es brachte – genau, nichts. Das System lief weiterhin unrund, die Programme humpelten vor sich hin.

Ich beschloss, Lion nochmals drüber zu installieren, ganz in alter Windows-Manier. Dies wurde in diversen Mac-Foren bei derlei Problemen empfohlen, so falsch konnte es nicht sein. Also Lion im Appstore nochmals geladen, und das Setup ausgeführt. Das Setup startete dann auch wie angekündigt den Mac neu, nur um kurz nach dem Reboot mit folgendem Screen stehen zu bleiben:

Super. Das System kann kein Wiederherstellungssystem erstellen? Und warum? Der Link, welcher auf dem Bild zu sehen ist, konnte mir keine befriedigende Antwort darauf geben, zumal ich weder ein RAID-Volume, noch BootCamp einsetzte. Ein kleiner, versteckter Hinweis, dass FileVault nicht zum Sichern der Daten verwendet werden kann, brachte mich zumindest auf eine Spur: Ich hatte beim Upgrade von Mac OS X 10.6 Snow Leopard auf 10.7 Lion mein MBP mit FileVault 2 verschlüsselt. Anscheinend schliesst das die Verwendung der Recovery-Partition aus – was mir nicht einleuchtet, denn ich hatte das Recovery ja schon gesehen?!
Ein erneutes Starten des Systems zeigte ein weiteres unschönes Verhalten: Anscheinend hatte das Setup das System bereits so modifiziert, dass es ohne fremde Hilfe nicht wieder aus diesem Setup-Loop herauskam, es startete und hielt immer an der selben Stelle an. Ein Versuch, doch noch den Recovery Mode zu entern, brachte mir nur noch einen durchgestrichenen Ordner auf den Bildschirm, was wohl so viel bedeutet wie „Kannste vergessen“. Nach etlichen Versuchen der Rebootens kam mir die Idee, doch mal mit der <opt> Taste zu starten, um zu sehen, welche Boot Volumes überhaupt zur Verfügung stehen. Und – tadaa – mein System gab es doch noch, und so konnte ich es zumindest starten.
Zurück im (schlecht laufenden) System, ging es direkt in das Festplatten-Dienstprogramm, um FileVault zu deaktivieren. Diese Prozedur des Entschlüsselns dauerte dann noch mal schlanke 3-4 Stunden.

Ok, dachte ich, dann jetzt mal ein neuer Installationsversuch. Es war mittlerweile Samstag Morgen. DIe Überraschung folgte hart und ungerecht: Auch ohne FileVault 2 war der Lion Installer nicht in der Lage, die Recovery-Partition zu erstellen. HimmelArschUndZwirn, ich war langsam am Ende mit meinem Latein. Ich hab jetzt hier nicht jedes Detail notiert, was ich ausprobiert habe, es waren jedenfalls verdammt viele Tipps und Tricks, die ich so im Netz gefunden habe. Unter anderem auch ein Skript, welches ggf. die alte Recovery Partition löschen und eine neue anlegen sollte. Alles scheiterte. Irgendwo stiess ich dann auf einen Hinweis, man solle sich doch mal das Lion Installationsprotokoll in der Konsole ansehen. Oh man, warum bin ich da nicht gleich drauf gekommen, unter Windows ist doch der erste Gang stets der in die Eventlogs.

Die Meldung, welche ich dann in irgendeinem der vielen Logs fand, liess dann auch direkt Ungutes vermuten:

/dev/rdisk0s3: fsck_hfs run at Sun Jun 10 12:36:11 2012
/dev/rdisk0s3: ** /dev/rdisk0s3 (NO WRITE)
/dev/rdisk0s3: Executing fsck_hfs (version diskdev_cmds-540.1~34).
QUICKCHECK ONLY; FILESYSTEM DIRTY
/dev/rdisk0s3: fsck_hfs run at Sun Jun 10 12:36:13 2012
/dev/rdisk0s3: ** /dev/rdisk0s3
/dev/rdisk0s3: Executing fsck_hfs (version diskdev_cmds-540.1~34).
** Checking Journaled HFS Plus volume.
 Invalid B-tree node size
(3, 0)
/dev/rdisk0s3: ** The volume could not be verified completely.

Spätestens hier war der Drops gelutscht. Das Internetz verriet mir, dass dieser Fehler im Dateisystem eigentlich nur durch Neuformatieren und Zurückkopieren des letzten Backups sinnvoll behoben werden kann, jedenfalls, wenn man keine teure Recovery Software, wie z. B. DiskWarrior (99 USD), besitzt. Somit dürfte also klar sein, dass der Absturz bzw. das anschliessende Ausschalten des Macs mehr beschädigt haben dürfte, als auf den ersten Blick erkennbar. Es musste also komplett neu installiert werden, um wieder zu einem schnellen und sicher laufenden System zu kommen:

Die Lösung

1. MacBook neu starten und Internet Recovery ausführen (beim Starten also <cmd> r drücken); hier ist eine LAN-Verbindung von Vorteil; WPA2-verschlüsseltes WLAN funktioniert NICHT im Internet-Recovery Modus! (auch so ein Fail – wer hat schon noch unverschlüsseltes WLAN?)
2. Im Internet-Recovery das Festplatten-Dienstprogramm starten und den Systemdatenträger komplett löschen
3. Lion auf dem Systemdatenträger neu installieren
4. Im frisch installierten System einen Benutzer mit einem anderen (!) als den im alten System gewählten Namen anlegen (ansonsten funktioniert die Migration des alten Kontos nicht, da das gerade angemeldete Benutzerkonto nicht überschrieben werden kann!)
5. mit diesem Konto anmelden und den Migrationsassistenten ausführen
6. im Migrationsassistenten das Benutzerprofil aus der letzten Sicherung importieren

Und was soll ich sagen – völlig unerwartet, hatte ich auf einmal ein rund laufendes System, das sogar alle Apps und Einstellungen aus meinem letzten Backup sauberst übernommen hatte!

Sicherlich hätte ein Mac-Profi vieles von dem aus dem Eff-Eff gemacht, wofür ich 2 Tage gebraucht habe. Ich muss sagen, ich habe bei allem Ärger sehr viel gelernt und vor allem einige eklatante Schwächen (sowohl im OS X selbst, als auch in meiner Backup-Strategie) ausgemacht, die es künftig zu beachten gilt:

1. Warum erschwert/blockiert FileVault 2 die Verwendung einer Recovery-Partition? (Hier gibt es widersprüchliche Meinungen im Netz. Die einen meinen, es würde gehen, bei anderen geht es nicht. Offenbar unterscheiden sich auch in Sachen Recovery HD die Systeme, die bereits mit Lion ausgeliefert worden sind, von denen, die ein Upgrade von einer älteren Version erhalten haben.)
2. Warum funktioniert das Internet Recovery nicht über eine WPA(2)-verschlüsselte WLAN-Verbindung?
3. Das Lion-Recovery funktioniert NICHT über eine Proxy-Verbindung (dies hätte ich bei einem ersten Rettungsversuch in der Firma benötigt) – jedenfalls nicht OOTB, einen (bei mir nicht funkionierenden) Trick hat mir dieser Artikel gezeigt
3. Viele dieser Schritte sind seitens Apple einfach schlecht dokumentiert. Woher weiss der gemeine User, welche umfangreichen Möglichkeiten der Systemreparatur vorhanden sind und welche Bootmodi zur Verfügung stehen? Von der Mächtigkeit des Terminals ganz zu schweigen.
4. Mac OS X ist nicht stabiler und nicht reparaturfreundlicher als z. B. Windows 7.

Meine persönlichen Konsequenzen aus diesem Martyrium:
1. Backup über Carbon Copy Cloner ohne Umweg über ein Sparsebundle direkt auf externe HD; dies hat den Vorteil, dass direkt von dieser Festplatte gebootet und ein Restore gemacht werden kann
2. Carbon Copy Cloner donaten – dieses Programm ist umfangreicher und hilfreicher als zuerst angenommen. U. a. bietet es die Möglichkeit, die Recovery-Partition auf ext. Datenträger zu klonen. Es hat mir quasi „den Arsch gerettet“ :-)
2. für das tägliche Backup wird weiterhin Time Machine auf mein NAS sichern; da die von Time Machine vorgegebenen Intervalle mir zu kurz sind, setze ich die kostenlose App „Time Machine Scheduler“ ein, um die Intervalle individuell zu setzen.
3. FileVault 2 deaktiviert; ich habe keine wichtigen Daten auf dem MB und sehe mittlerweile eher die gravierenden Nachteile einer aktivierten Verschlüsselung.
4. wichtige Terminalbefehle von Mac OS X (bzw. Linux, diese gleichen sich in vielen Dingen) lernen, wie z. B. das Mounten von Devices, fsck etc.

Im Folgenden noch eine Auflistung diverser Seiten und Artikel, die mir weitergeholfen haben: