2238291

Wir zeigen Ihnen wie Sie defekte Linux-Server selber reparieren können

13.12.2016 | 12:00 Uhr |

Linux-Server haben vor allem auf Platinenrechnern wie dem Raspberry Pi Einzug in Heimnetze gefunden und laufen dort meist problemlos. Sollte es aber doch mal Probleme geben, helfen diese Tipps.

Ein Linux-Server lässt sich in den meisten Fällen über die Shell reparieren. Diese Shell auch im Notfall öffnen zu können, ist somit das wichtigste Ziel. Dazu nutzen Sie, sofern noch möglich, entsprechende Startoptionen des Linux-Systems. Eventuell ist es auch noch möglich, über SSH das System zu erreichen, da praktisch jeder Server als Open-SSH-Server konfiguriert ist. Schlimmstenfalls muss der Server über ein externes Rettungssystem oder eine Live-CD gestartet werden, während bei Platinenimages die Entnahme der SD-Karte und die Bearbeitung unter einem Linux-System mit SD-Kartenleser hilft.

Wenn Sie auf einem dieser Wege an eine Shell gekommen sind, stehen zahlreiche Möglichkeiten zur Verfügung, um das jeweilige System zu reparieren. Bevor Sie aber Befehle ausführen und Anpassungen vornehmen, sollten Sie das komplette Linux-System mit einer Imagesicherung auf einen zweiten Datenträger kopieren (Clonezilla oder dd). Bei Reparaturmaßnahmen kann es schon mal passieren, dass man mehr Schaden anrichtet, als schon besteht.

Systemstart von Ubuntu: Die „Erweiterten Optionen“ bieten Reparaturmaßnahmen.
Vergrößern Systemstart von Ubuntu: Die „Erweiterten Optionen“ bieten Reparaturmaßnahmen.

Noobs-Komfort für Raspberry Pi

Wer sein Betriebssystem für den Raspberry Pi über Noobs („New Out Of Box Software“) installiert hat ( www.raspberrypi.org ), vereinfacht sich nicht nur die Installation des Systems erheblich. Im Problemfall sollten Sie einen speziellen Noobs-Komfort nicht vergessen: Mit dem Noobs-Recovery-Mode – nach Drücken der Umschalt-Taste beim Booten – erhalten Sie neben dem eigentlich installierten System immer noch das zusätzliche Noobs-Notfallsystem. Damit können Sie zumindest die „config.txt“ eines defekten Systems editieren oder schlimmstenfalls sofort wieder eine Neuinstallation starten.

Falls mehrere Kernel-Versionen angeboten werden, nutzen Sie den neuesten mit der höchsten Versionsnummer.
Vergrößern Falls mehrere Kernel-Versionen angeboten werden, nutzen Sie den neuesten mit der höchsten Versionsnummer.

Standard-Reparaturoptionen und root-Shell

Die meisten Linux-Distributionen verfügen über einen Rettungsmodus, den Sie aus dem Bootmenü heraus starten können. Dieser Modus wird entweder standardmäßig am Bootmenü angezeigt oder Sie müssen eine Taste wie Esc oder Shift gedrückt halten, um dieses Angebot zu erhalten.

Unter Linux Debian gelangen Sie dann in den Rettungsmodus, indem Sie „rescue“ aus dem Menü wählen. Alternativ geben Sie den Befehl rescue am Bootprompt ein. Sie können auch vorweg einen Booteintrag mit der Option „rescue/enable=true“ erzeugen, über den sich der Rettungsmodus starten lässt. Der Debian-Rescuemodus zeigt die Shell an, genauso wie in Ubuntu und in den meisten anderen Distributionen. Beim Start von Ubuntu-Systemen halten Sie beim Start des Rechners die Shift-Taste gedrückt. Anschließend zeigt Ubuntu die erweiterten Bootoptionen an. Dort finden Sie auch den oben erwähnten Rescuemodus sowie einen Test des Arbeitsspeichers, wenn Sie den Verdacht haben, dass ein physischer Defekt vorliegt.

Die Recoveryoptionen berücksichtigen Grafikprobleme, logische Festplattendefekte und Fehler im Bootloader.
Vergrößern Die Recoveryoptionen berücksichtigen Grafikprobleme, logische Festplattendefekte und Fehler im Bootloader.

Sobald der Rettungsmodus gestartet ist, stehen bereits Optionen zur Verfügung, um Linux zu reparieren. Verwenden Sie möglichst die aktuellste Recoveryversion. Im Bootmenü zeigt Linux die verschiedenen Kernel-Varianten an. Startet die aktuellste Kernel-Version nicht, verwenden Sie die ältere Version. Das sollte allerdings selten notwendig sein, denn die aktuelle Wiederherstellungsversion startet normalerweise immer.

