ForumProblem mit ext2 Partition
Thomas Günther – Freitag, 25. Februar 2005 14:12 Uhr

Hallo!
Durch einen kleinen Stromausfall während des Zugriffes auf meine /dev/hda2 wurde die Platte von meiner Suse 9.1 ausgemountet, und lässt sich nun nicht mehr mounten.

mount /dev/hda2 /mnt/daten gibt das hier aus:
mount: special device /dev/hda2 does not exist

und e2fsck -p /dev/hda2 gibt dieses aus:
e2fsck: No such file or directory while trying to open /dev/hda2
/dev/hda2:
The superblock could not be read or does not describe a correct ext2
filesystem. If the device is valid and it really contains an ext2
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193

Was mache ich nun, wenn ich die Daten wiederhaben will? :D

Thomas

1 Antwort
E. Wälde – Freitag, 25. Februar 2005 15:29 Uhr

Hi,

1. Ruhe bewahren!

2. Kann es sein, daß /dev/hda2 (das device file) verschwunden ist? Das legt man mit mknod wieder an (man mknod). Bei mir sieht das so aus:
ll /dev/hda[123] /dev/ide/host0/bus0/target0/lun0/part[123]
lr-xr-xr-x 1 root root 33 Feb 25 07:32 /dev/hda1 -> ide/host0/bus0/target0/lun0/part1
lr-xr-xr-x 1 root root 33 Feb 25 07:32 /dev/hda2 -> ide/host0/bus0/target0/lun0/part2
lr-xr-xr-x 1 root root 33 Feb 25 07:32 /dev/hda3 -> ide/host0/bus0/target0/lun0/part3
brw-rw—- 1 root disk 3, 1 Jan 1 1970 /dev/ide/host0/bus0/target0/lun0/part1
brw-rw—- 1 root disk 3, 2 Jan 1 1970 /dev/ide/host0/bus0/target0/lun0/part2
brw-rw—- 1 root disk 3, 3 Jan 1 1970 /dev/ide/host0/bus0/target0/lun0/part3

Aber das ist mit devfs, und daher vermutlich nicht direkt mit Deinem Rechner vergleichbar.

Zeigt fdisk -l /dev/hda die Partitionstabelle richtig an? Hoffentlich ja.

Wenn das /dev/hda2 device file wieder da ist und die Partition immer noch nicht gemountet werden kann, dann mach erst ‘ne Kopie auf ‘ne andere, leere Partition mit
dd if=/dev/hda2 of=/dev/hd…
kopieren. Nicht nervös werden, das dauert. Und danach erst auf der Kopie rumprobieren (e2fsck).

Viel Erfolg!
Erich

Thomas Günther – Freitag, 25. Februar 2005 18:04 Uhr

Danke für die schnelle Hilfe, das klingt gut.
Ich habe Problme mit der parameterisierung des mknod Befehls, bei mknod b /dev/hda2 kommt eine Fehlermeldung ungültiges Gerät…

Hat hier jemand eine Ahnung was ich eintippen muss? Aus den man’s werde ich nicht wirklich schlau..

sorry und ggf danke im vorraus, Thomas

Thomas Günther – Samstag, 26. Februar 2005 12:51 Uhr

okay, mknod hat auf jeden fall schonmal die hda2 wieder ins /dev verzeichnis gelegt, aaaaber, mounten kann ich immer noch nicht.

e2fsck -b 8193 /dev/hda2
e2fsck 1.35 (28-Feb-2004)
e2fsck: Bad magic number in super-block while trying to open /dev/hda2

The superblock could not be read or does not describe a correct ext2
filesystem. If the device is valid and it really contains an ext2
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193

dd if=/dev/hda2 of=/dev/hdb3 brachte das Problem nun auch auf die hdb3 Platte, diese ist jedoch leer gewesen und ließ sich formatieren und wieder einmounten…

