MacOS - Fehler Read-only filesystem (11.x)

Das Erlangen von Schreibrechten auf dem Systemlaufwerk wurde unter Mac OS 11.x (Big Sur) im Gegensatz zu Mac OS 10.x deutlich erschwert. Wie es dennoch möglich ist Dateien zu ändern, hinzuzufügen oder zu löschen, beschreibe ich im Folgenden.

Leider müssen für die Möglichkeit des Schreibzugriffen einige Sicherheitsmaßnahmen deaktiviert werden, nach den durchgeführten Änderungen können die Sicherheitseinstellungen aber teilweise wieder erhöht werden, so man dies für sinnvoll erachtet. Apple erweiterte den Schutz der Dateien des signierten Systemlaufwerks (SSV). Ohne eine kryptographische Signatur der Fa. Apple sind der Zugriff oder die Ausführung nicht mehr möglich. Um nun aber doch Dateien verändern zu können, müssen wir zunächst das Laufwerk entsperren.

Bitte bedenken Sie, dass Sie mit den nachfolgenden Änderungen tief in das Schutzkonzept von Apple für Ihren Mac eingreifen. Sofern Sie die nachfolgenden Schritte ausführen, dann tun Sie dies gänzlich auf eigene Verantwortung und eignes Risiko. Bitte seien Sie sich mit den damit einhergehenden Risiken bewusst!

 

1. Deaktivierung der Festplattenverschlüsselung FileVault

Die Deaktivierung der Festplatten/SSD-Verschlüsselung erfolgt in den Systemeinstellungen -> Sicherheit -> Filevault. Sofern Filevault aktiviert ist, mittels einem Klick auf das Schlosssymbol (unten links) die Schaltfläche Filevault deaktivieren freigeben, dann die Deaktivierung durchführen. Dieser Prozess dauert einige Zeit, je nach Festplattenart und -füllstand.

Disable Filevault

 

2. Neustart des Systems im sog. Recovery Mode

Zur Aktivierung des Recovery Mode bitte den Mac über den Ein-/Ausschalter starten. Sobald der Mac startet, drücken Sie bitte die Befehlstaste und die Taste R gleichzeitig solange, bis unter dem Apfellogo das Starten des Recovery-Systems beginnt. Nach der evtl. Beantwortung von einige Abfragen, erscheint ein Auswahlmenü in der Mitte des Bildschirms. Wählen Sie dann die Anwendung Terminal über die oberste Menüleiste aus.

 

Deaktivierung des Sealed System Volume (SSV)

> csrutil authenticated-root disable

 

Optional können Sie in diesem Schritt auch die System Integrity Protection (SIP) deaktivieren. Einige Tools, welche z.B. gelöschte Dateien wiederherstellen können, erfordern die Deaktivierung.

> csrutil disable

 

3. Neustart von Mac OS im normalen Startmodus

Nach dem erfolgreichen Neustart müssen wir das Gerät des Systemlaufwerks ( Mountpoint / ) herausfinden.

> mount

Ein exemplarische Ausgabe des Befehls könnte wie folgt aussehen:

/dev/disk1s5s1 on / (apfs, sealed, local, read-only, journaled)
devfs on /dev (devfs, local, nobrowse)
/dev/disk1s4 on /System/Volumes/VM (apfs, local, noexec, journaled, noatime, nobrowse)
/dev/disk1s2 on /System/Volumes/Preboot (apfs, local, journaled, nobrowse)
/dev/disk1s6 on /System/Volumes/Update (apfs, local, journaled, nobrowse)
/dev/disk1s1 on /System/Volumes/Data (apfs, local, journaled, nobrowse)
map auto_home on /System/Volumes/Data/home (autofs, automounted, nobrowse)

In obigem Beispiel wurde das Systemlaufwerk auf /dev/disk1s5s1 wurde auf die Hauptebene / gemounted. Vom Gerät /dev/disk1s5s1 schneiden wir nun die letzten beiden Stellen ab und erhalten damit /dev/disk1s5, welches wir im nächsten Schritt einem neuen Moutpunkt zuweisen werden.

 

4. Erstellung eines neuen Mountpunktes

Erstellung eines Mountpunktes in der Dateistruktur im Bereich des angemeldeten Benutzers, z.B.

> mkdir mntroot

Mountes des Sytemlaufwerkes unterhalb des neu erstellten Mountpunktes

> sudo mount -o nobrowse -t apfs /dev/disk1s5 mntroot/ 

Damit haben wir nun lesenden und schreibenden Zugriff auf die Systemdateien des Hauptlaufwerkes unterhalb des Mountpunktes mntroot.

 

5. Änderungen aktivieren

Zur Aktivierung der getätigten Änderungen muss ein neuer Snapshot angelegt werden, welcher fortan gestartet wird.

> sudo bless --folder mntroot/System/Library/CoreServices --bootefi --create-snapshot

 

6. Neustart des Systems

Der notwendige Neustart kann entweder via Menü oder über die Kommandozeile erfolgen. In diesem Fall via Kommandozeile:

> sudo reboot