In den erweiterten Optionen erhalten Sie nun mehrere Standardwerkzeuge. Häufigste Problemursachen sind Schwierigkeiten mit der grafischen Oberfläche, selten beim System selbst. Startet das Linux-System nicht mehr ordnungsgemäß in der grafischen Oberfläche, ist die Option „failsafeX“ für den abgesicherten Modus die passende Antwort. Weitere Optionen an dieser Stelle wie „fsck“ oder „grub“ sind selbsterklärend und können logische Datenträgerprobleme oder Grub-Fehler beseitigen.

In der root-Shell können Sie sich einen Überblick über die Datenträger und Partitionen verschaffen.
Vergrößern In der root-Shell können Sie sich einen Überblick über die Datenträger und Partitionen verschaffen.

Es handelt sich dabei um einfache Werkzeuge, die keine individuellen Konfigurationsfehler erfassen. Bei spezielleren Problemen ist daher der Gang in die root-Shell unerlässlich (Option „root“). Verschaffen Sie sich dort zunächst einen Überblick, welche Partitionen auf dem System vorhanden sind. Dazu verwenden Sie den Befehl

sudo fdisk -l

Mit Chroot (Change Root) können Sie – ohne Zweitsystem – auf einem laufenden defekten System Reparaturen vornehmen. Dazu müssen Sie die relevanten Partitionen mounten, die Sie vorher mit sudo fdisk -l eingelesen haben. Verwenden Sie etwa folgende Befehle:

sudo mount /dev/sda1 /mnt
sudo mount /dev/sda2 /mnt/boot
sudo mount -t proc none /mnt/proc
sudo mount -o bind /dev /mnt/dev
sudo chroot /mnt

Statt „/dev/sda1“ und so weiter tragen Sie die Partitionskennungen ein, die Ihr System anzeigt.

Sobald Sie in der Chroot-Umgebung sind, können Sie die bekannten Terminalbefehle ausführen wie in einem normalen Linux-System. Auch eine Systemaktualisierung mit

apt-get update
apt-get dist-upgrade

lässt sich an dieser Stelle starten.

Lesetipp: So richten Sie sich den Raspberry Pi als Backupserver ein

So reparieren Sie defekte Partitionen

Linux-Systeme arbeiten mit unterschiedlichen Dateisystemen. Diese lassen sich in der Shell oder der Wiederherstellungsumgebung testen und reparieren. Soll zum Beispiel der Datenträger überprüft werden, ist fsck sinnvoll (File System Check). Sie sollten den Befehl aber nicht auf gemounteten Partitionen nutzen, da hier die Gefahr besteht, das Dateisystem zu zerstören. Um eine bestimmte Partition zu testen, verwenden Sie

fsck /dev/sda1

Wollen Sie zum Beispiel das „Home“-Verzeichnis in der Partition „sda2“ testen, verwenden Sie:

umount /home
fsck /dev/sda2

Mit dem Tool können Sie auch externe Laufwerke, USB-Sticks oder SD-Karten testen. Der Befehl dazu sieht dann zum Beispiel folgendermaßen aus:

umount /dev/sdb1
sudo fsck /dev/sdb1

Kennen Sie die Nummer der Partition nicht, hilft auch hier wieder der Befehl sudo fdisk -l. Findet fsck Fehler, können Sie automatische Reparaturen durchführen. Dazu verwenden Sie die Option „-a“:

fsck -a /dev/sda1

Wollen Sie alle Dateisysteme auf einmal testen und reparieren, verwenden Sie:

fsck -A

Der Befehl überprüft alle Dateisysteme, die in der Filesystem-Tabelle „/etc/fstab“ eingetragen sind. Verwenden Sie zusätzlich die Optionen „-R“ und „-y“, um das Rootsystem nicht zu scannen und ohne Rückfragen alle Fehler zu reparieren:

fsck -AR -y

Sie können auf einem Server auch gezielt bestimmte Dateisysteme scannen lassen, zum Beispiel „ext4“:

fsck -t ext4 /dev/sdc1
fsck -A -y -t ext4

Der erste Befehl durchsucht eine bestimmte Partition, sofern Ext4 vorliegt, der zweite scannt Partitionen mit Dateisystem Ext4. Für die verschiedenen Dateisysteme stehen weitere spezielle Befehle zur Verfügung, um Tests und Reparaturen durchzuführen. Um zum Beispiel Reiser-FS-Partitionen zu testen und zu reparieren, helfen nach der Installation des Spezialwerkzeugs (apt-get install reiserfsprogs) diese Befehle:

