Schlagwort: plist

  • plist, ChatGPT und keine Sicherung

    In meiner „mei Sicht“-Reihe geht es heute um einen dieser Momente, die man eigentlich kommen sieht und man weiß schon in der Sekunde des Tastendrucks: Das war gerade ein monumentaler Fehler.

    Dieser vermeidbare Fehler führte mich zu einer unfreiwilligen Zeitreise in meine Studienzeit, in der mein Professor uns von den Vorzügen des vi Texteditors überzeugen wollte und bei mir und weiteren kläglich scheiterte.

    Nun saß ich da und sah mich schmerzlich daran erinnert, meine Favoriten nano und cat konnte ich hierbei nicht verwenden.

    Eine kaputt konfigurierte config.plist, eine gute Stunde Schwitzen und Recherchieren und die Erkenntnis:
    Vielleicht sollte man nicht jeden Vorschlag der KI blind übernehmen und verdammt noch mal, ein Backup machen.

    Die Falle schnappt zu

    Nach langen und verzweifelten Webrecherchen zum „Sleep Wake failure in EFI“ meines MacBook Pro (early 2013) kam ich auf die glorreiche Idee „frag doch mal die KI“, soll diese sich doch mit all den Lösungsansätzen rumplagen und mir diese zusammenfassen und ich sag ihr dann einfach, ob ich das schon probiert hab und ob es funktioniert oder weiterhin zum Fehler kommt. So war mein glorreicher Plan!
    So kam es, dass ein paar Parameter in der config.plist⁠ (meiner Bootloader-Konfigurationsdatei für OpenCore) angepasst werden mussten.
    Anstatt kurz innezuhalten und eine schnelle Kopie der Datei anzulegen (⁠config_backup.plist⁠ dauert schließlich stolze fünf Sekunden), tippte ich die Werte direkt ein, was soll schon passieren, speicherte und klickte auf Neustart.
    Mein Lohn, ein schwarzer Bildschirm. Kein macOS-Logo. Stattdessen der gefürchtete EFI-Shell-Error:
    ⁠Initialization was not successful. Edit in EFI Shell failed…⁠
    Nichts ging mehr. Der Bootloader war zerschossen, weil die Syntax der Plist-Datei fehlerhaft war. Und ich hatte keine Sicherung.

    Die Rettung macOS-Recovery

    Da der normale Bootvorgang blockiert war, führte mein Weg über die macOS-Wiederherstellung (Recovery).

    1. Den Mac mit gedrückter Recovery-Tastenkombination starten.
    2. Eine externe Maus anschließen, weil mein Trackpad nicht erkannt wurde und die initialen Konfigurationen sowie das WLAN mühsam neu angeben (weil in der Recovery-Umgebung natürlich nichts automatisch verbunden ist).
    3. Oben im Menü über die Dienstprogramme das Terminal öffnen.

      Da saß ich nun. Kein schickes Xcode, kein iA Writer, keine Maussteuerung. Nur ich, eine blinkende Kommandozeile und der nackte Code auf der versteckten EFI-Partition.

    Der Endgegner: „vi“ und der Fehler E949

    Um die Datei zu retten, musste ich die EFI-Partition mounten (wie das geht, habe ich ja kürzlich in kürz & fix beschrieben) und die ⁠config.plist⁠ bearbeiten. Klingt easy, doch meine Verzweiflung stieg an als ich nano eingab… nichts, bis auf die Meldung, dass dieser Befehl unbekannt sei.
    Unter macOS-Recovery gibt es dafür nur einen Editor, der standardmäßig an Bord ist: vi (bzw. vim).

    vi config.plist
    

    Wer noch nie mit vi gearbeitet hat: Es ist der Endgegner unter den Texteditoren. Man kann nicht einfach lostippen. Man muss erst ⁠i⁠ für den Einfügemodus drücken. Und wehe, man drückt die falschen Tasten. Ich suchte im Keller meine alten Notizen, in dem ich den Lebenszyklus und die entsprechenden Tastenkombinationen notiert hatte. Glücklicherweise fand ich diesen auch. Nichtsdestotrotz musste ich die Bearbeitung ein paarmal abbrechen, da ich die falschen Tasten drückte.

    Ich suchte die Zeile mit den fehlerhaften Parametern im NVRAM-Bereich und änderte die Werte mühsam auf den alten Stand zurück. Doch als ich den Editor mit dem klassischen Befehl ⁠:wq⁠ (write & quit / speichern und beenden) verlassen wollte, spuckte mir das System ein eiskaltes:
    ⁠E949: File changed while writing⁠ entgegen.
    Ein Schreibfehler! In der Recovery-Umgebung war die Datei blockiert.
    Der vi-Workaround
    Nach kurzem Fluchen erinnerte ich mich an die alten Unix-Tricks. Wenn vi die Originaldatei beim direkten Überschreiben blockiert, weicht man auf eine neue Datei aus.

    1. Im vi-Befehlsmodus eingeben: ⁠:w config_neu.plist⁠ (Das speichert den korrigierten Text in eine neue, unblockierte Datei).
    2. Den Editor mit ⁠:q!⁠ (beenden, ohne Speichern der Originaldatei) verlassen.
    3. Im normalen Terminal die alte Datei mit der neuen, reparierten Datei überschreiben:

    cp config_neu.plist config.plist

    Das Happy End

    Ein Stoßgebet, ein beherzter Druck auf den Power-Button – und siehe da: Mein macOS bootete wieder, als wäre nie etwas gewesen.


    .plist Dateien unter macOS ohne Zusatzkosten editieren

  • .plist Dateien unter macOS ohne Zusatzkosten editieren

    Diese Anleitung zeigt dir, wie du .plist-Dateien unter macOS bearbeiten kannst, ohne auf kostenpflichtige Drittanbieter-Programme zurückgreifen zu müssen.

    Hinweis

    Die Nutzung dieser Anleitung erfolgt auf eigene Gefahr – insbesondere bei Änderungen an Systemdateien oder Hardware-Konfigurationen. Ich übernehme keine Haftung für mögliche Schäden oder Datenverluste. Fehlerhafte Änderungen an einer .plist-Datei können dazu führen, dass das Betriebssystem nicht mehr startet (einen schmerzhaften Erfahrungsbericht dazu findest du demnächst in meiner „mei Sicht“-Reihe: plist, ChatGPT und keine Sicherung).

    Der Ablauf

    Um eine .plist-Datei (Property List) zu editieren, sind oft zusätzliche Schritte notwendig, da System- oder Konfigurationsdateien häufig auf versteckten Partitionen (wie der EFI) liegen.

    Die Vorbereitung

    Die sauberste Lösung ohne Zusatzkosten ist die Installation von Xcode (direkt über den Mac App Store). Xcode bringt einen integrierten Editor für .plist-Dateien mit, der die hierarchische Struktur übersichtlich darstellt und Syntaxfehler minimiert.

    Schritt-für-Schritt-Anleitung

    1. Mounten der EFI-Partition

    Häufig liegen die zu bearbeitenden Dateien (z. B. für OpenCore wie in meinem Fall) auf der versteckten EFI-Partition. Diese muss zuerst eingehängt („gemountet“) werden.

    • Übersicht der verfügbaren Laufwerke anzeigen:

    Öffne das Terminal und gib folgenden Befehl ein, um die Kennung deiner EFI-Partition zu finden (oft disk0s1):

    diskutil list

    • Mounten der Partition als Administrator:

    Ersetze disk0s1 durch die Kennung aus dem vorherigen Schritt:

    sudo diskutil mount disk0s1

    2. Sicherung anlegen

    Bevor du eine Datei öffnest: Erstelle zwingend eine Kopie der Originaldatei (z. B. config_backup.plist).

    3. Datei mit Xcode bearbeiten

    Navigiere im Finder zur gemounteten Partition und öffne die gewünschte Datei mit Xcode (Rechtsklick -> Öffnen mit -> Xcode).

    • Beispiel OpenCore: Falls du Boot-Argumente anpassen möchtest, findest du diese meist unter:

    Root -> NVRAM -> Add -> 7C436110-AB2A-4BBB-A880-FE41995C9F82 -> boot-args

    4. Änderungen überprüfen

    Nach dem Speichern und einem Neustart kannst du im Terminal prüfen, ob die Parameter (z. B. NVRAM-Variablen) korrekt übernommen wurden:

    nvram -p | grep boot-args