Tipp: Alte Kernel-Erweiterungen in StagedExtensions löschen

Apples Betriebssystem schützt die im StagedExtensions-Ordner liegenden Kernel-Extensions besonders. Wir zeigen, wie man sie vom Mac entfernt.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 3 Min.

Frage: Nachdem ich das Dienstprogramm meines verkauften Elgato-Docks entfernt hatte, habe ich geprüft, ob eventuell noch weitere Dateien im System verblieben sind. Hierbei wurde ich im Ordner /Library/StagedExtensions fündig. Leider habe ich dort keine Rechte, um die nicht mehr benötigten kext-Dateien zu löschen, auch nicht mit sudo im Terminal. Was kann ich tun?

Mac & i antwortet: Da Kernel-Erweiterungen weitreichende Rechte besitzen, stehen sie unter besonderem Schutz. Ähnlich einem Cache legt macOS Kopien von Extensions in den geschützten Ordner "StagedExtensions", wenn Sie das in der Systemeinstellung "Sicherheit & Datenschutz" mit Ihrem Admin-Kennwort auch bestätigt haben.

Nur die Erweiterungen, die in "StagedExtensions" liegen, werden tatsächlich geladen – und nicht die inaktiven Originale etwa im App-Bundle, in /Library/Extensions oder /Library/FileSystems. So wird verhindert, dass zum Beispiel eine Malware unbemerkt Kernel-Erweiterungen einrichtet. Der Schutz greift selbst dann, wenn sich die Malware als harmloses Tool ausgibt, für dessen Installation man schon vertrauensvoll Admin-Rechte erteilt hat. Die reichen mittlerweile nicht mehr aus, um eine Extension zu aktivieren.

Offenbar scheint macOS auch nach einem Neustart nicht zu prüfen, ob Extensions, die zu einer App gehörten, noch nötig sind. Wir würden erwarten, dass das zumindest beim Starten von macOS in den sicheren Modus passiert (Intel-Macs: Umschalt-Taste beim Booten gedrückt halten; M1-Macs: Volume in den Startoptionen mit gedrückter Umschalt-Taste auswählen). Doch obwohl dabei nur die nötigsten Extensions geladen und viele Caches zurückgesetzt werden, verschwinden nicht immer die alten Erweiterungen.

Es bleibt deshalb nur der Griff zum Terminal. Sie müssen es über einen Account mit Admin-Rechten starten. Folgendes Kommando entfernt ab macOS 11 Big Sur alle Erweiterungen unter anderem aus "StagedExtensions", damit macOS sie später wieder frisch anlegen kann:

sudo kmutil clear-staging

Nach Bestätigung mit Return fragt das Terminal nach dem Admin-Kennwort. Sie müssen es blind eingeben, das Terminal zeigt hier nämlich keine Eingaben an.

Nicht mehr benötigte Kernel-Erweiterungen lassen sich auf modernen Macs nur noch über das Terminal löschen.

Löschen Sie gegebenenfalls noch Altlasten und nicht mehr Benötigtes aus den Ordnern /Library/Extensions oder /Library/FileSystems.

Nach einem Neustart kopiert macOS automatisch alle noch verfügbaren und durch Sie zuvor einmal erlaubten Extensions wieder in den StagedExtensions-Ordner.

Auf älteren Systemen als macOS Big Sur lautet der Terminal-Befehl:

sudo kextcache --clear-staging

Auch hiernach ist ein Neustart erforderlich. Sollten Sie es bei der Aufräumaktion übertrieben und doch noch benötigte Extensions beseitigt haben, müssen Sie die zugehörige Software erneut installieren oder die Extension aus einem Time-Machine-Backup wiederherstellen.

(lbe)