unmount /dev/sd[x]
reiserfschk -f /dev/sd[x]

Die entsprechenden Kommandos

unmount /dev/sd[x]
e2fsck -f /dev/sd[x]

verwenden Sie für die gebräuchlicheren Dateisysteme Ext2/3/4, wobei e2fsck in der Regel bereits an Bord ist.

Boothelfer Super Grub Disk: Das externe Livesystem findet vorhandene Linux-Installationen.
Vergrößern Boothelfer Super Grub Disk: Das externe Livesystem findet vorhandene Linux-Installationen.

Boothelfer Super Grub Disk 2

Gelingt die Reparatur des Bootloaders einer Linux-Distribution mit internen Mitteln nicht, können Sie das minimale Livesystem Super Grub Disk verwenden (Infos und Download unter www.supergrubdisk.org ). Diese Maßnahme eignet sich natürlich nur auf PC-Systemen, nicht auf Raspberry & Co., die nur von SD-Karte booten.

Die weitreichendste Analyse existierender Linux-Systeme erreichen Sie mit der Unteroption „Detect any GRUB2 installation (even if mbr is overwritten)“. Da die jüngeren Linux-Distributionen die Grub-Version 2 benutzen, ist „Suoer Grub Disk 2“ die erste Wahl. Anschließend bestätigen Sie die Auswahl „Load /boot/grub/core.img from (hdx, y)“, wobei der Platzhalter „x“ für die Festplattenbezeichnung steht und „y“ für die Partition.

Beachten Sie, dass Super Grub Disk 2 zwar Systeme auf der Festplatte sucht und wieder bootet, jedoch die Grub-Startumgebung nicht dauerhaft repariert. Dies können Sie dann im laufenden System im Terminal erledigen:

sudo grub-install /dev/sd[x]
sudo update-grub

Bei einem Bios-System helfen diese Befehle, wobei Sie statt „[x]“ die Laufwerkskennung der Bootfestplatte eintragen. Bei einem Uefi-System reparieren Sie Grub 2 und die EFI-Dateien mit

sudo grub-install

ohne nähere Zielangabe. Das Tool findet das Verzeichnis „/boot/efi“ mit dem Bootloader automatisch.

Eine Reparatur der Bootumgebung leistet Super Grub Disk nicht.
Vergrößern Eine Reparatur der Bootumgebung leistet Super Grub Disk nicht.

Eine Alternative zur manuellen Reparatur ist das externe Livesystem Rescatux ( www.supergrubdisk.org/rescatux ). Auch dieses ist nur auf PC-Servern, nicht auf Raspberry & Co. einsetzbar. Nach dem Start der richtigen Version (32 oder 64 Bit) gehen Sie auf „Restore Grub“, um für das installierte Linux-System Grub 2 erneut in den MBR zu schreiben. Die Aktion müssen Sie noch mit „Run!“ bestätigen.

Lesetipp: Wir zeigen Ihnen wie Sie den Grub-Bootloader anpassen

Spezialfall: Suse-Bootloader reparieren

