Linux-Problem-Lösungsszenarien: Herausforderungen und Lösungen aus der realen Welt

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 das trash-cli, um Dateien in einen wiederherstellbaren Papierkorb zu senden.
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 (oder F3, 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.

Source:
https://www.tecmint.com/linux-troubleshooting-tips/