Fórum Root.cz

Hlavní témata => Software => Téma založeno: JZ123 07. 04. 2016, 14:41:00

Název: Záchrana filesystemu ext3
Přispěvatel: JZ123 07. 04. 2016, 14:41:00
Ahoj,

Potřebuji poradit jak zachránit soubory z ext3, ideálně včetně directory structure. Co se stalo:
U 1TB disku s jedinou ext3 partition přes celý disk jsem smazal MBR (jak se mi to povedlo viz úplně dole, celkem zajímavé). Když jsem ho vytvořil v fdisku znovu stejně jako předtím (tzn. nová partition, linux type 83, ale nic víc, tj. bez formatu), tak soubory nevidím. Myslím, že celý filesystem by tam měl být jako předtím, protože na disk se nic jiného úmyslně nezapisovalo (ani byte) a i v disk dumpu vidím názvy souborů a folderů. Ale asi někde kolem MBR chybí "pár bajtů" , které nějak napojí partition na ten filesystem.

Jak bych měl postupovat a jaké tooly se na to nejvíc hodí ?

Teď disk scanuje gparted (attempt data rescue option), který prý umí najít filesystemy, ale nejsem si jistý, jestli je to k něčemu užitečné. Nedá se to třeba nějak snadno udělat tune2fs ? Taky znám sfdisk (nikdy jsem ho ale nepoužil), ale chtěl jsem radši nejdřív poradit, než do toho říznu, protože se v tomhle moc neorientuju...

Jen pro info, na disku je cca 500 souborů , dohromady tak 450GB.


No a jen kdyby někoho zajímalo, jak se mi povedlo smazat MBR: Disk je interní 1TB 3.5" plotnový, poprvé jsem ho připojil přímo k řadiči v notebooku , naformátoval v Backtracku 4 a nahrál na něj data. O nějakou dobu později jsem ho připojil přes USB/SATA kabel v jiném pc ve Windows a chtěl na něj přes extFS něco přidat. 1TB disk se ale tvářil , že má jednu 7.3T velkou partition neznámého typu. Mnozí už asi tuší, kde je zakopaný pes, ale já o těch sector sizech tehdá nic nevěděl, takže jsem si myslel, že jde asi o nějaké poškození MBR. Disk byl předtím připojen i třeba k Windows XP, které se nabídly ho zformátovat, Windows 7 se na něj taky tvářily divně, tak jsem myslel , že je zkrátka potřeba tu partition jen opravit. Zkrátka jsem ten MBR přepsal. Zálohu jsem si předtím udělal, ale po několika hodinách jsem o ni omylem přišel. To jsem ještě nevěděl, že disk byl vlastně celou dobu v pořádku, ale problém byl v tom, že uvnitř laptopu s ním řadič pracoval jako s 512 bytes/sector , přes ten USB/SATA cable to bylo 4K. To je 8x větší délka sektoru a ne náhodou se ten disk potom přes kabel tvářil jako 8x větší. Kdybych disk bez jakýchkoliv změn připojil zpátky dovnitř laptopu, normálně by nejspíš fungoval.
Název: Re:Záchrana filesystemu ext3
Přispěvatel: Pavouk106 07. 04. 2016, 14:53:31
Pokud jsi udělal úplně stejný oddíl (velikostně), tak filesystem připoj se záložním superblokem (na disku jich bude několik). Jen nevím, kde vezmeš jeho pozici :-) mkfs.ext3 má možná v nápovědě nějaký info, případně strejda Google.

Ten gparted by mohl ten superblok najít a použít, ale nikdy jsem to tak nepoužíval.

Zcela bez záruky (nikdy jsem to nepotřeboval a nedělal) můžeš zkusit například tenhle návod (http://www.cyberciti.biz/tips/surviving-a-linux-filesystem-failures.html).

Podle mě bys měl mít data za pár minut zpět :-)
Název: Re:Záchrana filesystemu ext3
Přispěvatel: trubicoid2 07. 04. 2016, 15:01:20
no jestli nejde připojit, tak asi ty oddíly byly předtím trošku jinak velký
já bych teda nový mbr nedělal

návod na nahledání pomoci gpart a parted je tu: http://ubuntuforums.org/showthread.php?t=370121 (http://ubuntuforums.org/showthread.php?t=370121)

najít superblock je tu: http://www.cyberciti.biz/faq/linux-find-alternative-superblocks/ (http://www.cyberciti.biz/faq/linux-find-alternative-superblocks/)

ale to uz musi byt ty oddily prvne spravne zarovnany
Název: Re:Záchrana filesystemu ext3
Přispěvatel: Pavouk106 07. 04. 2016, 15:03:33
ale to uz musi byt ty oddily prvne spravne zarovnany
Teoreticky byl oddíl přes celý disk a je znovu. Náhradním superblokem to zachrání ;-)
Název: Re:Záchrana filesystemu ext3
Přispěvatel: trubicoid2 07. 04. 2016, 15:20:47
teorie je teorie a praxe je praxe
různý verze fdisku nechávají na začátku před první particí různě velký místo, což samozřejmě vadí
Název: Re:Záchrana filesystemu ext3
Přispěvatel: Mirek Prýmek 07. 04. 2016, 15:27:38
Koukni na testdisk - umí najít staré partitiony. Pokud chceš, prochází kompletně celý disk. Dostaneš pak možná hodně false positives, ale aspoň můžeš zkoušet a máš větší šanci.
Název: Re:Záchrana filesystemu ext3
Přispěvatel: Lol Phirae 07. 04. 2016, 15:33:38
Taky jsem na tohle používal vždycky primárně testdisk.

