• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Gelöst: Dateisystem ext4 reparieren

heikowtb

Newbie
Hallo,

System Suse 11.3, Dateisystem ext4 auf einem IBM ServeRaid 7k, Stromausfall.

Dann hab ich auf einmal gemerkt, dass die Platte zu voll ist.

Code:
 fsck -n
fsck from util-linux-ng 2.17.2
e2fsck 1.41.11 (14-Mar-2010)
Warning!  /dev/sda2 is mounted.
Warning: skipping journal recovery because doing a read-only filesystem check.
/dev/sda2 contains a file system with errors, check forced.
Pass 1: Checking inodes, blocks, and sizes
Deleted inode 22416129 has zero dtime.  Fix? no

Inodes that were part of a corrupted orphan linked list found.  Fix? no

Inode 22416130 was part of the orphaned inode list.  IGNORED.
Inode 22416141 was part of the orphaned inode list.  IGNORED.
Inode 22416144 was part of the orphaned inode list.  IGNORED.
Inode 22416165 was part of the orphaned inode list.  IGNORED.
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Free blocks count wrong (7190653, counted=7190064).
Fix? no

Inode bitmap differences:  -(22416129--22416130) -22416141 -22416144 -22416165
Fix? no

Free inodes count wrong (26272293, counted=26272199).
Fix? no


/dev/sda2: ********** WARNING: Filesystem still has errors **********

/dev/sda2: 482779/26755072 files (1.0% non-contiguous), 99813251/107003904 blocks

Aber beim booten sagt er, das Filesystem sei clean, und im boot.msg steht kein Fehler:

Code:
<6>[    6.243591] EXT4-fs (sda2): mounted filesystem with ordered data mode

Dann hab ich mit der System Rescue CD gebootet, fsck.ext4 findet da keine Fehler.

Das System arbeitet ansonsten einwandfrei, wo kann hier der Haken liegen bzw. wie krieg ich das Filesystem wieder auf die Reihe?

Dank für Tips!
 
Code:
Warning!  /dev/sda2 is mounted.
Warning: skipping journal recovery because doing a read-only filesystem check.

Mach doch mal einen fsck, wenn die Partition nicht gemounted ist (z.B. von einem externen System aus).

Edit: Ups, sorry - hab nicht zu Ende gelesen... ich würde sagen, die Partition ist in Ordnung.
 
OP
H

heikowtb

Newbie
Tja, man weiß nicht, was man jetzt glauben soll. Tatsache ist aber, dass die Platte definitiv zu voll ist, also irgendwas ist faul.

Bringt es was, eine Suse-DVD runterzuladen und die Reparatur von der zu starten? Aber die startet ja auch nur fsck.ext4, oder?
 
heikowtb schrieb:
Tja, man weiß nicht, was man jetzt glauben soll. Tatsache ist aber, dass die Platte definitiv zu voll ist, also irgendwas ist faul.

Das hat aber nichts mit irgendwelchen Meldungen von fsck oder dem Stromausfall zu tun, dass solltest Du für sich behandeln (und das Eingrenzen sollte doch auch kein Problem sein). Differenzieren muss man außerdem zwischen Dateisystemfehlern, wie sie fsck prüft, und Fehlern auf der Festplatte (bad blocks o.ä.), wie sie bei Stromausfällen auftauchen können. Letzteres würde ich mit einem geeigneten tool überprüfen, diese werden meist von den Herstellern der jeweiligen Modelle zur Verfügung gestellt.
 
OP
H

heikowtb

Newbie
Ok, das kann ich machen.

Aber trotzdem: Warum sagt fschk beim boot und von einem anderen System aus "alles ist fein" (bzw. ist das filesystem "clean") und beim Check im laufenden Betrieb dann die Fehler?
 

spoensche

Moderator
Teammitglied
heikowtb schrieb:
Ok, das kann ich machen.

Aber trotzdem: Warum sagt fschk beim boot und von einem anderen System aus "alles ist fein" (bzw. ist das filesystem "clean") und beim Check im laufenden Betrieb dann die Fehler?

Der Check meldet das Fehler bestehen, aber nicht behoben werden können, weil die Partition gemountet ist, was sie bei einem Test und Fehlerbehebung nicht sein sollte. Zusätzlich sagst du fsck mit dem Parameter -n, dass eine Fehlerbehebung nicht gewünscht ist, aber fatale Folgen haben kann.

Du solltest also schleunigst ein Rescue System booten, die Partitionen der Festplatte nicht mounten und mit
Code:
fsck -a /dev/sda2
die Fehler beheben.
 
OP
H

heikowtb

Newbie
Äääh, genau das hab ich gemacht, siehe mein Ursprungspost:

Dann hab ich mit der System Rescue CD gebootet, fsck.ext4 findet da keine Fehler.

Hab da natürlichauch den check erzwungen...

BTW: Badblock sit bei kanpp 40%, noch keine Fehler.
 

RME

Advanced Hacker
Hallo,

Code:
> man e2fsck

Note  that  in general it is not safe to run e2fsck on mounted filesystems.  The only excep‐
       tion is if the -n option is specified, and -c, -l, or -L options are not  specified.    How‐
       ever,  even  if  it  is  safe  to  do so, the results printed by e2fsck are not valid if the
       filesystem is mounted.   If e2fsck asks whether or not you should check a  filesystem  which
       is  mounted,  the only correct answer is ``no''.  Only experts who really know what they are
       doing should consider answering this question in any other way.
