Ještě jednou všem děkuju za rady, záchrana se podařila na 100%

. Byla to docela napínavá několikahodinová kovbojka, ale v podstatě jsem to udělal tak, že jsem na disku našel 1. backup superblock, nastudoval strukturu ext3 partition, podle toho odpočítal, kde by měla začínat partition (v mém případě na sektoru 1, nechápu jak se tam mohla dostat) a takto ji nastavil i v MBR. Pak už jsem jen udělal opravu filesystemu s e2fsck, kterému jsem řekl, který backup superblock má použít a ext3 už bez problému namountoval. Data vypadají zcela v pořádku, ale samozřejmě je radši přesouvám jinak a celý disk napartitionuju znovu nějak normálně.
Detaily:
- Nejdřív jsem vytvořil kopii disku s dd 1:1 . Měl jsem doma ještě jiný 1TB 3.5" interní disk, který měl úplně stejný počet bajtů. Naštěstí jsem tuhle zálohu později nepotřeboval, celá záchrana se zdařila přímo na původním disku.
- Myslel jsem si, že veškerá škoda na disku je způsobená jenom tím, že jsem neuvážlivě hned začínal opravovat MBR, ale nebyl jsem si jistý, takže jsem to zkusil ještě jednou a potvrdil si, že nový fdisk přepisuje data opravdu jen v MBR a na začátek partition nic nezapisuje. Což by znamenalo, že někde velmi brzy na začátku disku (konkrétně 1024B od začátku partition myslím) musí být ext3 header, magic number v primarnim superbloku atd. Jenže místo toho tam bylo nějaké smetí, resp. stále se opakující vzorec bajtů typu
"A......B......C......"
. Vypadalo to, že primární superblock je v háji (tzn. začátek disku něco opravdu přepsalo) takže jsem musel najít další superblock. Nasimuloval jsem vytvoření ext3, (
mke2fs -n
), které mi řeklo relativní pozice dalších superblocků, všechno vzhledem k začátku partition. Další SB byl na 32768. bloku, 1 blok má 4kB, takže jsem hledal magic number
"EF53"
hex v superblocku někde na pozici 4096x32768 = 134217728 bajtu. A opravdu, našel jsem ho "hned vedle" asi o 32.5kB
dříve než by ho vytvářel mke2fs. To znamenalo, že musím posunout start partition o 32.5kB (62 sektorů) dřív, což byl doslova sektor 1. Ověřil jsem pozice superblocků na jiných ext3 filesystemech, zkoušel i různé testy na flashce, a ext3 tooly se chovaly pořád stejně - tj. vypadalo to, že ta partition musela opravdu začínat na sektoru 1. Jediný problém byl v tom, že takovou partition mi nechtěl žádný tool vytvořit. Nový fdisk uměl jen start na 2048 sektorech, starý jen 63, sfdisk ani cfdisk taky nic. Nakonec jsem pod pohrůžkou násilí přinutil parted, aby tam partition opravdu vytvořil, jinak by mi zbývalo už jen vyrazit s hexa editorem do MBR přímo. Parted mě několikrát varoval, že dělám nejspíš nějakou blbost, ale MBR zapsal.
Zkusil jsem rychle testdisk, jestli něco najde - a okamžitě ukázal všechny backupové superblocky a dokonce mi dovolil i procházet bez problému filesystem. Trochu mě ten tool ale zklamal, protože když dříve při oddělaném MBR hledal 36 hodin všechny partitiony a filesystemy na disku, očekával bych , že se na magic numbers zaměřil. Filesystem zkrátka najde jen když je partition přesně tam kde má. Ale abych mu nekřivdil, prý se tam dá nějak nastavit i váha jednotlivých kritérií. Do toho jsem se ale nepouštěl, protože se mi nechtělo čekat 36h ještě nekolikrát, než to správně nastavím.
Každopádně teď už to byla hračka.
Dumpe2fs /dev/sdc
sice nenašel ani jeden superblock, ale
e2fsck -y -v -f -b 32768 /dev/sdc1
asi po 20 minutách opravilo celý disk. Mohl jsem ještě předtím mountnout systém jen jako read-only a nejdřív data zkopírovat ven, ale zálohu jsem měl, tak jsem se rozhodl trochu zariskovat.
Zbývají dvě záhady, které asi nerozluštím:
1) Co přepsalo začátek první partition. Mohly to být příliš aktivní Windows XP při uvítání nového disku, nebo možná některý z partition toolů (Windows Disk Management, Paragaon Partition Manager) tam zapsal nějaký Extended MBR , GPT, UEFI nebo něco jiného čemu nerozumím

2) Nechápu, jak mohla být v prvé řadě partition na sektoru 1, protože jsem si 100% jistý, že když jsem ji před cca 14dny vytvářel pod BackTrackem 4 R2 (starý fdisk), tak jsem jen zběžně zkontroloval a proklikal defaultní hodnoty, tj. start na 63. sektoru. O tento Backtrack jsem nicméně přišel a nejstarší fdisk co jsem sehnal a používal i teď jako "ten starý fdisk" byl v Backtracku 5 (asi o 8 měsíců starší než BT 4), tak možná je rozdíl i mezi nimi.
Jestli jste to dočetli až sem, tak díky za pozornost

. Když někdo opraví mé případné nesprávné domněnky, budu jen rád.