Ext2/3-Dateisysteme im laufenden Betrieb reparieren

Datenrettung in letzter Not

Wenn sich eine Datei plötzlich gar nicht mehr ansprechen lässt, ist guter Rat teuer, speziell auf nur per Fernzugriff erreichbaren Root-Servern. Doch auch dieses Abenteuer kann glimpflich ausgehen.

Selbst wer vor ein paar Jahren aus Überzeugung SCSI-Festplatten in seinen Rechnern verbaute, greift heute zu IDE-Datenspeichern: Nicht nur, dass sie sehr viel billiger zu großen Mengen Speicherplatz verhelfen – sie sind auch bedeutend leiser als ihre Krachbrüder aus dem SCSI-Lager. Deren Hersteller gehen offensichtlich davon aus, dass SCSI heutzutage nur noch in Rechner eingebaut wird, die ohnehin in abgeschotteten Server-Räumen stehen.

So bekommt mancher kleine Server eben doch IDE-Platten eingebaut. Doch die sind oft nicht mehr für die Ewigkeit gebaut. Selbst IDE-Festplatten gut beleumundeter Hersteller machen schonmal nach einem reichlichen Jahr durchgängigem Betrieb schlapp.

Der Verfall geht oft schleichend vonstatten: Hier ein kaputter Sektor, da ein weiterer … Wer seine Daten nicht sichert, merkt höchstens durch Zufall, dass plötzlich Dateien "verschwinden". Läuft hingegen ein Backup-Cron-Job, so wird man hoffentlich rechtzeitig gewarnt – sofern man die Bericht-Mails von Cron liest.

Nutzt man rsync [3] für das Backup, sehen solch böse Nachrichten zum Beispiel so aus:

building file list … /home/pjung/artikel/LU0803: Input/output error
done
IO error encountered - skipping file deletion

Ein Input/Output-Fehler bei den Daten eines Verzeichnisses wie im Beispiel hat weitreichende Konsequenzen: Egal, ob man sich den Verzeichnisinhalt mit ls -al o. ä. anzeigen lassen oder den Ordner selbst mit mv verschieben will, egal, ob man sich mit stat Informationen zum Verzeichnis holen oder ein verzweifeltes rm -rf diesem nach dem Motto "Und bist du nicht willig, so brauch' ich Gewalt" den Garaus machen soll – man bekommt immer wieder denselben Ein-Ausgabefehler.

Löschen und aus dem Backup zurückkopieren geht also nicht. Auch auf die einstmals im Verzeichnis abgelegten Dateien kann man nicht mehr zugreifen, denn ein Verzeichnis ist nichts anderes als eine Datei, die die im Ordner enthaltenen Dateinamen samt zugehörigen Inodes enthält. Fehlen diese Informationen, weil die Festplatte dort kaputt ist, wo das Verzeichnis physikalisch "liegt", weiß das Betriebssystem nicht mehr, wie es an die Dateien herankommt – auch wenn sie noch unversehrt auf dem Datenträger lagern.

Der Patient ist also das Filesystem. Wenn alles gut geht, helfen die "Selbstheilungskräfte" einer Dateisystemüberprüfung zumindest vorübergehend weiter. (Den schleichenden Verfall der Festplatte können sie natürlich nicht stoppen.)

Der Rettungsmodus

Wer seinen Rechner vor sich stehen hat, wird jetzt in den Single-User-Modus booten, indem er oder sie dem hochzufahrenden Kernel am Boot-Prompt die Option single mitgibt. Am Prompt

Give root password to login:

ist das Superuser-Passwort gefragt (Achtung, manche Systeme haben in diesem Zustand eine amerikanische Tastenbelegung). So sich die Administratorin nicht erinnert, findet sie mit cat /etc/fstab heraus, auf welcher Festplattenpartition sich das kaputte Verzeichnis befindet. Diese gibt sie dem von den Filesystemchecks beim Booten bekannten Kommando fsck als Argument mit auf den Weg. Nach der Reparatur darf das System wieder neu und normal gestartet werden.

Doch wenn es sich bei dem betroffenen Rechner um einen Root-Server handelt, der im Server-Raum eines Providers steht, kann man nicht einfach in den Single-User-Modus booten – man sitzt ja nicht direkt vor dem Rechner und hat nur remote per ssh Zugriff. So lange es sich nicht um die unter / und /usr eingehängten Partitionen mit den für den Betrieb lebenswichtigen Programmen handelt, ist jedoch noch nichts verloren (im übrigen ein Argument mehr für ein überlegtes Partitionsschema).

Ohne Konsolenzugriff

Als root per ssh eingeloggt, listet der Befehl mount ohne weitere Argumente auf, welche Festplattenpartition an welcher Stelle des Dateisystems eingehängt ist. So liegen die Daten der im Beispiel betroffenen /home-Partition auf /dev/hda6:

/dev/hda6 on /home type ext3 (rw)

Wenn root jetzt allerdings fsck auf diese Partition anwendet, gibt es eine ernsthafte Warnung: Reparaturen an gemounteten Dateisystemen sind äußerst gefährlich (Listing 1). Da zieht man sich besser mit einem [n][Enter] wieder zurück.