P.S. Pokud netušíš, co děláš, tak se v tom nehrab, nikam to nepřipojuj a nic s tím nedělej a odnes to k někomu, kdo má aspoň nějaké ponětí o tom, co činí.
Název: Re:Záchrana filesystemu ext3
Přispěvatel: j 07. 04. 2016, 18:52:36
Viz LO, nejlepsi by bylo ten disk ddckem komplet celej prekopirovat a pak si hrat s tou kopii. Nebo proste vytahni nakyho toho palackyho ... a odnes to nekam, kde to delaj.
Název: Re:Záchrana filesystemu ext3
Přispěvatel: x14 07. 04. 2016, 19:45:25
Já bych to naformátoval na ext4 a stáhl si nový porno ;)
Název: Re:Záchrana filesystemu ext3
Přispěvatel: Lol Phirae 07. 04. 2016, 19:56:45
Já bych to naformátoval na ext4 a stáhl si nový porno ;)

No, taky myslím, že není nad čerstvý nevokoukaný maso.  ;D
Název: Re:Záchrana filesystemu ext3
Přispěvatel: JZ123 08. 04. 2016, 09:00:27
Děkuju vám všem za rady, jako další zkusím připojit ten superblock a když to neklapne, tak holt přijde ke slovu testdisk. Jak psal trubicoid, nejdřív se ale ujistím, aby byla ta partition opravdu stejná.

K některým komentářům:
-Gparted data rescue doběhl, ale našel jen 4 NTFS filesystemy po 100MB, které tam nikdy nebyly. Jen pro info, 1TB disk trvalo 36h proscanovat, v iotop se dá sledovat i/o rychlost - 8MB /s
-dobrá poznámka s těmi různými verzemi fdisku - stáhnul jsem si znovu starý Backtrack, kterým jsem vytvářel původní partition, tak uvidím jestli ten MBR bude binárně stejný jako ten současný. Superblok zkusím připojit až potom...
-jinak do principu MBR, partition a filesystemu obecně celkem vidím, data už jsem zachraňoval hodněkrát, ale zatím nikdy ne pod linuxem.
-P na disku nebylo , to bych ho fakt radši stáhnul čerstvý :)
-ext3 tam v podstatě kvůli kompatibilitě. Disk je určený pro Asus RT-N16 router s TomatoUSB firmwarem, funguje jako storage pro DLNA, sambu atd... myslím, že TomatoUSB ext4 snad ani neumí. Navíc ho občas připojuju k Windows přes ext3 drivery a nevím, jestli by uměly i ext4. NTFS tam není proto, že router s ním pracuje asi o 30% pomaleji než s ext3.


Název: Re:Záchrana filesystemu ext3
Přispěvatel: JardaP . 08. 04. 2016, 09:29:51
Děkuju vám všem za rady, jako další zkusím připojit ten superblock a když to neklapne, tak holt přijde ke slovu testdisk. Jak psal trubicoid, nejdřív se ale ujistím, aby byla ta partition opravdu stejná.


Ja bych jako prvni vytvoril kopii celeho disku.

BTW, mozna by bylo zajimave pred spustenim testdisku prevalcovat MBR nulami, aby chudak nebyl krmen rozporuplnymi informacemi a soustredil se jen na to, co najde dale na disku. To MBR uz stejne asi dokupy nedate a zalohu jste si obratne smazal.

BTW, mozna jste, jako prvni, mel pouzit photorec a snazit se pomoci nej obnovit tu zalohu MBR.
Název: Re:Záchrana filesystemu ext3
Přispěvatel: trubicoid2 08. 04. 2016, 10:44:41
toto jsi zkousel? mne to fungovalo dobre
Kód: [Vybrat]
sudo gpart /dev/sdx
neni to gparted ani parted, ale gpart
https://en.wikipedia.org/wiki/Gpart (https://en.wikipedia.org/wiki/Gpart)
Kód: [Vybrat]
https://packages.debian.org/sid/gpart
Název: Re:Záchrana filesystemu ext3
Přispěvatel: RDa 08. 04. 2016, 12:04: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
Název: Re:Záchrana filesystemu ext3
Přispěvatel: čumil 08. 04. 2016, 12:17:28
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.
Název: Re:Záchrana filesystemu ext3
Přispěvatel: L 08. 04. 2016, 12:36:15
testdisk mi uz nekolikrat pomohl s FAT/NTFS http://www.cgsecurity.org/wiki/TestDisk
Název: Re:Záchrana filesystemu ext3
Přispěvatel: ByCzech 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.
Název: Re:Záchrana filesystemu ext3
Přispěvatel: RDa 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 :)
Název: Re:Záchrana filesystemu ext3
Přispěvatel: JZ123 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.
Název: Re:Záchrana filesystemu ext3
Přispěvatel: JardaP . 10. 04. 2016, 13:33:50
Zajimave, ja kdysi mel NTFS disk, na kterem nekdo vymazal MBR a testdisk to normalne obnovil.
Název: Re:Záchrana filesystemu ext3
Přispěvatel: JZ123 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...
Název: Re:Záchrana filesystemu ext3
Přispěvatel: Pavouk106 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ý.
Název: Re:Záchrana filesystemu ext3
Přispěvatel: izidor 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.
Název: Re:Záchrana filesystemu ext3
Přispěvatel: x14 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!
Název: Re:Záchrana filesystemu ext3
Přispěvatel: Mirek Prýmek 12. 04. 2016, 11:37:14
a chválím kvalitní popis problému i řešení. Díky!
Přidávám se.