Ein Raid 5 mit 4 Partitionen (jede 1 TB groß, so dass der effektive Speicher des Raids insgesamt 3 TB ergab). welches ich vor längerer Zeit in OpenSUSE 15.??? (evtl auch in Thunderbold) mit YaST2 angelegt habe, habe ich seinerzeit ebenfalls mit Yast2 ein BtrFS über den kompletten zur Verfügung stehenden Speicher angelegt.
Nachem kürzlich die Partition sdd1 ausfiel, konnte ich zu Anfang das FS noch einmal mounten, danach ging plötzlich nichts mehr.
Ich habe dann dummerweise das Raid mit Hilfe von mdadm gestoppt.
Ein Versuch, dieses mit Hilfe von
mdadm --create /dev/md0 --level=5 --raid-devices=4 --chunk=128 /dev/sda1 /dev/sdb1 /dev/sdc1 missing --assume-clean
wiederherzustellen, führte dazu, dass das BtrFS nicht mehr ansprechbar war.
btrfsck scheiterte, da kein Superblock gefunden wurde. Auch der Versuch, den Superblock in einer der anderen beiden möglichen Positionen zu entecken (z.B.:)
führte zu keinem Erfolg.
Die Suche mit Hilfe von wxHexEditor nach der Signatur
führt dazu, dass ich an den Positionen 0x1.000.000 und 0x1.000.000.000 die einzigen Stellen auf sda1 finden konnte, die die Signatur enthalten.
Ich erhalte folgende Ausgabe durch:
btrfs inspect-internal dump-super -F --bytenr 16777216 /dev/md0
superblock: bytenr=16777216, device=/dev/sda1
---------------------------------------------------------
csum_type 0 (crc32c)
csum_size 4
csum 0x451cce81 [match]
bytenr 67108864
flags 0x1 ( WRITTEN )
magic _BHRfS_M [match]
fsid 274a7529-c2b4-40e7-ba26-313503b2d447
metadata_uuid 00000000-0000-0000-0000-000000000000
label
generation 1944123
root 451352084480
sys_array_size 129
chunk_root_generation 1914110
root_level 1
chunk_root 26312704
chunk_root_level 1
log_root 0
log_root_transid (deprecated) 0
log_root_level 0
total_bytes 4398046248960
bytes_used 4350800973824
sectorsize 4096
nodesize 16384
leafsize (deprecated) 16384
stripesize 4096
root_dir 6
num_devices 1
compat_flags 0x0
compat_ro_flags 0x0
incompat_flags 0x161 ( MIXED_BACKREF | BIG_METADATA | EXTENDED_IREF | SKINNY_METADATA )
cache_generation 1944123
uuid_tree_generation 1944123
dev_item.uuid c448e526-48a3-451c-857c-7375eacca9d9
dev_item.fsid 274a7529-c2b4-40e7-ba26-313503b2d447 [match]
dev_item.type 0
dev_item.total_bytes 4398046248960
dev_item.bytes_used 4398045200384
dev_item.io_align 4096
dev_item.io_width 4096
dev_item.sector_size 4096
dev_item.devid 1
dev_item.dev_group 0
dev_item.seek_speed 0
dev_item.bandwidth 0
dev_item.generation 0
Alles anzeigen
Die Untersuchung an der Position 0x1.000.000.000 zeigte ereartungsgemäß die folgenden Unterschieden:
diff btrfs\ inspect-internal\ superblock-auf-sda1-bei-0x1.000.000*
2c2
< btrfs inspect-internal dump-super --bytenr=16777216 /dev/sda1
---
> btrfs inspect-internal dump-super --bytenr=68719476736
/dev/sda1
6c6
< superblock: bytenr=16777216, device=/dev/sda1
---
> superblock: bytenr=68719476736, device=/dev/sda1
10,11c10,11
< csum 0x451cce81 [match]
< bytenr 67108864
---
> csum 0xb89b98b0 [match]
> bytenr 274877906944
Alles anzeigen
Der 2. Superblock sollte jedoch bei einem Raid 5 aus 4 Partitionen an der Stelle 1.400.000.000 liegen, damit er nach dem Zusammenbau des Raids an der gewünschten Position 0x4.000.000.000 zu liegen kommt (Ähnlich für den 3. Superblock).
An diesen Stelle finde ich jedoch mit wxHexEditor nichts Brauchbares.
Was muss ich beim neu zusammenbauen des Raid 5 aus den drei intakten Partitionen anders machen, damit die noch vorhandenen intakten Superblöcke an den zu erwartenden Positionen auftauchen?
Ich bin für jede Hilfe dankbar.