Linux-Fehlerbehebung: 5 häufige Probleme und wie man sie behebt
Linux ist ein leistungsstarkes und zuverlässiges Betriebssystem, aber selbst erfahrene Benutzer stoßen auf unerwartete Probleme. Egal, ob es sich um eine gelöschte Datei, ein vergessenes Root-Passwort oder ein träges System handelt, das Wissen, wie man eine effiziente Fehlerbehebung durchführt, ist der Schlüssel, um ein echter Linux-Experte zu werden.
In diesem Leitfaden werden reale Linux-Problemlösungsszenarien zusammen mit Schritt-für-Schritt-Lösungen vorgestellt, 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 Befehl rm gelöscht, und jetzt müssen Sie sie wiederherstellen. Im Gegensatz zu Windows und macOS verfügt Linux nicht über einen integrierten "Papierkorb" für Dateien, die vom Terminal gelöscht wurden.
Ihre Wiederherstellungsoptionen hängen vom verwendeten Dateisystem ab.
Für EXT3/EXT4-Dateisysteme
Verwenden Sie extundelete, ein Open-Source-Dienstprogramm, mit dem gelöschte Dateien von ext3- und ext4-Dateisystemen unter Linux wiederhergestellt werden können.
sudo apt install extundelete # Debian-based
sudo yum install extundelete # RHEL-based
Bevor Sie versuchen, die Wiederherstellung durchzuführen, heben Sie die Bereitstellung der Partition auf, um weitere Schreibvorgänge zu verhindern, die gelöschte Daten überschreiben könnten:
sudo umount /dev/sdX
Führen Sie als Nächstes 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 die bessere Option.
sudo apt install testdisk # Debian-based
sudo yum install testdisk # RHEL-based
Führen Sie testdisk aus, und befolgen Sie die interaktiven Anweisungen, um verlorene Dateien wiederherzustellen.
sudo testdisk
Tipps zur Prävention:
- Verwenden Sie trash-cli: Verwenden Sie anstelle von
rmtrash-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
- Regelmäßige Backups aktivieren: Richten Sie rsync oder Timeshift ein, um wichtige Dateien automatisch zu sichern.
Szenario 2: Wiederherstellen 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, keine 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.
Verwenden des Wiederherstellungsmodus (Ubuntu/Debian)
Starten Sie zuerst 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 "Auf Root-Shell-Eingabeaufforderung ablegen".
Hängen Sie hier das Root-Dateisystem wieder als beschreibbar ein und setzen Sie das Root-Passwort zurück.
mount -o remount,rw /
passwd root
Starten Sie das System neu.
reboot
Verwenden von rd.break (RHEL/CentOS/Fedora)
Starten Sie zuerst Ihr System neu, drücken Sie e im GRUB-Menü und suchen Sie die Zeile, die mit linux beginnt, und fügen Sie rd.break am Ende hinzu.
Mounten Sie als Nächstes das Root-Dateisystem und setzen Sie das Root-Passwort zurück.
mount -o remount,rw /sysroot
chroot /sysroot
passwd root
Beenden Sie abschließend den Vorgang und starten Sie neu.
exit
reboot
Tipps zur Prävention:
- Erstellen Sie einen passwortlosen sudo-Benutzer, um zu vermeiden, dass Sie vom Root-Zugriff ausgeschlossen werden.
- Verwenden Sie SSH-Schlüssel anstelle von Passwörtern für die Authentifizierung.
Szenario 3: Sie haben ein Paket installiert, aber es funktioniert nicht
Sie haben ein Paket installiert, aber es wird "Befehl nicht gefunden" angezeigt, wenn Sie versuchen, es auszuführen, was normalerweise passiert, wenn sich die Binärdatei nicht im PATH Ihres Systems befindet, das Paket nicht korrekt installiert wird oder eine Abhängigkeit fehlt.
Die Lösung ist, dass Sie zuerst überprüfen müssen, 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 neu:
sudo apt install package-name
sudo yum install package-name
Überprüfen Sie als nächstes, ob sich der Befehl in Ihrem Systempfad befindet.
which package-name
echo $PATH
Wenn sich die Binärdatei an einem nicht standardmäßigen Speicherort befindet, fügen Sie sie zu PATH hinzu:
export PATH=$PATH:/usr/local/bin
Tipps zur Prävention:
- Starten Sie das Terminal neu, oder führen Sie
hash -raus, nachdem Sie neue Pakete installiert haben. - Verwenden Sie Paketmanager wie Snap oder Flatpak, die Abhängigkeiten besser handhaben.
Szenario 4: Auf Ihrem System wird nicht mehr genügend Speicherplatz zur Verfügung
Ihr System zeigt die Fehlermeldung "Kein Speicherplatz mehr auf dem Gerät" an, wodurch Softwareupdates, Protokollierung und normale Vorgänge verhindert werden.
Hier erfahren Sie, wie Sie Speicherplatz zurückgewinnen und dafür sorgen können, dass Ihr System reibungslos läuft.
Schritt 1: Überprüfen Sie die Festplattenauslastung
Die Lösung ist, dass Sie zuerst mit dem Befehl df überprüfen müssen, wie viel Speicherplatz auf jeder Partition auf Ihrem System verwendet wird.
df -h
Schritt 2: Große Dateien suchen und löschen
Suchen Sie als Nächstes die größten Dateien, die Speicherplatz verbrauchen, indem Sie den Befehl du ausführen, der Ihr System scannt und die 10 größten Dateien oder Verzeichnisse auflistet. Löschen Sie nicht benötigte 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 für die Fehlerbehebung und Überwachung der Systemaktivität unerlässlich, können jedoch schnell wachsen und eine erhebliche Menge an Speicherplatz verbrauchen.
Im Laufe der Zeit werden alte Protokolle möglicherweise nicht mehr benötigt, was sie zu den besten Kandidaten für die Bereinigung macht.
sudo journalctl --vacuum-time=2d # Deletes logs older than 2 days
sudo apt autoclean # Removes outdated package files
Schritt 4: Alte Kernel entfernen (Ubuntu/Debian)
Wenn Sie Ihr System aktualisieren, insbesondere auf Ubuntu- oder Debian-basierten Distributionen, werden häufig neue Versionen des Linux-Kernels installiert.
Die alten Kernel werden jedoch nicht automatisch entfernt, und im Laufe der Zeit können sich diese alten Kernel ansammeln und eine beträchtliche Menge an Speicherplatz beanspruchen.
Das Entfernen ist eine sichere und effektive Möglichkeit, Speicherplatz freizugeben, ohne die Funktionalität Ihres Systems zu beeinträchtigen.
sudo apt autoremove --purge
Tipps zur Prävention:
- Einrichten der Protokollrotation: Verwenden Sie logrotate, um die Größe von Protokolldateien und die Aufbewahrungszeiträume automatisch zu verwalten.
- Überwachen Sie die Festplattennutzung: Installieren Sie Tools wie ncdu, um die Festplattennutzung zu verfolgen und Speicherplatzfresser zu identifizieren.
- Regelmäßige Bereinigungen: Planen Sie regelmäßige Bereinigungen, um temporäre Dateien, Caches und nicht verwendete Pakete zu entfernen.
Szenario 5: Ihr Server reagiert plötzlich nicht mehr
Sie verwalten einen Linux-Server, und plötzlich reagiert er nicht mehr und Sie versuchen, eine Verbindung über SSH herzustellen, aber die Verbindung läuft ab oder weigert sich, eine Verbindung herzustellen. 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, darunter:
- Hohe CPU- oder Speicherauslastung durch außer Kontrolle geratene Prozesse.
- Datenträger-E/A-Engpässe, bei denen das System mit Lese-/Schreibvorgängen überlastet ist.
- Kernel Panics oder Systemabstürze.
- Netzwerkausfälle, die den Fernzugriff verhindern.
Um die Kontrolle wiederherzustellen, führen Sie die folgenden Schritte zur Problembehandlung aus.
Schritt 1: Greifen Sie lokal oder über TTY auf den Server zu
Wenn SSH nicht funktioniert, versuchen Sie, direkt oder über eine TTY-Sitzung auf den Server zuzugreifen:
- Verwenden Sie auf einem physischen Computer die lokale Konsole.
- Verwenden Sie auf einer virtuellen Maschine die Konsole des Hypervisors.
- Wechseln Sie bei Linux-Systemen mit
Strg + Alt + F2(oderF3,F4usw.) zu einer anderen TTY-Sitzung.
Schritt 2: Überprüfen Sie die Systemauslastung
Überprüfen Sie nach der Anmeldung 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, deutet auf einen hohen Bedarf hin.
uptime
Verwenden Sie als Nächstes top oder htop, um Prozesse in Echtzeit zu überwachen:
top
Or
htop
Suchen Sie nach Prozessen, die übermäßig viel CPU oder Arbeitsspeicher verbrauchen.
Schritt 3: Identifizieren und Beenden von außer Kontrolle geratenen Prozessen
Um die ressourcenintensivsten Prozesse zu identifizieren, führen Sie Folgendes aus:
ps aux --sort=-%cpu | head
Hier werden die Prozesse mit der höchsten CPU-Auslastung aufgelistet, bei denen Sie einen problematischen Prozess finden können, und beenden Sie ihn mit:
kill -9 PID
Ersetzen Sie PID durch die Prozess-ID der problematischen Anwendung.
Schritt 4: Überprüfen der Systemprotokolle
Wenn das System noch reagiert, überprüfen Sie die Protokolle auf Fehler:
sudo tail -f /var/log/syslog
Or
sudo dmesg | tail
Diese Befehle zeigen aktuelle Systemmeldungen und Kernelprotokolle an, die bei der Identifizierung von Hardware- oder Softwareproblemen hilfreich sein können.
Schritt 5: Sicherer Neustart mit SysRq
Wenn das System vollständig eingefroren ist, verwenden Sie die Tastenkombination SysRq, um sicher neu zu starten:
echo b > /proc/sysrq-trigger
Dies löst einen sicheren Neustart aus, der die Datenintegrität durch Synchronisieren von Festplatten und Aushängen von Dateisystemen gewährleistet.
Schlussfolgerung
Die Fehlerbehebung ist eine wesentliche Fähigkeit für jeden Linux-Benutzer. Egal, ob es um die Wiederherstellung gelöschter Dateien, das Zurücksetzen von Passwörtern oder das Beheben von Systemfehlern geht, die Kenntnis der richtigen Befehle kann Zeit und Frustration sparen.
Haben Sie eigene Tipps zur Fehlerbehebung? Teilen Sie sie in den Kommentaren! Lassen Sie uns gemeinsam eine hilfreiche Linux-Community aufbauen.