Listing 1

Reparaturen an eingehängten Partitionen sind gefährlich

linux:/home/pjung # fsck /dev/hda6
fsck 1.28 (31-Aug-2002)
e2fsck 1.28 (31-Aug-2002)
/dev/hda6 is mounted.
WARNING!!!  Running e2fsck on a mounted filesystem may cause
SEVERE filesystem damage.
Do you really want to continue (y/n)?  no
check aborted.

Doch einfach aushängen geht auch nicht; schließlich greifen alle noch eingeloggten, nichtprivilegierten User derweil auf ihr Home-Verzeichnis zu. Arbeiten tatsächlich weitere Benutzer auf dem Rechner, schickt ihnen root mit dem Befehl wall eine Nachricht auf den Bildschirm (Abbildung 1):

echo -e "Bitte alle sofort ausloggen! \nWir haben Probleme mit dem Dateisystem" | wall
Abbildung 1: Für die wall-Meldung öffnet KDE ein eigenes Fenster

Wer diesem freundlichen Hinweis nicht Folge leistet, wird rabiat rausgeschmissen: Gibt die Administratorin von ihrem sicheren Platz im eigenen Home-Verzeichnis unter /root den Befehl

fuser -mk /dev/hda6

ein, sorgt die Option -k (kill) dafür, dass alle Prozesse sterben, die auf Dateien der derzeit noch gemounteten (-m) Partition /dev/hda6 zugreifen. (Wichtig hierbei: Sollte sich root über den su-Befehl von einem nichtprivilegierten Konto aus Admin-Rechte erworben haben, kickt sie sich damit natürlich selbst raus, denn der Elternprozess von su greift auf das Home-Verzeichnis des nichtprivilegierten Users zu.)

Anschließend heißt es, die betroffene Partition mit umount /dev/hda6 aus dem Dateibaum auszuhängen, und beim fsck /dev/hda6 das Beste zu hoffen. Ergeben nickt die gemeine Sysadmine dabei alle Korrekturvorschläge des Programms mit [y] ab – sie hat ohnehin keine Wahl. Ist das Dateisystem wieder heil, hängt sie es mit mount /home wieder ein und begutachtet den Ort der Verwüstung. Wer Glück hat, findet, dass fsck das kaputte Verzeichnis wiederherstellen konnte. Ansonsten bleibt nur, dessen Backup-Version an Ort und Stelle zu spielen.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Umstieg auf das Ext3-Dateisystem
    Dateisysteme mit Journal erleichtern den Umgang mit Linux: Stürzt der Rechner ab, muss man beim Neustart nicht die langwierige Überprüfung der Dateisysteme mit "fsck" abwarten. Wir helfen bei der Umstellung auf Ext3fs und zeigen auch den Weg zurück.
  • Dr. Linux
    Komplizierte Organismen, wie Linux-Systeme es nun einmal sind, haben so ihre ganz eigenen Wehwehchen. Dr. Linux beobachtet die Patienten in den Linux-Newsgruppen, stellt Rezepte für aktuelle Probleme aus und alternative Heilmethoden vor.
  • Mit dd_rescue defekte Partition wiederherstellen
    Wer regelmäßig seine Daten sichert, braucht vor Platten-Versagen keine Angst zu haben – doch manchmal vergisst man die regelmäßigen Backups. Verabschiedet sich dann die Festplatte mit einem Lesefehler, ist guter Rat teuer. Oder umsonst, wenn Sie "dd_rescue" verwenden.
  • Inode in Not
    Mit den richtigen Werkzeugen fühlen Sie Ihrem Dateisystem auf den Zahn, beseitigen Inkonsistenzen und restaurieren beschädigte Dateien.
  • resize_reiserfs
    Nach der Installation stellen Sie oft fest, dass das Installationsprogramm die gesamte Distribution auf eine einzige Root-Partition installiert hat. Diese Anleitung beschreibt, wie Sie eine ReiserFS-Partition verkleinern, um Platz für neue zu gewinnen.
Kommentare

Infos zur Publikation

LU 12/2017: Perfekte Videos

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Broadcom Adapter 802.11n nachinstallieren
Thomas Mengel, 31.10.2017 20:06, 2 Antworten
Hallo, kann man nachträglich auf einer Liveversion, MX Linux auf einem USB-Stick, nachträglich...
RUN fsck Manually / Stromausfall
Arno Krug, 29.10.2017 12:51, 1 Antworten
Hallo, nach Absturz des Rechners aufgrund fehlendem Stroms startet Linux nicht mehr wie gewohn...
source.list öffnet sich nicht
sebastian reimann, 27.10.2017 09:32, 2 Antworten
hallo Zusammen Ich habe das problem Das ich meine source.list nicht öffnen kann weiß vlt jemman...
Lieber Linux oder Windows- Betriebssystem?
Sina Kaul, 13.10.2017 16:17, 6 Antworten
Hallo, bis jetzt hatte ich immer nur mit
IT-Kurse
Alice Trader, 26.09.2017 11:35, 2 Antworten
Hallo liebe Community, ich brauche Hilfe und bin sehr verzweifelt. Ih bin noch sehr neu in eure...