Záchrana filesystemu ext3

L

Re:Záchrana filesystemu ext3
« Odpověď #15 kdy: 08. 04. 2016, 12:36:15 »
testdisk mi uz nekolikrat pomohl s FAT/NTFS http://www.cgsecurity.org/wiki/TestDisk


ByCzech

  • *****
  • 1 864
    • Zobrazit profil
    • E-mail
Re:Záchrana filesystemu ext3
« Odpověď #16 kdy: 08. 04. 2016, 13:40:22 »
Za mě se přimlouvám nejdříve za použití gpart a až pak na nástroje, které dělají složitější práci jako je (g)parted, testdisk ap.

Hlavně do toho už nehrabte ručně, když nevíte co děláte.

RDa

  • *****
  • 2 928
    • Zobrazit profil
    • E-mail
Re:Záchrana filesystemu ext3
« Odpověď #17 kdy: 08. 04. 2016, 22:38:31 »
Jestli jsi z Prahy tak bych ti s tim mohl pomoct. EXT3 uz jsem obnovoval from scratch ( reimplementace FS v PHP ). Najit spravny zacatek by nemel byt tedy problem. Ozvi se do SZ

"( reimplementace FS <EXT3> v PHP )"

Pán je gurmán.

Ono to bylo EXT4 a jeste na RAID-5. Bohuzel se online resize/pridani disku nepovedlo - md0 device bylo citelne jen do 2TB v userspace (v kernelu se to evidentne cetlo dobre), takze fsck me regulerne rozbilo ten FS - vse co se nejak odkazovalo nad 2TB usoudilo ze je blbe a odstranilo reference na ty data. Nechapu jak se to mohlo dostat do toho stavu, ale uz nikdy nenecham fsck automaticky opravovat filesystem. A vam se to rekne.. zalohuj. 21TB oddil opravdu neni mozne jen tak nekde odkopirovat :)

Re:Záchrana filesystemu ext3
« Odpověď #18 kdy: 10. 04. 2016, 13:06:53 »
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
Kód: [Vybrat]
"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, (
Kód: [Vybrat]
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
Kód: [Vybrat]
"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.
Kód: [Vybrat]
Dumpe2fs /dev/sdc sice nenašel ani jeden superblock, ale
Kód: [Vybrat]
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.

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Záchrana filesystemu ext3
« Odpověď #19 kdy: 10. 04. 2016, 13:33:50 »
Zajimave, ja kdysi mel NTFS disk, na kterem nekdo vymazal MBR a testdisk to normalne obnovil.


Re:Záchrana filesystemu ext3
« Odpověď #20 kdy: 10. 04. 2016, 13:43:34 »
Zajimave, ja kdysi mel NTFS disk, na kterem nekdo vymazal MBR a testdisk to normalne obnovil.

To asi určitě umí, já měl ale právě kombinaci dvou problémů: špatný MBR a zcela přepsaný začátek první partition včetně ext3 headeru a superblocku. Testdisk by se tím pádem mohl orientovat jen podle dalších backup superblocků na disku a podle nich MBR i ext3 header rekonstruovat, ale taková funkce by možná byla už velké střílení od boku a nadělala většině uživatelů víc problémů než užitku...

Pavouk106

  • *****
  • 2 400
    • Zobrazit profil
    • Můj blog
    • E-mail
Re:Záchrana filesystemu ext3
« Odpověď #21 kdy: 11. 04. 2016, 10:20:46 »
A teď bych mohl říct, že jsem to říkal... A taky to řeknu ;D Já to říkal, že náhradní superblok pomůže. Nikdy jsem s tím osobně nedělal, ale jsem rád, že vidím, že to je (docela) jednoduchý.

izidor

Re:Záchrana filesystemu ext3
« Odpověď #22 kdy: 11. 04. 2016, 10:57:39 »
jinak neni potreba vytvaret partition fdiskem na nahodu, pokud se hleda zacatek partition tak se to da nascriptovat nedestruktivne pomoci losetup a read only mount, projeti prvnich 2048 sektoru je vcelku rychle.

x14

  • ***
  • 182
    • Zobrazit profil
    • E-mail
Re:Záchrana filesystemu ext3
« Odpověď #23 kdy: 12. 04. 2016, 10:40:59 »
záchrana se podařila na 100%
Tož blahopřeji a chválím kvalitní popis problému i řešení. Díky!

Re:Záchrana filesystemu ext3
« Odpověď #24 kdy: 12. 04. 2016, 11:37:14 »
a chválím kvalitní popis problému i řešení. Díky!
Přidávám se.