Position des Superblocks ermitteln

  • Ersteller Ersteller HeyHey
  • Erstellt am Erstellt am
H

HeyHey

Gast
Hi,

Gibt es eine Möglichkeit die Position des Superblocks auszulesen?

villeicht mit $ dumpe2fs /dev/hdx ?

lg HeyHey


edit:

stimmt das, dass bei einem ext3 Dateisystem Backups an den Positionen 8193, 32768, 98304, 163840, 229376,294912 angelegt werden?
 
Zuletzt bearbeitet:
ohne die genaue struktur von ext zu kennen würde ich den superblock irgendwo direkt nach dem bootsektor der partition vermuten. dass ext3 backups davon anlegt halte ich für plausibel. dass die positionen fest sind aber nicht (hängt eher von der größe der partition ab).
 
hätt ich vorhin dazuschreiben müssen

der befehl mke2fs -n hat mir folgendes ausgegeben

Superblock-Sicherungskopien gespeichert in den Blöcken:
32768, 98304




trotzdem kommt immer, wenn ich den befehl


e2fsck -b 98304 /dev/sdb2 oder
e2fsck -b 32768 /dev/sdb2 eingebe die Meldung:


e2fsck: Das Argument ist ungültig beim Versuch, /dev/sdb2 zu öffnen

SuperBlock ist unlesbar bzw. beschreibt kein gültiges ext2
Dateisystem. Wenn Gerät gültig ist und ein ext2
Dateisystem (kein swap oder ufs usw.) enthält, dann ist der SuperBlock
beschädigt, und sie könnten e2fsck mit einem anderen SuperBlock:
e2fsck -b 8193 <Gerät>



edit: Ich besitze noch eine gleiche Festplatte, selbe Partitionsgröße, selbes Dateisystem. Wärs dann nicht möglich, den Superblock von der Partition zu nehmen?

wie würde man das am Besten machen?

über dd?
 
Zuletzt bearbeitet:
Der Superblock von einer anderen Platte zu nehmen wird nicht gehen. Wenn ich nicht völlig flasch liege sind dort die Inodes gespeichert. Das würde wohl zu einen kompletten Datenverlust führen.
 
gut zu wissen^^


http://doc-tcpip.org/Aix/aix.superblock.html

Hier beschreibt jemand, wie man den Superblock kopieren kann.

dd count=1 bs=4k skip=31 seek=1 if=/dev/lvname of=/tmp/ein.file

Aus Interesse, wieso steht im Befehl, seek=1 und skip=31

müsste da nicht

seek=0 und skip = 32769 oder

seek=1 und skip = 32768?

lg HeyHey
 
Er kopiert den 32. 4-kbyte-Block aus /dev/lvname in den 2. 4-kByte-Block in /tmp/ein.file. Falls /tmp/ein.file vorher icht existierte, stehen nach dem dd in /tmp/ein.file am Anfang 4k Nullen und danach die kopierten 4kByte. Das File wäre also 8k groß.

Warum er das so macht? Keine Ahnung. Vielleicht ist bei JFS der 1. Block frei und im 2. steht der Original-Superblock. Dann könnte man das per dd erstellte /tmp/ein.file einfach drüberbraten (dd if=/tmp/ein.file of=/dev/lvname), um den Backup-Superblock an die richtige Stelle zu kopieren.
 
Zurück
Oben