MacOS Update Probleme auf Monterey mit APFS

Zu meiner Schande muss ich gestehen, dass mein privates Macbook irgendwann auf MacOS Mojave hängen geblieben ist. Ich hatte vor ein paar Monaten mal ein Upgrade auf Big Sur probiert, allerdings war der Rechner danach unbrauchbar, weil er nicht mehr gebootet hat. Nach einem ca. 8h oder so andauernden Recovery mittels Timemachine war er wieder einsatzbereit, aber mir war die Lust auf Updates vergangen.

Dieses Problem wollte ich nun endgültig mit dem Umstieg auf MacOS Monterey angehen und lösen. Also habe ich den Installer runtergeladen und wollte die Installation starten – als ich direkt die Fehlermeldung bekam, dass für die Installation ein Datenträger mit APFS notwending ist.
APFS ist ein alternatives Dateisystem, welches von Apple mit MacOS High Sierra verteilt wurde. Eigentlich sollte in Mojave der Datenträger automatisch dahin konvertiert werden (was sogar on-the-fly) gehen sollte, aber irgendwie ist das bei mir nicht passiert. Warum auch immer.

Um die Conversion nachträglich machen zu können, muss man den Mac im Recovery Modus starten, dann das Disk-Utility/Festplattendienstprogramm starten. Dort wirft man die Mac Festplatte aus, markiert sie und klickt dann auf Edit/Bearbeiten und “convert to apfs”. Anschließend wird das System umgestellt. Blöd nur, dass genau das den Fehler verursacht, dass man anschließend nicht mehr booten kann (Stichwort: “Running bless to place boot files failed”). Man könnte MacOS nach der Konvertierung nochmal drüber installieren, aber da Mojave nicht mehr installiert werden kann ging auch das nicht mehr für mich 😂

Die Lösung habe ich dann hier gefunden: https://www.tecklyfe.com/boot-failures-after-converting-macos-ssd-to-apfs/

Ich vermute mal dass das Problem irgendwie mit UEFI oder so zusammen hängt, jedenfalls muss man ein Pre-Boot Environment von Hand anlegen, damit der Bootvorgang wieder reibungslos funktioniert. Und das geht so:

  • Den Mac mit gedrückter Command+R Tastenkombi starten
  • Utilities > Terminal
  • diskutil apfs list ausführen und schauen, welche Nummer und welche UUID die Festplatte eures Macs hat – sie sollte “Macintosh HD” oder so heißen
  • Anschließend (natürlich ohne die eckige Klammer, als z.B. disk2:
    diskutil apfs addVolume disk[Festplatten-NUMMER] apfs Preboot -role B
  • Anschließend dieses Verzeichnis anlegen, wobei die xxx… durch die UUID, die ihr euch in Punkt 3 angesehen habt hier eintragt:
    mkdir -p /Volumes/Preboot/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/System/Library/CoreServices
  • cp -RP /Volumes/MACINTOSH HD/System/Library/CoreServices /Volumes/Preboot/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/System/Library/CoreServices
  • Mittels folgendem Commands repariert ihr nun den Pre-Boot-Eintrag. Ersetz hier das disk2s1, falls deine Partition eine andere Nummer hat:
    diskutil apfs updatepreboot disk2s1
  • Abschließend kannst du nun mit Bless den Boot-Eintrag setzen lassen:
    bless --folder /Volumes/MACINTOSH HD/System/Library/CoreServices --bootefi --verbose
  • Neu starten

[Quicktip] Wie kann ich alle installierten Python pip Packages upgraden?

Über einen kleinen Umweg kann man auf der Bash ganz einfach alle aktuell installierten pip Pakete updaten / upgraden:

pip freeze | sed -e 's/==.*//g' > upgrade.txt
pip install --upgrade -r upgrade.txt
rm upgrade.txt

Das Script lässt sich alle installierten Pakete ausgeben, entfernt das “==[Versionsnummer]” hinter dem Namen und packt diese Liste in die Datei upgrade.txt. Anschließend wird diese Datei bei einem “pip upgrade” als “requirements.txt” übergeben und mit dem upgrade Befehl ausgeführt.