5.5 macOS – Werkzeuge zur Fehleranalyse
Kurz erklärt
macOS stellt grafische Diagnoseprogramme und zahlreiche Unix-Werkzeuge im Terminal bereit. Damit lassen sich unter anderem folgende Bereiche untersuchen:
- Hardware und Betriebssystem,
- Prozesse und Ressourcenauslastung,
- Arbeitsspeicher,
- Datenträger und APFS,
- Netzwerk und DNS,
- Dienste und Hintergrundprozesse,
- System- und Anwendungsprotokolle,
- Energieverwaltung,
- Berechtigungen und Datenschutz,
- Systemerweiterungen,
- Startprobleme,
- interne Hardwarefehler.
Viele Terminalbefehle ähneln Linux-Befehlen. macOS verwendet jedoch eigene Komponenten und Verwaltungsmechanismen, beispielsweise:
- APFS,
-
launchd, - Unified Logging,
- System Integrity Protection,
- Transparency, Consent, and Control,
- Gatekeeper,
- Apple-Systemerweiterungen,
- macOS-Wiederherstellung.
Ein Symptom ist noch keine Ursache. Auch unter macOS müssen zuerst Zustand, Zeitpunkt, Umfang und betroffene Komponente bestimmt werden, bevor Einstellungen verändert, Dateien gelöscht oder Dienste neu gestartet werden.
1. Sichere Arbeitsweise
Vor einer Veränderung sollten möglichst viele Informationen im fehlerhaften Zustand gesichert werden.
Empfohlene Reihenfolge
- Störung und erwartetes Verhalten beschreiben.
- Zeitpunkt und letzte Änderungen feststellen.
- betroffene Benutzer, Geräte und Anwendungen bestimmen.
- Systemversion und Hardwaremodell erfassen.
- Prozess-, Ressourcen- und Netzwerkzustand dokumentieren.
- relevante Protokolle sichern.
- eine prüfbare Hypothese formulieren.
- eine möglichst kleine und reversible Prüfung durchführen.
- Ergebnis und Nebenwirkungen dokumentieren.
- erst danach eine dauerhafte Lösung umsetzen.
Vor Veränderungen prüfen
- Ist ein aktuelles Backup vorhanden?
- Werden durch den Befehl Daten verändert oder gelöscht?
- Muss eine Anwendung vorher beendet werden?
- Wird ein produktiver Dienst unterbrochen?
- werden flüchtige Diagnoseinformationen vernichtet?
- ist ein Neustart tatsächlich erforderlich?
- bestehen Datenschutz- oder Geheimhaltungsanforderungen?
- ist die Maßnahme mit MDM-, Sicherheits- oder Unternehmensrichtlinien vereinbar?
Wichtige Schutzmechanismen
| Mechanismus | Bedeutung für die Fehleranalyse |
|---|---|
| Benutzerrechte | Viele Informationen sind nur für den aktuellen Benutzer sichtbar. |
sudo |
Führt einen Befehl mit erhöhten Rechten aus, hebt aber nicht automatisch alle macOS-Schutzmechanismen auf. |
| TCC | Kontrolliert unter anderem den Zugriff auf Dateien, Kamera, Mikrofon, Bildschirmaufnahme und Bedienungshilfen. |
| Festplattenvollzugriff | Kann für Terminal oder Diagnoseprogramme erforderlich sein, um geschützte Daten einzusehen. |
| SIP | Schützt kritische Systembereiche und Systemprozesse vor Veränderungen. |
| Gatekeeper | Bewertet heruntergeladene Programme und deren Signatur beziehungsweise Beglaubigung. |
| FileVault | verschlüsselt das Startvolume und beeinflusst Zugriff und Wiederherstellung. |
| MDM | Kann Einstellungen, Profile, Erweiterungen und Sicherheitsrichtlinien zentral vorgeben. |
sudound Festplattenvollzugriff sind nicht dasselbe. Ein als Administrator ausgeführter Prozess kann weiterhin durch TCC oder SIP eingeschränkt werden.
2. Schnelle Systemübersicht
Vor einer tieferen Analyse sollten Betriebssystem, Hardware, Laufzeit und Zeitpunkt erfasst werden.
macOS-Version anzeigen
sw_vers
Typische Ausgabe:
ProductName: macOS
ProductVersion: 14.7.4
BuildVersion: 23H420
Nur die Versionsnummer:
sw_vers -productVersion
Nur die Buildnummer:
sw_vers -buildVersion
Kernel und Architektur anzeigen
uname -a
uname -m
Typische Architekturen:
| Ausgabe | Bedeutung |
|---|---|
arm64 |
Prozess läuft nativ auf einem Mac mit Apple-Chip |
x86_64 |
Intel-Prozess oder unter bestimmten Bedingungen ein durch Rosetta übersetzter Prozess |
Hardware- und Systembericht
system_profiler SPHardwareDataType SPSoftwareDataType
Kompaktere Darstellung:
system_profiler SPHardwareDataType SPSoftwareDataType -detailLevel mini
Alle verfügbaren Datentypen anzeigen:
system_profiler -listDataTypes
Bestimmte Bereiche gezielt untersuchen:
system_profiler SPNetworkDataType
system_profiler SPUSBDataType
system_profiler SPThunderboltDataType
system_profiler SPBluetoothDataType
system_profiler SPStorageDataType
system_profiler SPPowerDataType
system_profiler SPDisplaysDataType
Ein vollständiger Aufruf von
system_profilerkann umfangreich sein und längere Zeit benötigen. Für eine gezielte Fehleranalyse sollten nur die relevanten Datentypen abgefragt werden.
Laufzeit und Last
uptime
Aktuelles Datum und Zeitzone
date
systemsetup -gettimezone
systemsetup benötigt für viele Abfragen Administratorrechte:
sudo systemsetup -gettimezone
Computername und Hostnamen
scutil --get ComputerName
scutil --get LocalHostName
scutil --get HostName
Wenn kein expliziter HostName gesetzt wurde, kann der letzte Befehl eine Fehlermeldung ausgeben. Das beweist allein keine Störung.
3. „Über diesen Mac“ und Systeminformationen
Die grafische App Systeminformationen zeigt Hardware-, Netzwerk- und Softwareinformationen an.
Öffnen
- Apple-Menü → Über diesen Mac → Weitere Infos → Systembericht
- oder über Spotlight nach Systeminformationen suchen
- oder im Terminal:
open -a "System Information"
Geeignete Diagnosebereiche
- Hardwareübersicht,
- Stromversorgung,
- Speicher,
- Grafik und Displays,
- USB,
- Thunderbolt beziehungsweise USB4,
- Bluetooth,
- Netzwerk,
- WLAN,
- installierte Programme,
- Systemerweiterungen,
- Drucker,
- Speichergeräte.
Typische Fragestellungen
- Wird ein USB-Gerät überhaupt erkannt?
- Ist ein externer Datenträger auf Hardwareebene sichtbar?
- Welcher Netzwerkadapter gehört zu welchem BSD-Gerätenamen?
- Wird ein Display erkannt?
- Welche System- oder Netzwerkerweiterungen sind installiert?
- Welche Akkudaten und Ladezyklen werden gemeldet?
Wenn ein Gerät in den Systeminformationen erscheint, ist zunächst nur seine Erkennung bestätigt. Daraus folgt noch nicht, dass Treiber, Berechtigungen, Anwendung und vollständige Funktion korrekt sind.
4. Aktivitätsanzeige
Die Aktivitätsanzeige ist das zentrale grafische Werkzeug zur Untersuchung laufender Prozesse und der Ressourcennutzung.
Öffnen
open -a "Activity Monitor"
Je nach Spracheinstellung wird die App als Aktivitätsanzeige dargestellt.
Wichtige Bereiche
| Bereich | wichtige Informationen |
|---|---|
| CPU | CPU-Anteil, CPU-Zeit, Threads, nicht reagierende Prozesse |
| Speicher | Speicherverbrauch, Speicherdruck, komprimierter Speicher, Swap |
| Energie | Energiebedarf einzelner Anwendungen |
| Festplatte | gelesene und geschriebene Daten |
| Netzwerk | empfangene und gesendete Daten und Pakete |
Darstellung richtig auswählen
Über Darstellung kann festgelegt werden, welche Prozesse angezeigt werden:
- alle Prozesse,
- alle Prozesse hierarchisch,
- eigene Prozesse,
- Systemprozesse,
- aktive Prozesse,
- Prozesse mit Fenstern.
Ein Prozess kann ansonsten übersehen werden, obwohl er weiterhin ausgeführt wird.
Speicherdruck interpretieren
| Zustand | Einordnung |
|---|---|
| Grün | Speicher kann derzeit effizient bereitgestellt werden. |
| Gelb | Speicherressourcen stehen unter zunehmendem Druck. |
| Rot | Der verfügbare Speicher reicht für die aktuelle Last nicht angemessen aus. |
Nicht allein der Wert „freier Speicher“ ist entscheidend. macOS verwendet freien Arbeitsspeicher bewusst als Cache. Aussagekräftiger sind:
- Speicherdruck,
- Swap-Nutzung,
- Komprimierung,
- Entwicklung über einen längeren Zeitraum,
- Zusammenhang mit dem Auftreten der Störung.
Prozess beenden
Die Aktivitätsanzeige bietet:
- Beenden – fordert einen geordneten Abbruch an,
- Sofort beenden – beendet den Prozess unmittelbar.
Vor dem Beenden prüfen:
- Sind ungespeicherte Daten vorhanden?
- Handelt es sich um einen Systemprozess?
- startet
launchdden Prozess automatisch neu? - ist der Prozess Ursache oder nur von einer anderen Störung betroffen?
Ein Prozess mit hoher CPU-Auslastung ist nicht automatisch fehlerhaft. Entscheidend sind Arbeitslast, Dauer, Benutzerwirkung und erwartetes Verhalten.
5. Prozesse im Terminal untersuchen
Prozessliste
ps aux
Nach einem Prozess suchen:
ps aux | grep -i "prozessname"
Damit der Suchbefehl selbst nicht als Treffer erscheint:
pgrep -afil "prozessname"
Prozesse hierarchisch anzeigen
ps -axo pid,ppid,user,%cpu,%mem,state,start,time,command
Momentaufnahme der Ressourcennutzung
top -l 1
Nach CPU-Auslastung sortieren:
top -l 1 -o cpu
Nach Speicherverbrauch sortieren:
top -l 1 -o mem
Nur einen bestimmten Prozess beobachten:
top -pid 1234
1234 muss durch die tatsächliche Prozess-ID ersetzt werden.
Signal zum geordneten Beenden senden
kill 1234
Erzwungenes Beenden
kill -9 1234
SIGKILL sollte nur verwendet werden, wenn ein geordneter Abbruch nicht funktioniert. Der Prozess kann dann keine Aufräumarbeiten mehr ausführen oder Daten geordnet speichern.
Prozess untersuchen
sample 1234 10
Der Befehl erstellt für zehn Sekunden Stichproben der ausgeführten Funktionen. Das kann bei hoher CPU-Auslastung oder blockierten Prozessen helfen.
Geöffnete Dateien und Verbindungen
lsof -p 1234
Alle offenen Dateien mit einem bestimmten Pfad suchen:
lsof "/Pfad/zur/Datei"
Prozess ermitteln, der einen TCP-Port verwendet:
lsof -nP -iTCP:8080
Nur TCP-Listener anzeigen:
lsof -nP -iTCP -sTCP:LISTEN
Bewertung
| Beobachtung | mögliche Hypothese |
|---|---|
| dauerhaft hohe CPU-Last | Endlosschleife, rechenintensive Aufgabe, fehlerhafte Erweiterung |
| steigender Speicherverbrauch | Speicherleck, ungewöhnliche Datenmenge, Cache-Verhalten |
| Prozess reagiert nicht | blockierte Ein-/Ausgabe, Deadlock, abhängiger Dienst |
| Prozess startet nach Beenden erneut | Verwaltung durch launchd, Login-Objekt oder MDM |
| Port ist bereits belegt | konkurrierender Dienst oder zweite Programminstanz |
| Datei bleibt geöffnet | Prozess verhindert Aushängen, Verschieben oder Löschen |
Diese Beobachtungen sind Hinweise, aber noch keine bestätigten Ursachen.
6. Arbeitsspeicher untersuchen
Speicherstatistik
vm_stat
Die Werte werden überwiegend in Speicherseiten ausgegeben. Die Seitengröße steht in der ersten Ausgabezeile und darf nicht pauschal als immer identisch angenommen werden.
Speicherdruck prüfen
memory_pressure
Swap-Nutzung
sysctl vm.swapusage
Wichtige Zusammenhänge
- Hohe Speichernutzung allein beweist keinen Engpass.
- Dateicaches dürfen einen großen Teil des Speichers verwenden.
- Komprimierter Speicher ist Teil der normalen Speicherverwaltung.
- Dauerhaft hoher Speicherdruck und starke Swap-Aktivität können auf einen Engpass hinweisen.
- Ein einzelner Messwert reicht nicht zur Beurteilung einer zeitabhängigen Störung.
Geeignete Beweiskette
- Zeitpunkt der Verlangsamung bestimmen.
- Speicherdruck in der Aktivitätsanzeige prüfen.
- Swap- und Komprimierungswerte erfassen.
- Prozesse nach Speicherverbrauch sortieren.
- Entwicklung über einen längeren Zeitraum beobachten.
- Anwendungs- und Systemprotokolle zum gleichen Zeitpunkt auswerten.
7. CPU- und Systemlast untersuchen
CPU-Übersicht
top -l 1 -o cpu
Lastmittelwerte
uptime
Die drei Load-Average-Werte beziehen sich auf unterschiedliche Zeiträume. Sie dürfen nicht direkt wie Prozentwerte interpretiert werden.
Prozessbezogene Stichprobe
sample 1234 10
Systemweite Diagnose bei Hängern
sudo spindump
spindump sammelt umfangreiche Informationen über Prozesszustände und Aufrufstapel. Die Erfassung kann kurzfristig zusätzliche Last erzeugen und sensible Informationen enthalten.
Mögliche Ursachen hoher CPU-Auslastung
- legitime Medienverarbeitung,
- Indizierung durch Spotlight,
- Synchronisation,
- Update- oder Installationsvorgang,
- Browserprozess,
- fehlerhafte Anwendung,
- Erweiterung oder Plug-in,
- wiederholt abstürzender und neu gestarteter Dienst,
- Hintergrundanalyse nach einem Systemupdate.
Erst prüfen, welche Arbeit der Prozess ausführt und ob die Last nach Abschluss der Aufgabe wieder sinkt.
8. Datenträger, APFS und Speicherplatz
Dateisystembelegung
df -h
Nur das Startvolume:
df -h /
Verzeichnisgrößen
du -sh ~/Downloads
Unterverzeichnisse vergleichen:
du -sh ~/Library/* 2>/dev/null
Fehlende Berechtigungen oder TCC-Schutz können dazu führen, dass nicht alle Verzeichnisse gelesen werden.
Datenträgerstruktur
diskutil list
Informationen zum Startvolume
diskutil info /
APFS-Struktur
diskutil apfs list
Volume schreibgeschützt prüfen
diskutil verifyVolume /
Das Prüfen kann Zeit und Ein-/Ausgabeleistung beanspruchen. Für produktive Systeme sollte die Auswirkung vorher bewertet werden.
Festplattendienstprogramm öffnen
open -a "Disk Utility"
In der App sollte für eine vollständige Darstellung gewählt werden:
Darstellung → Alle Geräte einblenden
Dadurch werden die Ebenen sichtbar:
- physisches Speichergerät,
- Partition beziehungsweise APFS-Container,
- APFS-Volume,
- gegebenenfalls APFS-Volumegruppe.
Erste Hilfe
Apple empfiehlt, bei einer Prüfung mit dem letzten Volume eines Speichergeräts zu beginnen und anschließend nacheinander weitere Volumes, Container und zuletzt das physische Speichergerät zu prüfen.
Wichtige Grenzen
- „Erste Hilfe“ ersetzt kein Backup.
- Ein physisch ausfallendes Speichergerät lässt sich nicht durch eine Dateisystemreparatur heilen.
- Reparaturversuche können ein bereits instabiles Gerät zusätzlich belasten.
- Bei ungewöhnlichen Geräuschen, E/A-Fehlern oder Ausfallwarnungen sollten zuerst wichtige Daten gesichert werden.
- Löschen, Partitionieren und Wiederherstellen sind keine Diagnosebefehle und können Daten vernichten.
Datenträgeraktivität beobachten
iostat -w 1
Abbruch mit:
Control + C
Dateisystemzugriffe live beobachten
sudo fs_usage
Nach einem Prozess filtern:
sudo fs_usage -w -f filesystem | grep -i "prozessname"
fs_usage kann sehr viele Daten erzeugen und zusätzliche Last verursachen.
Typische Fehlerbilder
| Symptom | zu prüfen |
|---|---|
| Startvolume fast voll | df, große Benutzerdateien, lokale Snapshots, Caches, Protokolle |
| Volume wird nicht aktiviert | diskutil list, diskutil info, Dateisystemzustand |
| externes Laufwerk fehlt | Systeminformationen, Kabel, Stromversorgung, USB-/Thunderbolt-Erkennung |
| langsame Dateizugriffe | iostat, fs_usage, Synchronisation, Verschlüsselung, Datenträgerzustand |
| Dateien können nicht gelöscht werden | Berechtigungen, Flags, erweiterte Attribute, geöffnete Dateien |
| Volume ist schreibgeschützt | Dateisystemfehler, Bereitstellungsoptionen, Medium, Berechtigungen |
9. Dateien, Berechtigungen und Attribute
macOS verwendet neben klassischen Unix-Rechten weitere Eigenschaften:
- Access Control Lists,
- Dateiflags,
- erweiterte Attribute,
- TCC-Berechtigungen,
- SIP-Schutz,
- Sandbox-Regeln.
Datei ausführlich anzeigen
ls -leO@ "/Pfad/zur/Datei"
Bedeutung:
| Option | Anzeige |
|---|---|
-l |
ausführliche Dateiinformationen |
-e |
Access Control Lists |
-O |
Dateiflags |
-@ |
erweiterte Attribute |
Dateimetadaten
stat "/Pfad/zur/Datei"
Erweiterte Attribute
xattr -l "/Pfad/zur/Datei"
Rekursiv anzeigen:
xattr -lr "/Pfad/zum/Ordner"
Besitz und Rechte
ls -ld "/Pfad/zum/Ordner"
Geöffnete Datei ermitteln
lsof "/Pfad/zur/Datei"
Typische Ursachen für „Operation not permitted“
- fehlender Festplattenvollzugriff,
- verweigerte TCC-Berechtigung,
- SIP-geschützter Bereich,
- Anwendungssandbox,
- fehlende Unix-Rechte,
- ACL-Regel,
- Dateiflag,
- MDM-Richtlinie.
Eine Berechtigungsfehlermeldung sollte nicht sofort mit
chmod 777, rekursivemchownoder dem Entfernen aller Attribute beantwortet werden. Zuerst muss geklärt werden, welcher Schutzmechanismus den Zugriff verhindert.
10. Unified Logging und die App „Konsole“
macOS verwendet ein zentrales Protokollsystem, das strukturierte Meldungen, Aktivitäten und Signposts verarbeiten kann.
Konsole öffnen
open -a Console
Die App kann unter anderem anzeigen:
- Live-Protokollmeldungen,
- Absturzberichte,
- Diagnoseberichte,
- Spin-Berichte,
- Systemberichte,
- Protokolle verbundener Geräte.
Wichtige Filterkriterien
- Zeitpunkt,
- Prozess,
- Subsystem,
- Kategorie,
- Meldungstext,
- Schweregrad,
- betroffener Benutzer,
- Ereignisse unmittelbar vor und nach der Störung.
Aktuelle Protokolle anzeigen
log show --last 1h --style compact
Nur Meldungen eines Prozesses:
log show --last 1h --style compact --predicate 'process == "Safari"'
Nach einem Textbestandteil suchen:
log show --last 1h --style compact --predicate 'eventMessage CONTAINS[c] "error"'
Live-Meldungen verfolgen:
log stream --style compact
Live nach Prozess filtern:
log stream --style compact --predicate 'process == "Safari"'
Nach Subsystem filtern:
log show --last 1h --style compact --predicate 'subsystem == "com.apple.network"'
Ob ein bestimmtes Subsystem tatsächlich verwendet wird, muss anhand vorhandener Ereignisse geprüft werden.
Zeitfenster gezielt festlegen
log show --start "2026-08-01 14:00:00" --end "2026-08-01 14:30:00" --style compact
Logarchiv sammeln
sudo log collect --last 1h --output ~/Desktop/SystemLogs.logarchive
Vor dem Weitergeben eines Logarchivs prüfen, ob es enthält:
- Benutzernamen,
- Dateipfade,
- Netzwerkadressen,
- Gerätenamen,
- Anwendungsdaten,
- interne Servernamen,
- andere vertrauliche Informationen.
Fehlinterpretationen vermeiden
| Beobachtung | korrekte Einordnung |
|---|---|
| Meldung enthält „error“ | Kann relevant sein, beweist aber nicht automatisch die Ursache. |
| keine sichtbare Fehlermeldung | Protokollierung kann eingeschränkt, verzögert, privat oder in einem anderen Subsystem erfolgt sein. |
| viele Meldungen eines Prozesses | Hohe Meldungszahl ist nicht automatisch ein Fehler. |
| Meldung liegt zeitlich nach dem Symptom | Sie kann Folge statt Ursache sein. |
| wiederkehrende Warnung | Bedeutung muss mit Funktion, Zeitpunkt und Auswirkung abgeglichen werden. |
Protokolle sollten nicht ausschließlich nach den Wörtern „error“ oder „failed“ durchsucht werden. Entscheidend sind zeitlicher Zusammenhang, betroffene Komponente und technische Bedeutung.
11. Absturz- und Diagnoseberichte
Typische benutzerbezogene Diagnoseberichte befinden sich unter:
~/Library/Logs/DiagnosticReports/
Systemweite Berichte können sich unter folgendem Pfad befinden:
/Library/Logs/DiagnosticReports/
Inhalte anzeigen:
ls -lt ~/Library/Logs/DiagnosticReports/
Nach einem Programmnamen suchen:
find ~/Library/Logs/DiagnosticReports -type f -iname "*Programmname*"
Typische Berichtstypen
| Bericht | mögliche Bedeutung |
|---|---|
| Crash Report | Prozess wurde durch einen Fehler oder ein Signal beendet |
| Hang Report | Anwendung reagierte über einen bestimmten Zeitraum nicht |
| Spin Report | Prozess war aktiv, konnte aber nicht angemessen fortfahren |
| Panic Report | schwerwiegender Kernel- oder Hardwarekontext |
| Jetsam-/Ressourcenbericht | Prozessbeendigung oder Einschränkung aufgrund von Ressourcenbedingungen |
Bei der Auswertung prüfen
- Prozessname und Version,
- macOS-Version und Build,
- Architektur,
- Zeitpunkt,
- Ausnahmeart,
- beendender Thread,
- geladene Bibliotheken,
- wiederkehrende Drittanbieterkomponenten,
- Auftreten nach Update oder Konfigurationsänderung.
Ein Funktionsname im abstürzenden Thread beweist nicht automatisch, dass genau diese Komponente die eigentliche Ursache ist.
12. Netzwerkadapter und Netzwerkkonfiguration
Alle Schnittstellen
ifconfig
Nur aktive Schnittstellen:
ifconfig -u
Hardwareports und BSD-Gerätenamen zuordnen
networksetup -listallhardwareports
Beispiel:
Hardware Port: Wi-Fi
Device: en0
Ethernet Address: aa:bb:cc:dd:ee:ff
Der Gerätename darf nicht pauschal als en0 angenommen werden. Er muss auf dem jeweiligen Mac geprüft werden.
Alle Netzwerkdienste
networksetup -listallnetworkservices
Ein Stern vor einem Netzwerkdienst bedeutet, dass dieser deaktiviert ist.
Konfiguration eines Dienstes
networksetup -getinfo "Wi-Fi"
IP-Adresse einer Schnittstelle
ipconfig getifaddr en0
en0 muss durch die tatsächlich ermittelte Schnittstelle ersetzt werden.
DHCP-Informationen
ipconfig getpacket en0
Standardroute
route -n get default
Routingtabelle
netstat -rn
Aktueller DNS-Zustand
scutil --dns
Die Ausgabe zeigt die tatsächlich von macOS verwalteten Resolver und ist für die Diagnose häufig aussagekräftiger als das alleinige Betrachten einer einzelnen DNS-Adresse in den Systemeinstellungen.
Proxykonfiguration
scutil --proxy
Netzwerkzustand beobachten
scutil --nwi
Typische Prüfreihenfolge
- Wird der Adapter erkannt?
- Ist die Schnittstelle aktiv?
- besitzt sie eine erwartete IP-Konfiguration?
- existiert eine passende Route?
- ist das lokale Gateway erreichbar?
- funktioniert die Namensauflösung?
- ist der Zielport erreichbar?
- funktioniert das Anwendungsprotokoll?
- beeinflussen VPN, Proxy, Filter oder Firewall die Verbindung?
13. Erreichbarkeit, DNS und Ports prüfen
IP-Erreichbarkeit
ping -c 4 192.168.1.1
Namensauflösung und Erreichbarkeit
ping -c 4 example.com
Ein fehlgeschlagener Ping beweist nicht automatisch, dass ein Host oder Dienst nicht erreichbar ist. ICMP kann gefiltert werden.
Route untersuchen
traceroute example.com
DNS-Abfrage
dig example.com
Bestimmten DNS-Server abfragen:
dig @192.168.1.1 example.com
macOS-Systemauflösung prüfen
dscacheutil -q host -a name example.com
Zielport testen
nc -vz example.com 443
UDP-Prüfungen mit nc liefern aufgrund der verbindungslosen Arbeitsweise von UDP nicht dieselbe Bestätigung wie ein erfolgreicher TCP-Verbindungsaufbau.
HTTP- und TLS-Verbindung
curl -v https://example.com/
Nur Header abrufen:
curl -I https://example.com/
Zeitwerte erfassen:
curl -o /dev/null -sS \
-w 'DNS: %{time_namelookup}\nTCP: %{time_connect}\nTLS: %{time_appconnect}\nGesamt: %{time_total}\n' \
https://example.com/
Lokale Listener
lsof -nP -iTCP -sTCP:LISTEN
Verbindungen eines Prozesses
lsof -nP -a -p 1234 -i
Eine erfolgreiche TCP-Verbindung bestätigt nur, dass der Verbindungsaufbau zu diesem Ziel und Port möglich war. Sie bestätigt noch keine korrekte Anmeldung, Anwendungsfunktion oder Datenverarbeitung.
14. Paketmitschnitt unter macOS
macOS enthält tcpdump.
Verfügbare Schnittstellen
sudo tcpdump -D
Verkehr einer Schnittstelle beobachten
sudo tcpdump -i en0
Ohne Namensauflösung
sudo tcpdump -nn -i en0
Nur Verkehr eines Hosts
sudo tcpdump -nn -i en0 host 192.168.1.50
Nur einen Port
sudo tcpdump -nn -i en0 port 443
In eine Datei schreiben
sudo tcpdump -nn -i en0 -w ~/Desktop/mitschnitt.pcap
Begrenzte Anzahl Pakete
sudo tcpdump -nn -i en0 -c 500 -w ~/Desktop/mitschnitt.pcap
Vor dem Mitschnitt festlegen
- richtige Schnittstelle,
- geeigneter Capture-Filter,
- notwendige Dauer,
- maximale Paketanzahl oder Dateigröße,
- Zielpfad,
- Datenschutz,
- sichere Aufbewahrung,
- Löschung nach Abschluss der Analyse.
Paketmitschnitte können enthalten:
- IP-Adressen,
- Hostnamen,
- DNS-Abfragen,
- Kommunikationsbeziehungen,
- unverschlüsselte Inhalte,
- Authentifizierungsinformationen,
- personenbezogene oder vertrauliche Daten.
15. WLAN-Diagnose
Verbindungsinformationen anzeigen
Bei gedrückter Option-Taste auf das WLAN-Symbol in der Menüleiste klicken.
Je nach macOS-Version werden unter anderem angezeigt:
- IP-Adresse,
- Routeradresse,
- Kanal,
- Frequenzband,
- Sicherheitsstandard,
- verwendetes 802.11-Protokoll,
- weitere Verbindungsdaten.
Diagnose für drahtlose Umgebungen
- Mit dem problematischen WLAN verbinden.
- Option-Taste gedrückt halten.
- WLAN-Menü öffnen.
- Diagnose für drahtlose Umgebungen öffnen wählen.
Apple weist darauf hin, dass die Diagnoseanalyse selbst keine Änderungen an den Netzwerkeinstellungen vornimmt.
Mögliche Diagnosebereiche
- Signalqualität,
- Störquellen,
- Kanalbelegung,
- Verbindungsabbrüche,
- Authentifizierung,
- Verbindung zum Router,
- Internetzugriff.
Wichtige Abgrenzung
| Beobachtung | Einordnung |
|---|---|
| WLAN ist verbunden | bestätigt nicht automatisch Internetzugriff |
| starke Signalstärke | bestätigt nicht automatisch geringe Störung oder hohen Durchsatz |
| Internet funktioniert | bestätigt nicht automatisch lokale DNS-, VPN- oder Anwendungsfunktion |
| anderes Gerät funktioniert | grenzt ein, schließt aber benutzer- oder gerätespezifische Ursachen nicht aus |
| Ethernet funktioniert | spricht für einen WLAN-bezogenen Unterschied, beweist aber noch keine bestimmte WLAN-Ursache |
16. Dienste und launchd
macOS verwendet launchd zur Verwaltung vieler System- und Benutzerdienste.
Benutzerdomäne anzeigen
launchctl print gui/$(id -u)
Systemdomäne anzeigen
sudo launchctl print system
Bestimmten Benutzerdienst untersuchen
launchctl print gui/$(id -u)/com.beispiel.dienst
Bestimmten Systemdienst untersuchen
sudo launchctl print system/com.beispiel.dienst
Der genaue Dienstbezeichner muss vorher ermittelt werden.
Typische Speicherorte
~/Library/LaunchAgents/
/Library/LaunchAgents/
/Library/LaunchDaemons/
/System/Library/LaunchAgents/
/System/Library/LaunchDaemons/
Bedeutung:
| Ort | typischer Zweck |
|---|---|
~/Library/LaunchAgents |
benutzerspezifische Agenten |
/Library/LaunchAgents |
zusätzliche Agenten für Benutzer |
/Library/LaunchDaemons |
zusätzliche systemweite Daemons |
/System/Library/... |
von macOS bereitgestellte und geschützte Dienste |
Eigenschaftslistendatei prüfen
plutil -lint "/Pfad/zur/Datei.plist"
Inhalt lesbar ausgeben:
plutil -p "/Pfad/zur/Datei.plist"
Typische Fehlerursachen
- fehlerhafte PLIST-Syntax,
- falscher
Label-Wert, - nicht vorhandener Programmpfad,
- ungeeignete Dateirechte,
- falscher Besitzer,
- fehlende Arbeitsverzeichnisse,
- nicht verfügbare Umgebungsvariablen,
- TCC- oder Sandbox-Einschränkungen,
- wiederholter Absturz,
- widersprüchliche Agenten,
- veraltetes Login-Objekt.
Dienste sollten nicht allein aufgrund ihres unbekannten Namens deaktiviert oder gelöscht werden. Zuerst müssen Hersteller, Pfad, Signatur, Zweck und Abhängigkeiten bestimmt werden.
17. Login-Objekte und Hintergrundelemente
Grafische Verwaltung:
Systemeinstellungen → Allgemein → Anmeldeobjekte und Erweiterungen
Dort können je nach macOS-Version unter anderem sichtbar sein:
- beim Anmelden geöffnete Programme,
- im Hintergrund erlaubte Programme,
- Erweiterungen,
- Netzwerk- oder Sicherheitskomponenten.
Typische Diagnose
- Namen und Hersteller dokumentieren.
- Installationspfad und Signatur prüfen.
- Zeitpunkt der Installation feststellen.
- Abhängigkeit von benötigten Anwendungen prüfen.
- Element testweise kontrolliert deaktivieren.
- Verhalten nach erneuter Anmeldung oder Neustart vergleichen.
- Änderung anschließend zurücknehmen oder dokumentiert beibehalten.
Der sichere Modus kann helfen festzustellen, ob eine Störung mit beim Start geladenen Softwarebestandteilen zusammenhängt. Er benennt jedoch nicht automatisch die konkrete Ursache.
18. Codesignatur und Gatekeeper prüfen
Signatur anzeigen
codesign -dv --verbose=4 "/Applications/Beispiel.app"
Die Detailausgabe erfolgt bei codesign häufig über den Fehlerausgabekanal, obwohl kein Fehler vorliegt.
Signatur verifizieren
codesign --verify --deep --strict --verbose=2 "/Applications/Beispiel.app"
Gatekeeper-Bewertung
spctl --assess --type execute --verbose=4 "/Applications/Beispiel.app"
Quarantäneattribut anzeigen
xattr -l "/Applications/Beispiel.app"
Paketinformationen
pkgutil --pkg-info "Paketkennung"
Installierte Paketkennungen durchsuchen:
pkgutil --pkgs | grep -i "hersteller"
Wichtige Einordnung
- Eine gültige Signatur beweist Integrität gegenüber der signierten Version, aber nicht automatisch Fehlerfreiheit.
- Eine Gatekeeper-Ablehnung kann mit Signatur, Beglaubigung, Quarantäne oder Richtlinien zusammenhängen.
- Das Quarantäneattribut sollte nicht pauschal rekursiv entfernt werden.
- Das Deaktivieren von Gatekeeper oder SIP ist keine reguläre Fehlerbehebungsmethode.
- Unternehmensgeräte können zusätzliche MDM- und Sicherheitsrichtlinien besitzen.
19. System- und Netzwerkerweiterungen
Moderne macOS-Versionen verwenden für viele Funktionen Systemerweiterungen statt klassischer Kernel Extensions.
Systemerweiterungen anzeigen
systemextensionsctl list
Geladene Kernelkomponenten untersuchen
kmutil showloaded
Je nach Systemversion, Architektur und Berechtigung kann die Ausgabe eingeschränkt sein.
Typische beteiligte Anwendungen
- VPN-Clients,
- Endpoint-Security,
- Inhaltsfilter,
- Netzwerkschutz,
- Treiber,
- Audioanwendungen,
- Virtualisierungssoftware,
- Dateisynchronisation.
Bei Problemen prüfen
- ist die Erweiterung aktiviert?
- wurde sie vom Benutzer oder durch MDM genehmigt?
- passt die Version zur installierten macOS-Version?
- ist nach Installation ein Neustart erforderlich?
- existieren alte Komponenten eines früheren Produkts?
- wird Netzwerkverkehr durch einen Content Filter beeinflusst?
- tritt die Störung nach Deaktivierung kontrolliert nicht mehr auf?
Eine Sicherheits- oder Netzwerkerweiterung darf auf Unternehmenssystemen nicht ohne Freigabe deaktiviert werden.
20. Energieverwaltung und Ruhezustand
Aktuelle Energieeinstellungen
pmset -g
Akkuzustand
pmset -g batt
Aktive Ruhezustandsverhinderungen
pmset -g assertions
Geplante Energieereignisse
pmset -g sched
Power-Management-Protokoll
pmset -g log
Die Ausgabe kann sehr umfangreich sein und sollte zeitlich gefiltert werden.
Hardwareinformationen zur Stromversorgung
system_profiler SPPowerDataType
Typische Fragestellungen
- Welcher Prozess verhindert den Ruhezustand?
- erkennt macOS das Netzteil?
- wird der Akku geladen?
- bestehen ungewöhnlich viele Ladezyklen?
- tritt der Verbrauch nur bei einer bestimmten Anwendung auf?
- wacht der Mac wiederholt unerwartet auf?
- bestehen angeschlossene Geräte oder Netzwerkaktivitäten, die den Ruhezustand beeinflussen?
Eine hohe Akkunutzung ist nicht automatisch ein Akkudefekt. Zuerst müssen Energieverbrauch, Arbeitslast, Display, Funkverbindungen, Hintergrundprozesse und angeschlossene Geräte geprüft werden.
21. Spotlight untersuchen
Spotlight-Indizierung kann zeitweise CPU-, Datenträger- und Energieauslastung verursachen.
Status eines Volumes
mdutil -s /
Metadaten einer Datei
mdls "/Pfad/zur/Datei"
Spotlight-Suche im Terminal
mdfind "Suchbegriff"
Typische Hinweise auf Spotlight-Aktivität
- Prozesse wie
mds,mds_storesodermdworker, - erhöhte Datenträgeraktivität,
- Auftreten nach Update, Migration oder Anschluss eines Datenträgers,
- unvollständige Suchergebnisse während der Indizierung.
Die Indizierung sollte nicht ohne bestätigte Ursache dauerhaft deaktiviert werden. Zuerst ist zu prüfen, ob es sich um eine vorübergehende und erwartete Aktivität handelt.
22. Zeit und Synchronisation
Eine falsche Systemzeit kann unter anderem verursachen:
- TLS- und Zertifikatsfehler,
- Anmeldeprobleme,
- Kerberos-Fehler,
- unpassende Protokollzeitpunkte,
- Probleme mit MDM oder Cloudservices,
- fehlerhafte Zeitstempel.
Zeit anzeigen
date
Konfiguration des Zeitservers
sudo systemsetup -getnetworktimeserver
Netzwerkzeitstatus
sudo systemsetup -getusingnetworktime
Zeitzone
sudo systemsetup -gettimezone
Bei der Protokollauswertung müssen lokale Zeit, UTC, Zeitzone und Sommerzeit berücksichtigt werden.
23. MDM und Konfigurationsprofile
Registrierungsstatus
profiles status -type enrollment
Konfigurationsprofile anzeigen
sudo profiles show -type configuration
Verfügbarkeit, Umfang und erforderliche Rechte können von der macOS-Version und Geräteverwaltung abhängen.
Profile können beeinflussen
- WLAN,
- VPN,
- Zertifikate,
- Proxys,
- Datenschutzfreigaben,
- Systemerweiterungen,
- Sicherheitsrichtlinien,
- Softwareupdates,
- Passwörter,
- FileVault,
- Anmeldeobjekte.
Eine Einstellung kann in der grafischen Oberfläche unveränderbar erscheinen, weil sie durch ein Profil oder MDM vorgegeben wird. Das ist nicht automatisch ein Bedienungs- oder Dateirechtefehler.
24. Sicherer Modus
Der sichere Modus kann helfen zu bestimmen, ob eine Störung mit Software zusammenhängt, die während des regulären Starts geladen wird.
Mac mit Apple-Chip
- Mac vollständig ausschalten.
- Ein-/Ausschalter gedrückt halten, bis die Startoptionen erscheinen.
- Startvolume auswählen.
- Umschalttaste gedrückt halten.
- Im gesicherten Modus fortfahren wählen.
Intel-basierter Mac
- Mac einschalten oder neu starten.
- sofort die Umschalttaste gedrückt halten.
- Taste beim Anmeldefenster loslassen.
- anmelden; gegebenenfalls ist eine zweite Anmeldung erforderlich.
Diagnostische Aussage
| Ergebnis | Einordnung |
|---|---|
| Fehler tritt im sicheren Modus nicht auf | Hinweis auf einen Unterschied bei geladenen Komponenten, Caches oder Startobjekten |
| Fehler tritt weiterhin auf | Drittanbieter-Startkomponenten werden weniger wahrscheinlich, aber nicht vollständig ausgeschlossen |
| System startet nur im sicheren Modus | Startobjekte, Erweiterungen, Dateisystem oder Softwarekonflikte gezielt prüfen |
Der sichere Modus ist ein Eingrenzungstest. Er identifiziert nicht automatisch die fehlerhafte Komponente.
25. Apple Diagnose
Apple Diagnose prüft bestimmte interne Hardwarekomponenten des Mac.
Apple weist ausdrücklich darauf hin, dass damit nicht geprüft werden:
- externe Hardwarekomponenten,
- macOS-Probleme,
- Konflikte mit Anwendungen,
- Konflikte mit Erweiterungen.
Vorbereitung
- Mac ausschalten.
- nicht benötigte externe Geräte trennen.
- Tastatur, Maus, Display, Ethernet und Stromversorgung dürfen angeschlossen bleiben.
- Mac auf eine feste und gut belüftete Fläche stellen.
- Internetverbindung bereithalten, falls erforderlich.
Mac mit Apple-Chip
- Ein-/Ausschalter gedrückt halten, bis die Startoptionen erscheinen.
- Ein-/Ausschalter loslassen.
-
Command-Dgedrückt halten, um Apple Diagnose zu starten.
Intel-basierter Mac
- Mac einschalten.
- sofort die Taste
Dgedrückt halten. - Taste loslassen, wenn ein Fortschrittsbalken oder die Sprachauswahl erscheint.
Ergebnis dokumentieren
- Referenzcode,
- genaue Fehlermeldung,
- Datum und Uhrzeit,
- angeschlossene Geräte,
- macOS-Version,
- reproduzierbares Symptom.
Ein Ergebnis „keine Probleme gefunden“ schließt nicht alle Hardwarefehler aus. Sporadische, temperaturabhängige oder externe Fehler können unentdeckt bleiben.
26. macOS-Wiederherstellung
Die macOS-Wiederherstellung stellt eine vom normalen System getrennte Umgebung bereit.
Typische Funktionen
- Festplattendienstprogramm,
- macOS neu installieren,
- Startvolume auswählen,
- Wiederherstellungsprotokoll anzeigen,
- Terminal öffnen,
- Safari beziehungsweise Onlinehilfe,
- Diagnosedatei erstellen,
- Backup wiederherstellen.
Mac mit Apple-Chip starten
- Mac vollständig ausschalten.
- Ein-/Ausschalter gedrückt halten, bis die Startoptionen erscheinen.
- Optionen wählen.
- Fortfahren wählen.
Intel-basierter Mac starten
Beim Einschalten sofort eine passende Tastenkombination gedrückt halten:
| Kombination | Zweck |
|---|---|
Command-R |
integrierte macOS-Wiederherstellung |
Option-Command-R |
Internet-Wiederherstellung mit einer kompatiblen aktuellen macOS-Version |
Shift-Option-Command-R |
je nach Mac ursprüngliche oder nächstverfügbare Version über Internet-Wiederherstellung |
Die tatsächlich angebotene Version kann vom Mac-Modell und der Verfügbarkeit abhängen.
Wiederherstellungsprotokoll
In der Wiederherstellung:
Fenster → Wiederherstellungsprotokoll
Das Protokoll kann gefiltert und in einer Datei gesichert werden.
Diagnostischer Nutzen
- Startvolume außerhalb des laufenden Systems prüfen,
- unterscheiden, ob ein Fehler nur im installierten System auftritt,
- Dateisystem untersuchen,
- Wiederherstellungsprotokolle sichern,
- Startprobleme analysieren.
Eine Neuinstallation sollte nicht der erste Diagnoseschritt sein. Sie kann den fehlerhaften Zustand verändern und beseitigt keine externen Hardware-, Netzwerk-, Benutzerprofil- oder Konfigurationsursachen.
27. USB-, Thunderbolt- und externe Geräte
USB-Geräte
system_profiler SPUSBDataType
Thunderbolt- beziehungsweise USB4-Geräte
system_profiler SPThunderboltDataType
Speichergeräte
diskutil list
Offene Verbindungen während des Einsteckens beobachten
log stream --style compact
Anschließend kann nach passenden Prozessen, Subsystemen oder Meldungstexten gefiltert werden.
Kreuztests
- anderer Anschluss,
- anderes Kabel,
- ohne Hub oder Dock,
- anderes Netzteil,
- anderes Benutzerkonto,
- anderer Mac,
- Gerät direkt statt über Adapter,
- bekannte funktionierende Gegenprobe.
Eingrenzung
| Beobachtung | mögliche Ebene |
|---|---|
| Gerät fehlt in Systeminformationen | Kabel, Anschluss, Stromversorgung, Hardware |
| Gerät erscheint, aber nicht in der Anwendung | Anwendung, Berechtigung, Treiber, Modus |
Datenträger erscheint in diskutil, aber nicht im Finder |
Volume, Aktivierung, Finder-Einstellung, Dateisystem |
| Gerät funktioniert direkt, aber nicht am Hub | Hub, Stromversorgung, Kabel, Kompatibilität |
| Gerät funktioniert nur an einem Benutzerkonto | benutzerspezifische Einstellung oder Berechtigung |
28. Bluetooth untersuchen
Systembericht
system_profiler SPBluetoothDataType
Zu prüfen
- wird der Bluetooth-Controller erkannt?
- wird das Gerät erkannt?
- ist das Gerät verbunden oder nur gekoppelt?
- besteht eine Verbindung zu einem anderen Host?
- ist der Akku des Geräts ausreichend geladen?
- tritt die Störung bei mehreren Geräten auf?
- beeinflussen USB-3-Geräte oder Funkstörungen die Verbindung?
- existieren herstellerspezifische Anwendungen oder Erweiterungen?
Das Löschen sämtlicher Kopplungen oder Einstellungsdateien ist keine geeignete Erstmaßnahme. Zuerst sollten Zustand und Umfang dokumentiert werden.
29. Druckerdiagnose
Konfigurierte Drucker
lpstat -p -d
Druckerstatus
lpstat -t
Druckaufträge
lpstat -o
CUPS-Weboberfläche
Auf aktuellen Systemen kann die Weboberfläche deaktiviert sein. Ihr Status und die organisatorischen Sicherheitsvorgaben müssen vor einer Aktivierung geprüft werden.
Typische Prüfreihenfolge
- Wird der Drucker lokal beziehungsweise im Netzwerk erreicht?
- ist die richtige Warteschlange ausgewählt?
- hängt ein Auftrag in der Warteschlange?
- stimmt Treiber beziehungsweise verwendetes Druckprotokoll?
- funktioniert Namensauflösung?
- ist der Drucker über IPP, AirPrint oder einen Printserver eingebunden?
- bestehen Authentifizierungs- oder Berechtigungsfehler?
- tritt der Fehler bei anderen Benutzern auf?
30. Systemdiagnose sammeln
macOS kann ein umfangreiches Diagnosetaket erzeugen:
sudo sysdiagnose
Der Vorgang kann mehrere Minuten dauern. Speicherort und Abschlussmeldung müssen der Terminalausgabe entnommen werden.
Ein sysdiagnose kann unter anderem enthalten:
- Systemzustand,
- Prozessinformationen,
- Protokolle,
- Netzwerkzustand,
- Speicherinformationen,
- Energieinformationen,
- Konfigurationsdaten,
- Absturz- und Diagnoseberichte.
Vor dem Einsatz beachten
- hoher Umfang,
- möglicher zusätzlicher Ressourcenverbrauch,
- sensible oder personenbezogene Informationen,
- sichere Speicherung,
- verschlüsselte Übertragung,
- begrenzter Empfängerkreis,
- definierte Aufbewahrungsdauer,
- kontrollierte Löschung nach Abschluss.
sysdiagnose ist kein Ersatz für eine gezielte Hypothese. Es ist besonders sinnvoll, wenn:
- der Fehler schwer reproduzierbar ist,
- mehrere Komponenten beteiligt sein könnten,
- Apple oder ein Hersteller umfangreiche Diagnosedaten anfordert,
- der aktuelle Systemzustand vor einer Veränderung gesichert werden muss.
31. Werkzeugwahl nach Symptom
| Symptom | erste geeignete Werkzeuge |
|---|---|
| Mac ist allgemein langsam | Aktivitätsanzeige, top, vm_stat, memory_pressure, iostat, Speicherplatzprüfung |
| Anwendung reagiert nicht | Aktivitätsanzeige, sample, Konsole, Diagnoseberichte |
| Anwendung stürzt ab | Konsole, DiagnosticReports, codesign, Versions- und Erweiterungsprüfung |
| kein Internetzugriff | networksetup, ifconfig, route, scutil --dns, ping, dig, nc, curl |
| WLAN instabil | Option-WLAN-Menü, Diagnose für drahtlose Umgebungen, Kreuztest mit Ethernet |
| Port nicht erreichbar | nc, lsof, curl, tcpdump |
| Datenträger fehlt | Systeminformationen, diskutil list, Festplattendienstprogramm |
| Volume fast voll | df, du, Festplattendienstprogramm |
| Datei kann nicht geöffnet werden | ls -leO@, xattr, stat, TCC-, Signatur- und Eigentümerprüfung |
| Hintergrunddienst startet nicht | launchctl print, plutil, Unified Log |
| hoher Energieverbrauch | Aktivitätsanzeige, pmset, system_profiler SPPowerDataType |
| USB-Gerät funktioniert nicht | Systeminformationen, USB-/Thunderbolt-Bericht, Kabel- und Direktanschlusstest |
| Startproblem | sicherer Modus, Apple Diagnose, macOS-Wiederherstellung, Festplattendienstprogramm |
| Problem nur bei einem Benutzer | neues Testkonto, benutzerspezifische Agenten, Einstellungen und TCC |
| Problem nach Softwareinstallation | Login-Objekte, Systemerweiterungen, pkgutil, codesign, Protokolle |
32. Praxisbeispiel: Eine Anwendung startet nicht
Symptom
Eine Anwendung beendet sich unmittelbar nach dem Start.
Sichere Untersuchung
- genaue Anwendungsversion erfassen,
- macOS-Version und Build erfassen,
- Zeitpunkt des Startversuchs notieren,
- prüfen, ob andere Benutzer betroffen sind,
- Anwendung aus dem Terminal oder Finder starten,
- Live-Protokollierung auf den Prozess filtern,
- Absturzbericht sichern,
- Signatur und Gatekeeper-Bewertung prüfen,
- geladene Erweiterungen und Plug-ins berücksichtigen,
- erst danach Konfigurationen verändern.
Beispielbefehle
sw_vers
codesign --verify --deep --strict --verbose=2 "/Applications/Beispiel.app"
spctl --assess --type execute --verbose=4 "/Applications/Beispiel.app"
log stream --style compact --predicate 'process == "Beispiel"'
ls -lt ~/Library/Logs/DiagnosticReports/
Mögliche Hypothesen
- beschädigte oder unvollständige Anwendung,
- inkompatible Version,
- ungültige Signatur,
- fehlende Berechtigung,
- inkompatibles Plug-in,
- beschädigte benutzerspezifische Konfiguration,
- nicht erreichbarer abhängiger Dienst,
- Architektur- oder Rosetta-Konflikt.
Das sofortige Löschen aller Einstellungsdateien würde den Beweiszustand verändern und kann benutzerspezifische Daten vernichten.
33. Praxisbeispiel: Netzwerk funktioniert im Browser nicht
Symptom
Webseiten werden nicht geladen.
Schrittweise Eingrenzung
networksetup -listallhardwareports
ifconfig
route -n get default
ping -c 4 192.168.1.1
scutil --dns
dig example.com
nc -vz example.com 443
curl -v https://example.com/
scutil --proxy
Bewertung
| Ergebnis | nächste Eingrenzung |
|---|---|
| keine IP-Adresse | Link, WLAN, DHCP |
| IP vorhanden, keine Standardroute | Netzwerkkonfiguration, DHCP, VPN |
| Gateway nicht erreichbar | lokales Netz, VLAN, WLAN, Router |
| IP-Ziel erreichbar, DNS fehlschlägt | Resolver, DNS-Server, VPN, Filter |
| DNS funktioniert, Port 443 fehlschlägt | Firewall, Route, Proxy, Zielservice |
curl funktioniert, Browser nicht |
Browserprofil, Erweiterung, Proxy, Zertifikat, TCC |
| Problem nur mit VPN | VPN-Route, DNS, Netzwerkerweiterung, Richtlinie |
34. Praxisbeispiel: Mac ist plötzlich sehr langsam
Zuerst sichern
date
uptime
top -l 1 -o cpu
memory_pressure
sysctl vm.swapusage
df -h /
iostat -w 1
Danach prüfen
- begann die Störung nach Anmeldung, Update oder Anschluss eines Geräts?
- ist ein einzelner Prozess auffällig?
- ist der Speicherdruck erhöht?
- besteht starke Swap- oder Datenträgeraktivität?
- ist das Startvolume fast voll?
- läuft Spotlight-Indizierung?
- findet eine Cloud- oder Backup-Synchronisation statt?
- existieren wiederholte Abstürze oder Neustarts von Diensten?
- tritt die Störung in einem anderen Benutzerkonto auf?
- tritt sie im sicheren Modus auf?
Das Beenden des Prozesses mit der höchsten CPU-Auslastung ist keine vollständige Ursachenanalyse. Der Prozess kann eine notwendige Folgearbeit ausführen oder nur auf eine andere Störung reagieren.
35. Typische Fehlinterpretationen
| Aussage | fachliche Einordnung |
|---|---|
| „Der Arbeitsspeicher ist fast vollständig belegt.“ | macOS nutzt Speicher bewusst für Anwendungen und Caches. Speicherdruck und Swap sind aussagekräftiger. |
„sudo müsste auf alles zugreifen können.“ |
TCC und SIP können den Zugriff trotz Root-Rechten begrenzen. |
| „Der Prozess hat die höchste CPU-Auslastung und ist daher defekt.“ | Hohe Auslastung kann zur erwarteten Arbeit gehören. |
| „Apple Diagnose meldet keinen Fehler, also ist die Hardware sicher fehlerfrei.“ | Nicht alle Hardwarefehler und keine externen Komponenten werden vollständig geprüft. |
| „WLAN ist verbunden, deshalb muss Internet funktionieren.“ | WLAN-Verbindung, IP-Konfiguration, Routing, DNS und Internetdienst sind unterschiedliche Ebenen. |
| „Erste Hilfe repariert auch eine defekte SSD.“ | Das Werkzeug prüft beziehungsweise repariert Dateisystemstrukturen, nicht verschlissene Hardware. |
„Im Protokoll steht error; das ist die Ursache.“ |
Die Meldung kann erwartet, unabhängig oder eine Folge des eigentlichen Fehlers sein. |
| „Eine gültige Codesignatur beweist, dass die Anwendung funktioniert.“ | Sie bestätigt nicht die fehlerfreie Funktion oder Kompatibilität. |
| „Der sichere Modus behebt die Ursache.“ | Er dient vor allem als Vergleichs- und Eingrenzungstest. |
| „Das Gerät erscheint im Systembericht und funktioniert deshalb vollständig.“ | Erkennung, Treiber, Berechtigung und Anwendungsfunktion müssen getrennt geprüft werden. |
| „Ein Neustart hat geholfen, also ist die Ursache beseitigt.“ | Der Neustart kann nur flüchtigen Zustand zurückgesetzt haben. |
„ping schlägt fehl, daher ist der Server offline.“ |
ICMP kann blockiert sein, obwohl der eigentliche Dienst erreichbar ist. |
| „Das Löschen aller Einstellungen ist die schnellste Lösung.“ | Dadurch können Beweise und Benutzerdaten verloren gehen, ohne die Ursache zu bestätigen. |
36. Checkliste macOS-Fehleranalyse
- Störung und erwartetes Verhalten sind exakt beschrieben.
- Zeitpunkt und letzte Änderungen sind bekannt.
- macOS-Version und Build wurden erfasst.
- Mac-Modell und Prozessorarchitektur wurden erfasst.
- betroffene Benutzer und Anwendungen sind bekannt.
- Umfang und Auswirkung wurden bestimmt.
- wichtige flüchtige Informationen wurden gesichert.
- Prozess- und Ressourcenzustand wurden geprüft.
- Speicherplatz und Datenträgerzustand wurden geprüft.
- relevante Netzwerkebenen wurden getrennt getestet.
- Unified Logs wurden zeitlich passend ausgewertet.
- Absturz- oder Diagnoseberichte wurden gesichert.
- TCC, SIP, Gatekeeper und MDM wurden berücksichtigt.
- Dienste und Startobjekte wurden nicht unkontrolliert entfernt.
- Befehle mit
sudowurden vor der Ausführung verstanden. - Paketmitschnitte und Diagnosedateien werden geschützt.
- Apple-Chip und Intel-Verfahren wurden unterschieden.
- sicherer Modus wurde nur als Eingrenzungstest bewertet.
- Apple Diagnose wurde nicht als vollständiger Softwaretest interpretiert.
- Änderungen wurden einzeln und reversibel durchgeführt.
- Funktion wurde nach der Maßnahme überprüft.
- Ursache und nicht nur das Symptom wurde bestätigt.
- Ergebnisse und Rückfallmöglichkeiten wurden dokumentiert.
37. Schnellreferenz
| Aufgabe | Werkzeug oder Befehl |
|---|---|
| macOS-Version | sw_vers |
| Architektur | uname -m |
| Hardwareübersicht | system_profiler SPHardwareDataType |
| Prozessliste | ps aux |
| Prozess suchen | pgrep -afil "Name" |
| CPU-Auslastung | top -l 1 -o cpu |
| Speicherdruck | memory_pressure |
| Speicherseiten | vm_stat |
| Swap | sysctl vm.swapusage |
| Datenträgerstruktur | diskutil list |
| APFS-Struktur | diskutil apfs list |
| Dateisystembelegung | df -h |
| Verzeichnisgröße | du -sh Pfad |
| offene Dateien | lsof |
| Listener | lsof -nP -iTCP -sTCP:LISTEN |
| Netzwerkadapter | networksetup -listallhardwareports |
| Schnittstellen | ifconfig |
| Standardroute | route -n get default |
| Routingtabelle | netstat -rn |
| DNS-Zustand | scutil --dns |
| Proxy-Zustand | scutil --proxy |
| DNS-Abfrage | dig example.com |
| Porttest | nc -vz host port |
| HTTP-/TLS-Test | curl -v URL |
| Paketmitschnitt | sudo tcpdump -nn -i Schnittstelle |
| Protokollhistorie | log show |
| Live-Protokoll | log stream |
| Dienst untersuchen | launchctl print |
| PLIST prüfen | plutil -lint Datei.plist |
| Dateirechte und Attribute | ls -leO@ Pfad |
| Signatur prüfen | codesign --verify |
| Gatekeeper prüfen | spctl --assess |
| Systemerweiterungen | systemextensionsctl list |
| Energiezustand | pmset -g |
| Ruhezustandsblocker | pmset -g assertions |
| MDM-Status | profiles status -type enrollment |
| umfangreiche Diagnose | sudo sysdiagnose |
Merksatz
macOS-Fehleranalyse bedeutet nicht, wahllos Einstellungen zurückzusetzen oder Schutzmechanismen zu umgehen. Zuerst werden Systemzustand, Prozesse, Ressourcen, Protokolle, Netzwerk, Datenträger und Berechtigungen getrennt untersucht. Danach wird eine konkrete Hypothese mit einer kleinen, kontrollierten und möglichst reversiblen Maßnahme geprüft.
Quellen und weiterführende Dokumentation
- Apple – Aktivitätsanzeige: Benutzerhandbuch
- Apple – Mac-Prozesse in der Aktivitätsanzeige anzeigen
- Apple – Speichernutzung in der Aktivitätsanzeige
- Apple – CPU-Aktivität in der Aktivitätsanzeige
- Apple – Festplattenaktivität in der Aktivitätsanzeige
- Apple – Netzwerkaktivität in der Aktivitätsanzeige
- Apple – Diagnose für drahtlose Umgebungen
- Apple – Details zur WLAN-Verbindung anzeigen
- Apple – Festplattendienstprogramm: Benutzerhandbuch
- Apple – Speichermedium mit „Erste Hilfe“ reparieren
- Apple – Alle Geräte im Festplattendienstprogramm einblenden
- Apple – Detailinformationen zu Datenträgern anzeigen
- Apple – Mac im sicheren Modus starten
- Apple – Probleme mit Apple Diagnose untersuchen
- Apple – macOS-Wiederherstellung auf einem Mac mit Apple-Chip
- Apple – macOS-Wiederherstellung auf einem Intel-basierten Mac
- Apple – Tastenkombinationen beim Startvorgang
- Apple Platform Security – Startmodi eines Mac mit Apple-Chip