UFS nicht mehr fsck-bar...Und nun?

soul_rebel

ist immer auf der flucht
Mein Server hat heute morgen leider nicht mehr auf ssh und ping reagiert, lokal ging auch nichts mehr... Ein Neustart musste her.

Nagut, so viel der schlechten Nachrichten; nach dem Neustart will fsck_ufs eins der Dateisysteme nicht mehr checken und meldet:
Code:
fsck_ufs: cannot alloc 3363051516 bytes for inoinfo
Also es brauch 3.3GB RAM um mein FS zu checken... Ich habe auch versucht von Sicherungen des Bootsektors zu fscken, mit demselben Ergebnis...
Naja, ein google erbrachte folgende ernüchternde Nachricht:
mailingliste said:
Could fsck_ffs be smarter about recovering from this? Possibly.
However, recovering a filesystem that go so thoroughly toasted is
better left to specialised data recovery tools
Öhm ja und jetzt? Wenn ich das Dateisystem trotzdem mounte erhalte ich lediglich Warnungen darüber, dass das FS nicht sauber ist Blocks innerhalb von zwei Dateien Fehler enthalen:
WARNING: /mnt was not properly dismounted
/mnt: mount pending error: blocks 16 files 2
Und seit das Dateisystem in Benutzung ist habe ich einmal folgende Nachricht erhalten, die sonst ja eher in Richtung Hardware-Defekt zeigt:
g_vfs_done():ad0s1f.eli[READ(offset=-6157701561278234624, length=16384)]error = 5

Kann ich das jetzt so weiterlaufen lassen oder soll ich das Dateisystem platt machen und neuerstellen? Letzteres wäre vielleicht klug, ist aber zeitaufwendig und nervig, da an dem Server mein Internet hängt :S
 
Ich wuerde mir schleunigst die Platten und/oder Controller naeher ansehen und ggf. austauschen. Solche "g_vfs_done" Meldungen wiesen bei mir in der Vergangenheit stets auf defekte Platten hin.
 
Ich würde auf jeden Fall mal mit dump die Daten wegsichern und das ganze auch neu anlegen.
 
Nicht mehr reparable Dateisysteme weil zu wenig Speicher vorhanden ist, treten eigentlich nur in zwei Fällen auf. Einmal sind das wirklich große Dateisysteme, ab etwa 2TB. Ist das bei dir der fall, könntest du dir ein fsck(1) aus 8.0-CURRENT bauen und es damit versuchen. Das Ding hat besseres Speichermanagement und kann (mit harten Methoden) auch bisher irreperable Dateisysteme wieder hinbegkommen.
Möglichkeit 2 ist, dass das Dateisystem so zersemmelt ist, dass die zu beachtenden Informationen einfach zu viel sind. In diesem Fall ist nur ein newfs(1) sinnvoll, wobei sich die Frage stellt, wie es soweit kommen konnte. Also Controller, Platten und Kabel anschauen :)
 
weitere moeglichkeit:

du schreibst dir ein kleines proggie welches die platte auslesen kann.
schliesslich ist die ja auch nur ein device, welches sich mit fopen oeffnen laesst.

auf die art und weise kommst du auch bei einem kaputten dateisystem noch an deine daten ran.


selbiges hatte ich mal bei meiner 500gb usb-platte gemacht.
aus dem einfachen grunde weil mein apple-laptop das ext2-filesystem nicht lesen wollte.


also, spec fuer ufs besorgen und draufloshacken.
 
Ich würde mit dd(1) (alternativ http://www.freshports.org/sysutils/dd_rescue ) die ganze Platte oder nur das Slice oder die Partition erstmal auf einen sicheren Speicher transferieren.

3,3 Gigabyte (User-Space) RAM sind ja nun mit amd64 kein Hexenwerk mehr. Wenn man keinen Rechner mit so viel Speicher zur Hand hat kann man auch mal Swapspace dafür verwenden, wofür er gedacht ist, als Notnagel für solche Situationen, in denen man außergewöhnlich viel Speicher braucht. Das rödelt dann eben mal eine ganze Weile, aber irgendwann isses dann durch.
 
Also das Dateisystem ist nur 10GiB groß. Also ist da irgendwas wirklich kaputt. Ich habe aber funktionierende Backups und so.
Ich denke das FS wird einfach gesichert und neuerstellt, ist am einfachsten auch wenns downtime ist.

Thx
 
Wenn man Dateisysteme gar nicht mehr lesen kann, hilft meist ffs2recov aus den Ports.
 
Back
Top