Führen Sie bei einen System mit Open Suse Reparaturen durch, reagiert der Suse-Bootloader oft empfindlich. Auch nach der Installation von Erweiterungen oder bei Problemen mit der Hardware kann es zu Problemen kommen. Dann ist Open Suse zwar noch auf der Platte, startet aber nicht mehr. Sie können die Reparatur des Bootloaders aber mit einer Suse-DVD ( https://de.opensuse.org ) durchführen. Die Vorgehensweise dazu sieht folgendermaßen aus:

1. Booten Sie den Rechner von der Suse-DVD und wählen Sie im Bootmenü die Option „Rescue System“ aus (oder ähnlich lautend). Geben Sie „root“ ein, um sich anzumelden, danach „grub“, um die Verwaltung des Bootloaders zu starten.

2. Im nächsten Schritt lassen Sie sich die Daten des Bootloader anzeigen:

find /boot/grub/menu.lst

Bei der amerikanischen Tastaturbelegung finden Sie das Zeichen „/“ auf der Minus-Taste. Sie erhalten als Information die Daten des Loaders zum Beispiel in der Form „(hd[x],[y])“, also etwa „(hd0,2)“.

3. In der nächsten Zeile geben Sie dann den Befehlroot (hd[x],[y]) ein, also zum Beispiel

root (hd0,2)

Verwenden Sie die Kennung, die Sie vorher über find /boot/grub/menu.lst erhalten haben. Sie erhalten nun die Angabe des Dateisystems.

4. Geben Sie in der neuen Zeile den Befehl setup (hd[x]) ein. Verwenden Sie für „x“ die erste Zahl der Ausgabe aus find /boot/grub/menu.lst, zum Beispiel

setup (hd0)

Nun trägt das Tool die notwendigen Daten wieder ein und danach starten Sie den Rechner neu.

Auch interessant: So setzen Sie Ihren Raspberry Pi als Druckerserver ein

Festplattencheck: Die Smartmon-Tools testen den Status von SMART-kompatiblen Festplatten.
Vergrößern Festplattencheck: Die Smartmon-Tools testen den Status von SMART-kompatiblen Festplatten.

Software-Raid unter Linux reparieren

Software-Raid-Systeme sind zwar nicht so effizient wie Hardware-Raids, dennoch ist diese Art von Raids vor allem in kleinen Netzwerken oder bei privaten Linux-Servern recht beliebt. Funktioniert ein solches System nicht mehr, müssen Sie bei Reparaturen sehr vorsichtig vorgehen. Um Software-Raid-Systeme zu überprüfen, verwenden Sie:

cat /proc/mdstat

Der Befehl zeigt den Namen des Software-Raids an sowie alle beteiligten Festplatten. Auch den Zustand des Raid-Systems sehen Sie hier. Erscheinen Fehler bei Festplatten, sind Reparaturen notwendig. Unter Linux lässt sich dazu auch der Smart-Zustand von Festplatten testen.

Die Smartmon-Tools zum Überprüfen des Smart-Zustandes von Festplatten sind normalerweise in fast jeder Distribution enthalten. Sind die Tools nicht dabei, können Sie diese über die Paketverwaltung integrieren. Nach der Installation verwenden Sie das Tool smartctl. Für die Installation auf Debian-und Ubuntu-Servern verwenden Sie folgendes Kommando

apt-get install smartmontools

und bei Cent-OS

yum install smartmontools

Um einen Test durchzuführen, verwenden Sie nach der Installation zum Beispiel diesen Befehl:

smartctl -H /dev/sda

Testen Sie in einem Software-Raid alle beteiligten Festplatten. Natürlich können Sie mit dem Befehl auch alleinstehende Festplatten testen. Ausführlichere Informationen erhalten Sie mit:

smartctl -i /dev/sda1

Zusätzlich können Sie auch einen Selbsttest starten:

smartctl --test=short /dev/sda1

Statt „short“ gibt es auch die Option „long“ für einen ausführlicheren Test.

Reparaturen mit externen (Live-)Systemen

Wie im Haupttext am Beispiel von Super Grub Disk oder Rescatux beschrieben, ist es oft einfacher, ein defektes System mit einem Zweitsystem zu bearbeiten anstatt mit Chroot im laufenden System. Einschlägige Rettungssysteme sind etwa die System Rescue CD ( www.system-rescue-cd.org ) oder auch ein Knoppix ( www.knopper.net ).

Im Prinzip kann aber für einfache Reparaturen in Konfigurationsdateien jedes beliebige Linux aushelfen. Bei angeschlagenen Platinensystemen genügt es daher, die SD-Karte aus dem Raspberry oder vergleichbaren Minirechner zu entnehmen und dann unter einem Linux-System mit Kartenleser einzulegen. Das Dateisystem der SD-Karte wird dann automatisch gemountet und ist über den Dateimanager des PC-Systems erreichbar.

Win 32 Disk Imager: Das Tool ist das technische Windows-Äquivalent von dd unter Linux.
Vergrößern Win 32 Disk Imager: Das Tool ist das technische Windows-Äquivalent von dd unter Linux.

Bei Rechnern und Notebooks empfiehlt es sich hingegen, das defekte Gerät selbst mit einem Zweitsystem zu booten. Einschlägige Hilfsmittel, um an einen bootfähigen USB-Stick mit Rettungssystem zu kommen, sind das Standardtool dd unter Linux, der Win 32 Disk Imager unter Windows (Download unter https://sourceforge.net/projects/win32diskimager/ ) oder Unetbootin für Linux oder Windows (Download unter http://unetbootin.sourceforge.net ). dd oder der Win 32 Disk Imager schreiben eine heruntergeladene ISO-Datei wie beispielweise System Rescue CD mit

dd if=systemrescuecd-x86-4.8.1.iso of=/dev/sd[x]

1:1 auf den angegebenen Datenträger (die Angabe „x“ muss genau geprüft werden, weil das Medium komplett überschrieben wird). Da die ISO-Images ihre Bootumgebung mitbringen, ist der Stick danach auch bootfähig. Unetbootin betreibt etwas mehr Aufwand, indem es seine eigene Bootumgebung auf das USB-Medium schreibt. In der Regel ist das nicht notwendig.

0 Kommentare zu diesem Artikel

PC-WELT Marktplatz

2238291