Linux ist ein leistungsfähiges und zuverlässiges Betriebssystem, aber auch erfahrene Benutzer stoßen auf unerwartete Probleme. Ob es sich um eine gelöschte Datei, ein vergessenes Root-Passwort oder ein träges System handelt, die Fähigkeit, effizient zu troubleshooten, ist der Schlüssel, um ein echter Linux-Experte zu werden.
In diesem Leitfaden werden reale Linux-Problemstellungen zusammen mit schrittweisen Lösungen präsentiert, die bei Systemadministratoren, Entwicklern und alltäglichen Linux-Benutzern üblich sind.
Szenario 1: Sie haben versehentlich eine wichtige Datei gelöscht
Sie haben versehentlich eine wichtige Datei mit dem rm-Befehl gelöscht und müssen sie jetzt wiederherstellen. Im Gegensatz zu Windows und macOS verfügt Linux nicht über einen eingebauten „Papierkorb“ für Dateien, die über das Terminal gelöscht wurden.
Ihre Wiederherstellungsoptionen hängen vom verwendeten Dateisystem ab.
Für EXT3/EXT4-Dateisysteme
Verwenden Sie extundelete, ein Open-Source-Programm zur Wiederherstellung von gelöschten Dateien aus EXT3- und EXT4-Dateisystemen in Linux.
sudo apt install extundelete # Debian-based sudo yum install extundelete # RHEL-based
Vor dem Wiederherstellungsversuch Unmounten Sie die Partition, um weitere Schreibvorgänge zu verhindern, die gelöschte Daten überschreiben könnten:
sudo umount /dev/sdX
Führen Sie anschließend den folgenden Befehl aus, um die gelöschte Datei wiederherzustellen, und stellen Sie sicher, dass Sie /dev/sdX
durch die tatsächliche Partition ersetzen, auf der die Datei gelöscht wurde.
sudo extundelete /dev/sdX --restore-all
Für XFS-, Btrfs- oder NTFS-Dateisysteme
Wenn Ihr System XFS, Btrfs oder NTFS verwendet, ist das Testdisk-Tool eine bessere Option.
sudo apt install testdisk # Debian-based sudo yum install testdisk # RHEL-based
Führen Sie Testdisk aus und folgen Sie den interaktiven Aufforderungen, um verlorene Dateien wiederherzustellen.
sudo testdisk
Präventionstipps:
-
- Verwenden Sie trash-cli: Verwenden Sie anstelle von
rm
dastrash-cli
, um Dateien in einen wiederherstellbaren Papierkorb zu senden.
- Verwenden Sie trash-cli: Verwenden Sie anstelle von
sudo apt install trash-cli trash-put myfile.txt
- Aktivieren Sie regelmäßige Backups: Richten Sie Rsync oder Timeshift ein, um wichtige Dateien automatisch zu sichern.
Szenario 2: Wiederherstellung eines vergessenen Root-Passworts
Sie haben Ihr Root-Passwort vergessen und können keine administrativen Aufgaben ausführen, was bedeutet, dass Sie keine Software installieren, Systemeinstellungen ändern oder auf wichtige Dateien zugreifen können.
Sie können das Root-Passwort zurücksetzen, indem Sie in den Wiederherstellungsmodus booten oder den GRUB-Bootloader ändern.
Verwendung des Wiederherstellungsmodus (Ubuntu/Debian)
Zuerst starten Sie Ihr System neu und halten Sie während des Starts die Umschalttaste
gedrückt, um auf das GRUB-Menü zuzugreifen, wählen Sie dann „Erweiterte Optionen“ → „Wiederherstellungsmodus“ und wählen Sie „Zum root-Shell-Prompt wechseln“.
Hier das Wurzeldateisystem als beschreibbar neu einhängen und das root-Passwort zurücksetzen.
mount -o remount,rw / passwd root
Starten Sie das System neu.
reboot
Verwenden von rd.break (RHEL/CentOS/Fedora)
Zuerst starten Sie Ihr System neu, drücken Sie e
im GRUB-Menü und finden Sie die Zeile, die mit linux
beginnt, und fügen Sie rd.break
am Ende hinzu.
Danach das Wurzeldateisystem einhängen und das Root-Passwort zurücksetzen.
mount -o remount,rw /sysroot chroot /sysroot passwd root
Zum Schluss beenden und neu starten.
exit reboot
Präventionstipps:
- Erstellen Sie einen sudo-Benutzer ohne Passwort, um zu vermeiden, dass Sie den Zugriff auf das Root-Konto verlieren.
- Verwenden Sie SSH-Schlüssel anstelle von Passwörtern zur Authentifizierung.
Szenario 3: Sie haben ein Paket installiert, aber es funktioniert nicht
Sie haben ein Paket installiert, aber es wird angezeigt „Befehl nicht gefunden“, wenn Sie versuchen, es auszuführen, was normalerweise passiert, wenn die ausführbare Datei nicht im PATH Ihres Systems enthalten ist, das Paket nicht korrekt installiert ist oder eine fehlende Abhängigkeit besteht.
Die Lösung ist, zuerst zu überprüfen, ob das Paket installiert ist oder nicht.
dpkg -l | grep package-name # Debian-based rpm -qa | grep package-name # RHEL-based
Wenn es fehlt, installieren Sie es erneut:
sudo apt install package-name sudo yum install package-name
Überprüfen Sie als Nächstes, ob der Befehl in Ihrem System PATH ist.
which package-name echo $PATH
Wenn die Binärdatei an einem nicht standardmäßigen Speicherort ist, fügen Sie sie zu PATH hinzu:
export PATH=$PATH:/usr/local/bin
Präventionstipps:
- Starten Sie das Terminal neu oder führen Sie
hash -r
nach der Installation neuer Pakete aus. - Verwenden Sie Paketmanager wie Snap oder Flatpak, die Abhängigkeiten besser verwalten.
Szenario 4: Ihr System hat nicht genügend Speicherplatz
Ihr System zeigt einen Fehler “Kein Speicherplatz mehr auf dem Gerät” an, der Software-Updates, Protokollierung und normale Vorgänge verhindert.
Hier erfahren Sie, wie Sie Speicherplatz zurückgewinnen und Ihr System reibungslos betreiben.
Schritt 1: Überprüfen Sie die Speichernutzung
Die Lösung besteht darin, zuerst zu überprüfen, wie viel Speicherplatz auf jeder Partition Ihres Systems mit dem df-Befehl verwendet wird.
df -h
Schritt 2: Suchen und Löschen Sie große Dateien
Als nächstes suchen Sie nach den größten Dateien, die Speicherplatz verbrauchen, indem Sie den du-Befehl ausführen, der Ihr System durchsucht und die 10 größten Dateien oder Verzeichnisse auflistet. Löschen Sie unnötige Dateien mit rm
oder verschieben Sie sie auf ein externes Laufwerk.
du -ah / | sort -rh | head -10
Schritt 3: Entfernen Sie unnötige Protokolle
Protokolle sind wesentlich für die Fehlerbehebung und die Überwachung der Systemaktivität, können jedoch schnell wachsen und eine erhebliche Menge an Festplattenspeicher verbrauchen.
Im Laufe der Zeit werden alte Protokolle möglicherweise nicht mehr benötigt und können gelöscht werden.
sudo journalctl --vacuum-time=2d # Deletes logs older than 2 days sudo apt autoclean # Removes outdated package files
Schritt 4: Entfernen Sie alte Kernel (Ubuntu/Debian)
Wenn Sie Ihr System aktualisieren, insbesondere auf Ubuntu oder Debian-basierten Distributionen, werden oft neue Versionen des Linux-Kernels installiert.
Allerdings werden die alten Kernel nicht automatisch entfernt, und im Laufe der Zeit können sich diese alten Kernel ansammeln und eine erhebliche Menge an Festplattenspeicher belegen.
Ihre Entfernung ist eine sichere und effektive Methode, um Speicherplatz freizugeben, ohne die Funktionalität Ihres Systems zu beeinträchtigen.
sudo apt autoremove --purge
Präventionstipps:
- Einrichtung der Protokollrotation: Verwenden Sie logrotate, um die Größe von Protokolldateien automatisch zu verwalten und Aufbewahrungszeiträume festzulegen.
- Überwachung der Festplattenbelegung: Installieren Sie Tools wie ncdu, um die Festplattenbelegung zu verfolgen und Speicherfresser zu identifizieren.
- Regelmäßige Bereinigungen: Planen Sie regelmäßige Bereinigungen, um temporäre Dateien, Caches und ungenutzte Pakete zu entfernen.
Szenario 5: Ihr Server reagiert plötzlich nicht mehr
Sie verwalten einen Linux-Server und plötzlich reagiert er nicht mehr. Sie versuchen, eine Verbindung über SSH herzustellen, aber die Verbindung läuft ab oder wird abgelehnt. Möglicherweise stellen Sie sogar fest, dass der Server noch eingeschaltet ist, aber nicht auf Befehle reagiert.
Diese Situation kann durch verschiedene Probleme verursacht werden, einschließlich:
- Hohe CPU- oder Speicherauslastung aufgrund von Prozessen, die außer Kontrolle geraten sind.
- Festplatten-I/O-Engpässe, bei denen das System mit Lese-/Schreibvorgängen überlastet ist.
- Kernel-Panics oder Systemabstürze.
- Netzwerkausfälle, die den Remotezugriff verhindern.
Um die Kontrolle wiederherzustellen, befolgen Sie diese Troubleshooting-Schritte.
Schritt 1: Greifen Sie lokal oder über TTY auf den Server zu
Wenn SSH nicht funktioniert, versuchen Sie, direkt auf den Server oder über eine TTY-Sitzung zuzugreifen:
- Auf einer physischen Maschine verwenden Sie die lokale Konsole.
- Auf einer virtuellen Maschine verwenden Sie die Konsole des Hypervisors.
- Für Linux-Systeme wechseln Sie zu einer anderen TTY-Sitzung mit
Ctrl + Alt + F2
(oderF3
,F4
usw.).
Schritt 2: Überprüfen Sie die Systemauslastung
Nach dem Einloggen überprüfen Sie die Auslastung und Ressourcennutzung des Systems, die die durchschnittliche Auslastung des Systems über 1, 5 und 15 Minuten anzeigt. Ein Lastwert, der höher ist als die Anzahl der CPU-Kerne, weist auf eine hohe Nachfrage hin.
uptime
Verwenden Sie anschließend top oder htop, um Prozesse in Echtzeit zu überwachen:
top Or htop
Suchen Sie nach Prozessen, die übermäßig CPU oder Speicher verbrauchen.
Schritt 3: Identifizieren und Beenden von Ressourcen-intensiven Prozessen
Um die ressourcenintensivsten Prozesse zu identifizieren, führen Sie aus:
ps aux --sort=-%cpu | head
Dies listet die prozessorintensivsten Prozesse auf, wo Sie einen problematischen Prozess finden und diesen mit folgendem Befehl beenden können:
kill -9 PID
Ersetzen Sie PID
durch die Prozess-ID der problematischen Anwendung.
Schritt 4: Überprüfen Sie die Systemprotokolle
Wenn das System weiterhin reagiert, überprüfen Sie die Protokolle auf Fehler:
sudo tail -f /var/log/syslog Or sudo dmesg | tail
Diese Befehle zeigen kürzliche Systemmeldungen und Kernelprotokolle an, die bei der Identifizierung von Hardware- oder Softwareproblemen helfen können.
Schritt 5: Sicheres Neustarten mit SysRq
Wenn das System komplett eingefroren ist, verwenden Sie die SysRq-Tastenkombination, um sicher neu zu starten:
echo b > /proc/sysrq-trigger
Dies löst einen sicheren Neustart aus, der die Datenintegrität durch Synchronisierung von Datenträgern und Aushängen von Dateisystemen gewährleistet.
Schlussfolgerung
Das Fehlersuchen ist eine essentielle Fähigkeit für jeden Linux-Benutzer. Ob es darum geht, gelöschte Dateien wiederherzustellen, Passwörter zurückzusetzen oder Systemfehler zu beheben, das Wissen über die richtigen Befehle kann Zeit und Frustration sparen.
Haben Sie eigene Tipps zum Troubleshooting? Teilen Sie sie in den Kommentaren! Lassen Sie uns gemeinsam eine hilfreiche Linux-Community aufbauen.