die hda2 möchte ich allerdings, soweit es möglich ist, nicht formatieren.. :(

Tom

Rolf Lucius – Montag, 28. Februar 2005 21:20 Uhr

Was genau passierte denn beim Befehl dd if=/dev/hda2 of=/dev/hdb3 ?

Um mit dd den Inhalt einer Partition auf eine andere zu kopieren, müssen beide Partitionen die gleichen physikalischen Eigenschaften haben. Daher bietet es sich an, die Partition in eine Datei zu kopieren, um sie dort weiter zu untersuchen und zu bearbeiten, z.B.:

dd if=/dev/hda2 of=/tmp/hda2.img

Voraussetzung ist allerdings, dass Platz genug für die Datei vorhanden ist, denn sie wird genauso groß wie die Partition.

Willst du versuchen, die Datei zu mounten, geht das im Beispiel mit

mount /tmp/hda2.img /mnt/daten -o loop

Hast du dann die “Partition” in der Datei repariert, kannst du sie natürlich auch wieder zurückschreiben:

dd if=/tmp/hda2.img of=/dev/hda2

Das alles hilft zwar nicht bei der Lösung des Problems, erspart dir aber vielleicht einigen Ärger, denn sollte bei den Reparaturversuchen was schiefgelaufen sein, kopierst du einfach wieder die Partition in die Datei und versuchst es nochmal.

Rolf

E. Wälde – Montag, 28. Februar 2005 22:56 Uhr

Hi Tom!

Puh, so richtig viel fällt mir jetzt nicht mehr ein.

> dd if=/dev/hda2 of=/dev/hdb3 brachte das Problem nun auch auf die hdb3 Platte …

Das ist zu erwarten; es bedeutet,daß das filesystem auf hda2 verbogen ist, und die Kopie auf hda3 eben auch.

Einen hab ich noch: die leere Partition hda3 war gleichgroß wie hda2, richtig?
Wenn Du da ein neues file system anlegst (mkfs.ext2 /dev/hda3), dann erzählt der Befehl brav die Adressen aller Kopien des superblocks. 8193 ist eine davon.
Du kannst noch versuchen — auf einer neuen KOPIE — alle diese Adressen
durchzuprobieren:
mkfs.ext2 /dev/hda3 # hier alle Superblock Adressen aufschreiben
dd if=/dev/hda2 of=/dev/hda3 # neue Kopie des kaputten fs anlegen
e2fsck -b /dev/hda3 # für alle Adressen vom ersten Befehl.

Ist zwar mühselig, aber nicht komplett aussichtslos. Wahrscheinlich gibts einen Befehl, um bei einem intakten filesystem diese Adressen ausgeben zu lassen. Na, tune2fs -l isses anscheinend nicht. Hm.

Der Vollständigkeit halber (ich hab noch ‘n anderen Rechner angefahren):
$ ls -l /dev/hda?
brw-rw—- 1 root disk 3, 1 Jul 22 2004 /dev/hda1
brw-rw—- 1 root disk 3, 2 Jul 22 2004 /dev/hda2
brw-rw—- 1 root disk 3, 3 Jul 22 2004 /dev/hda3
brw-rw—- 1 root disk 3, 4 Jul 22 2004 /dev/hda4
brw-rw—- 1 root disk 3, 5 Jul 22 2004 /dev/hda5

also:
cd /dev
mknod hda2 b 3 2
erzeugt die hoffentlich richtige Gerätedatei. Und manchmal rührt sich nixx, wenn man danach nicht nochmal bootet.

Es gibt tools, die ein kaputtes Dateisystem nach files durchsuchen, und retten, was sich zusammenflicken lässt. Aber ich hab damit keine Erfahrung. Kann dazu vielleicht jemand anders was sagen?

Es will mir aber nicht wirklich einleuchten, warum e2fsck nichts sinnvolleres zuwege bringt. Das bedeutet nach meinem Wissen, daß das filesystem wirklich schwer beschädigt ist. Oder daß auf der Partition schlicht wichtige Sektoren unlesbar geworden sind. Sowas hab ich aber schon lange nicht mehr erlebt. Könnte sein, daß “Datensicherung zurückspielen” das Wort der Stunde wird. Ich weiß, die ist immer zu alt.

In Zukunft könntest Du ext3 als filesystem einsetzen, das hat ein journal und ist gegen genau dieses Desaster (Stromausfall) viel besser geschützt.

Viel Glück!
Erich