Warum kann ich im Wiederherstellungsmodus nicht auf alle Befehle zugreifen?

Wenn ich versuche, Terminalbefehle im Wiederherstellungsmodus auf meinem MacBook Pro auszuführen, funktionieren die meisten Befehle einfach nicht, selbst wenn ich Root bin (das letzte Zeichen der Standard-Eingabeaufforderung (PS1) ist ein „#“). Warum ist das so und kann ich es beheben?

Welche Befehle versuchen Sie im Wiederherstellungsmodus zu verwenden, einige Befehle sind möglicherweise nicht verfügbar, da es sich im Wesentlichen um eine abgespeckte Version von macOS handelt.
@ bret7600 Ich habe versucht, env usw. zu verwenden, aber wahrscheinlich liegt es daran, dass es, wie (at) Aniempje sagte, nur die grundlegendsten Dinge enthält.
Apple hat die Dinge erheblich verändert, daher muss diese allgemeine Frage wahrscheinlich durch eine betriebssystemspezifische ersetzt werden. Oder wir können uns auf bestimmte Dinge und bestimmte Befehle und Fehler konzentrieren, um bestimmte Dinge zu tun. Das sollte einfacher sein, als einen Wikipedia-Artikel zu erstellen, der alle Dinge auflistet, die in einer Matrix von fünf oder mehr Versionen des Betriebssystems funktionieren oder nicht funktionieren könnten.

Antworten (3)

Die Wiederherstellungspartition ist eine Bare-Bones-Version von macOS, die für verschiedene Dinge verwendet werden kann, z. B. zum erneuten Installieren von macOS oder zum Deaktivieren von SIP (Systemintegritätsschutz). Um die Wiederherstellungspartition klein zu halten, hat Apple entschieden, nicht alle in macOS verfügbaren CLI-Tools einzubinden.

Aus Sicherheitsgründen kann nicht jeder Benutzer auf alle Dateien zugreifen. Der Root-Benutzer sollte in der Lage sein, auf alle Dateien zuzugreifen und alle Programme auszuführen. Es ist ein Berechtigungsproblem. Er ist jedoch nicht in der Lage, Programme auszuführen, die nicht einmal auf der Wiederherstellungspartition vorhanden sind, daher hilft es Ihnen nicht, den Benutzer auf root zu ändern.

Wenn Sie diese Programme verwenden möchten, sollten Sie sowieso nicht die Wiederherstellungspartition verwenden, sondern eine Standard-MacOS-Partition booten.

Bei aktiviertem SIP kann nicht einmal root auf alle Dateien zugreifen und alle Programme ausführen.

Terminal bietet im Wiederherstellungsmodus nur eine Teilmenge von Befehlen, aber es kann nicht behoben werden, da dies das Design von Apple ist. Ich habe ein wenig gegoogelt, um herauszufinden, was genau deaktiviert ist, aber ich habe nichts Definitives gefunden. Ich kann vermuten, dass einige Befehle deaktiviert sind, weil sie bestimmte macOS-Dienste erfordern, die nicht im Wiederherstellungsmodus ausgeführt werden, sowie eine Vielzahl von Kernel-Erweiterungen, die nicht geladen werden. Das Wiederherstellungs-macOS ist eindeutig eine Teilmenge des vollständigen macOS.

Ich würde auch vermuten, dass die verfügbaren Befehle diejenigen sind, die (nach Apples Weisheit) nur während einer Systemwiederherstellung nützlich sind, wie z. B. das Deaktivieren von SIP, das Festplatten-Dienstprogramm, das Zurücksetzen von Kennwörtern usw.

Die "Befehle" sind nicht wirklich "deaktiviert" - sie existieren nicht im Systempfad (/bin:/sbin:/local/bin usw.), um den Platzbedarf gering zu halten. Viele fehlende Befehle können ausgeführt werden, wenn Sie sie vom Hauptvolume starten (zB /Volumes/Macintosh\HD/usr/local/bin/...). Einige Befehle in den Hauptvolumepfaden sind nicht verfügbar/können nicht gestartet werden, da sie auf zusätzliche Bibliotheken/Frameworks angewiesen sind, die im Wiederherstellungssystem nicht vorhanden sind.

Falls das Problem noch einmal auftaucht. Versetzen Sie Ihr MBP in den TARGET DISK MODE , indem Sie T gedrückt halten und den Computer einschalten. Verwenden Sie Firewire für eine Maschine, die nur eine Art Mac sein muss. Wenn Sie den Host-Computer anschließen, wird Ihr MBP je nach Format als externe Festplatte oder externe Festplatten angezeigt.

Sie können dann das Terminal und seine gesamte Sammlung von Befehlen, das vollständige Festplattendienstprogramm und alle anderen Reparatur-Apps verwenden, um auf Ihrem MBP zu arbeiten, während es auf dem Operationstisch in Target Disk liegt. Wenn Sie fertig sind, trennen Sie das Firewire und starten Sie den Wiederherstellungsmodus neu, um den letzten Schliff zu erhalten, den Sie vornehmen und/oder Ihr System aktualisieren möchten!

Obwohl dies nicht die perfekte Antwort auf diese spezielle Frage ist, hängt der Grund, warum viele Menschen zu dieser Frage kommen, mit Allens Antwort zusammen. Danke dafür @Allen Walker.