Kleines Problem bei FS Verkleinerung

Pierre Bernhardt pierre at starcumulus.owl.de
Tue Jul 20 13:37:58 CEST 2010


Hallo,

ich habe ein kleines Problem welches ich bei Verwechslung der 
unterschiedlichen 1000 und 1024 Multiplikatoren zugefügt habe.

Alle wichtigen Daten des Dateisystems habe ich gesichert. Ich
würde jedoch gerne heraus finden, ob die betroffenen Daten nu
kaputt sind oder vielleicht doch heile. Dazu müsste ich wissen,
welche Daten/Dateien betroffen sind. Das erst mal zu meinen
Wünschen.

Der Grund für meine ganzen Aktionen war dass ich mein /homein
einer Grösse von ca. 230 GB auf eine neue ssd von 128 GB
verschieben wollte. 

Die Basis:
sdc3 > md2 > md2_crypt = dm-X (X für eine variable nummer) >
pv/vg datadg > lv home > ext3 > /home

Ziel war, md2 auf unter 128 GB zu verkleinern, die SSD dem
md2 hinzuzufügen und dann alles wieder zu errgrössern.

Nachdem ich also die grossen nicht benötigten Dateien aus /home
entfernt habe (neue Grösse ca. 98 GB) habe ich das Dateisystem
per resize2fs auf 27000000000 Blöcke reduziert.

Leider ist mir dann ein Rechenfehler unterlaufen und ich habe
das LV nun auf ca. 3 GB weniger verkleinert (100 GB angegeben,
aber lvreduce arbeitet hier wohl mit 1000er multiplikatoren )-:.
Nunja, danach habe ich noch das pv auf 101 GB reduziert und
das dcrypt-Volume auf 105 GB. Das md2 Volume hatte ich auf 110
GB redurziert so dass ich nun die Spiegelung anwerfen konnte.

Danach habe ich das md2 wieder vergrössert und dann irgendwann
rebootet. Dann kam der Schreck: e2fsck meckert, dass im Super-
block 27000000 Blöcke stehen, aber das Blockdevice nur 26214400
her gibt. 3GB fehlen also. Ich habe den fsck dann abgebrochen
und mich erst mal als root ohne mounten angemeldet.

Ich konnte dann anhand der lvm-Dateien in /etc/lvm/archive
schnell nachsehen, was schief gelaufen ist.
Meine Annahme war nun, dass sich in der VG keine Daten geändert
habe sondern nur die Grenzen der LV und so habe ich die LV erst
mal wieder auf volle 100%VG erweitert. Ein fsck -n hat mir dann
aber schnell gezeigt, dass noch immer etwas fehlt.
Es werden dann auch INODES angezeigt, auf die FSCK nicht zugreifen
kann, da sie in dem nichterreichbaren Bereich liegen.
Nun hatte ich gehofft, dass auch die Daten in dem md2_crypt sich
nicht geändert haben, da das mit 105 GB scheinbar gross genug
ist. Also habe ich mit vgextend die VG auf den ganzen Bereich
wieder erweitert, und nochmal die LV auf 100%VG erhöht.
Nun lief der e2fsck -f sauber durch.
Ich weiss nun allerdings auf die Schnelle nicht, wo die Superblocks
der VG liegen, so dass ich vermute, dass bei der Verkleinerung
der PV und damit der VG ggf. doch einige sektoren im FS 
überschrieben wurden.
Ausserdem bin ich mir nicht sicher, was das crypt-Volume mit den "alten" Daten anstellt. Offensichtlich kann es das lesen und durch reichen.

So und nun zum Kern meiner Frage: Wie finde ich heraus, welche
Inodes und damit welche Dateien/Verzeichnisse in dem Block-Bereich
über dem von fsck bei dem Problem angemeckerten Bereich liegen.
Da fsck ja nach meinem Reparaturversuch keine Probleme mehr
gefunden hat, gehe ich davon aus, dass die Verzeichnisstruktur
und die Inode-Tabellen alle in Ordnung sind.
Die Dateiinhalte könnten abr kaputt sein.  Und ich würde diese
Dateien dann selektiv lösche wollen.
Alle gesicherten Daten stelle ich aus dieser wieder her.

Habt Ihr eine Idee? Meine Anbindung ist derzeit auf eine Text-
konsole beschränkt, so dass das Googeln im Moment auch nicht so
richtig was bringt.
Ich bin jedenfalls gerade dabei vom FS vor dem ersten Mount
noch ein dd-Abzug zu erstellen um dann ggf. dort mir alles
anzusehen.

MfG...
Pierre





More information about the Linux mailing list