>>> the results printed by e2fsck are not valid if the filesystem is mounted...

Gruss,
Roland
 
A

Anonymous

Gast
heikowtb schrieb:
So, badblocks ist durch, keine Fehler... Hmpf. :???:
Was willst du mit badblocks ?

Wenn die Achse am Auto gebrochen ist, brauchst du nicht nach Schlaglöchern im Umkreis von 30 Km zu suchen, sondern musst die Achse reparieren lassen.

badblocks überprüft ob sich die Blöcke fehlerfrei beschreiben und lesen lassen. Ob dort Müll drin steht, ist diesem Programm wurscht.

bei dir sind ein paar Inode nicht sauber gelöscht. Die Informationen die eine Inode als gelöscht markieren sind mehrere Felder in der inode selbst und müssen zusammenpassen mit anderen Filesystemmetadaten die sich in anderen Blöcken befinden. Bei deinen 5 Inode ist das nicht der Fall und genau das wird angemeckert.
Keine Angst, diese Dateien sind für dich schon gelöscht oder nie wirklich auf Platte geschrieben worden, du wirst also keinen Datenverlust beim fsck haben. Nur sind sie eben nicht 100%ig sauber als gelöscht gekennzeichnet. Kommt gelegentlich vor (besonders nach Stomausfällen) dass solche kleinen Fehlerchen im Dateisystem sind, und dort bleiben sie bis zum nächsten kompletten fsck, siehe auch verwandtes Thema. Begünstigt werden solche Fehler oft noch wenn der Cache auf der Platte für das Schreiben aktiviert ist, was der Normalfall bei PC-Hardware sein dürfte, da sonst die Kisten nur halb so schnell währen. (Bei Serverhardware ist der Schreibcache in der Regel auf den Platten aus.) Ob der Schreibcache an ist könnte man bei IDE/SATA wie folgt überprüfen.
Code:
hdparm -W /dev/sdb

/dev/sdb:
 write-caching =  1 (on)

Einfach als root folgenden Befehl eingeben und dann rebooten.
Code:
touch /forcefsck

und dieser Fehler ist behoben, und eventuelle andere in anderen Filesystemen auch (alle FS die in der fstab als mit fsck zu überprüfen gekennzeichnet sind werden komplett überprüft) . Wenn ein wirklich dicker Fehler irgendwo dabei sein sollte, wird der Bootvorgang dort unterbrochen. Immer noch kein Problem, fsck repariert das schon es will es nur nicht ohne deine Ausdrückliche Einwilligung tun.

robi
 
OP
H

heikowtb

Newbie
Hallo robi,

Einfach als root folgenden Befehl eingeben und dann rebooten.
touch /forcefsck

Hab ich getan. Läuft dann beim reboot sauber durch ohne Fehler...

dann aber wieder:

Code:
fsck -n
fsck from util-linux-ng 2.17.2
e2fsck 1.41.11 (14-Mar-2010)
Warning!  /dev/sda2 is mounted.
Warning: skipping journal recovery because doing a read-only filesystem check.
/dev/sda2 contains a file system with errors, check forced.
Pass 1: Checking inodes, blocks, and sizes
Deleted inode 22416143 has zero dtime.  Fix? no

Inodes that were part of a corrupted orphan linked list found.  Fix? no

Inode 22416215 was part of the orphaned inode list.  IGNORED.
Inode 22416240 was part of the orphaned inode list.  IGNORED.
Inode 22416366 was part of the orphaned inode list.  IGNORED.
Inode 22419374 was part of the orphaned inode list.  IGNORED.
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Free blocks count wrong (7169913, counted=7169976).
Fix? no

Inode bitmap differences:  -22416143 -22416215 -22416240 -22416366 -22419374
Fix? no

Free inodes count wrong (26264198, counted=26264111).
Fix? no


/dev/sda2: ********** WARNING: Filesystem still has errors **********

/dev/sda2: 490874/26755072 files (1.0% non-contiguous), 99833991/107003904 blocks

Ich verstehs nicht...
 
A

Anonymous

Gast
Du hast das Filesystem gemountet, da gibt es immer Differenzen. fsck merkt sich eine Zahl und braucht ein paar Minuten bis es sie überprüft hat, in der Zwischenzeit hat der Kernel die Hälfte des Filesystems schon wieder überschrieben. Ist wie sich einen genauen Überblick über den Stand seine Finanzen zu verschaffen, während die Frau gerade mit der Kreditkarte in der Stadt unterwegs ist. ;) Das Ergebnis kann nie stimmen.

RME schrieb:
>>> the results printed by e2fsck are not valid if the filesystem is mounted...


robi
 
OP
H

heikowtb

Newbie
Ok, danke, dann bin ich beruhigt.

Ich hab mittlerweile den Grund gefunden, warum die Platten zu voll waren: Ein NFS-Laufwerk zur Sicherung war nicht gemounted und da hats die Sicherung fröhlich auf die Platte geschrieben. :/

Vielen Dank für die Hilfe!
 
Oben