Portál AbcLinuxu, 1. června 2024 12:19

Jak na záchranu dat z poškozeného disku

8.7.2005 23:37 | Přečteno: 2790× | Linux | poslední úprava: 29.8.2005 18:28

Protože se mi před pár měsíci zhroutil disk, rozhodl jsem se napsat krátký návod na základní postupy pro záchranu dat, které jsem použil. Nekladu si nárok být kompletní :-).
Neměl jsem použitelný systém, pracoval jsem v Knoppixu.
Poslední verzi tohoto dokumenntu najdete na mém webu.

dd

Nejdůležitější je obsah disku brzy překopírovat na jiný disk. V mém případě se jednalo o externí FireWire disk na /dev/sda. Ke kopírování dat je nejlepší použít příkaz dd s parametrem conv=noerror,sync.
Sync zajistí, že místo vadních bloků se na cílový disk zapíší nuly. Bez tohoto budou data nepoužitelná!

Kopíruje se mnoho dat, je tedy vhodné si nastavit parametr bs na nějakou optimální hodnotu, abychom nemuseli čekat celou věčnost. Příliš velká hodnota má však za následek, že např. v případě vadného 4kB bloku a bs=16384 se nuly místo skutečně vadných 4kB zapíší místo 16kB (protože čtení probíhá po 16kB blocích). Proto je dobré okraje poškozených míst nechat dodatečně zkopírovat s menším parametrem bs.

Příklad: Kopírujeme data z hdb na sda:

dd if=/dev/hdb of=/dev/sda bs=16384 conv=noerror,sync
dd nám sdělí, že data z třetího bloku nejsou čitelná. Můžeme tedy nakonec zkusit zachránit nějaká data z tohoto bloku příkazem:
dd if=/dev/hdb of=/dev/sda bs=512 conv=noerror,sync skip=64 seek=64 count=32
32 a 64, protože blok o velikosti 16384 bajtů se dá rozdělit na 32 bloků o velikosti 512 bajtů.
Nejsnáze však bude použít jiné nástroje, které jsou k tomuto úkolu povolanější (více v diskuzi).

gpart

Kvůli ztrátě tabulky oddílů bylo zapotřebí oddíly na disku dohledat. K tomu mi posloužil nástroj gpart.
Některé oddíly jsem měl poschovávané uvnitř logického oddílu. Z neznámých důvodů mi tyto oddíly gpart nevypsal, proto jsem použil parametr verbose:

gpart -v /dev/sda
Výsledné informace mohou vypadat např. takto:
Possible partition(ReiserFS filesystem), size(238221mb), offset(1145mb)
   type: 131(0x83)(Linux ext2 filesystem)
   size: 238221mb #s(487877888) s(2345553-490223440)
   chs:  (146/1/1)-(1023/254/63)d (146/1/1)-(30514/254/29)r
   hex:  00 01 01 92 83 FE FF FF 51 CA 23 00 00 6D 14 1D
Ověříme správnost údajů tím, že zkusíme filesystém připojit:
mount -o ro,offset=1200923136 -t reiserfs /dev/sda /mnt/oddil
Offset je začátek oddílu krát velikost sektoru (běžně 512), tedy 1200923136. Pokud je vše OK, můžeme filesystém opět odpojit.

sfdisk

V tomto kroce si napíšeme vlastní tabulku oddílů a zapíšeme ji na disk.
Pro ukázku z předchozího kroku může vypadat tabulka takto:

unit: sectors

/dev/hdb1 : start=  2345553, size=487877888, Id=83
/dev/hdb2 : start=        0, size=        0, Id= 0
/dev/hdb3 : start=        0, size=        0, Id= 0
/dev/hdb4 : start=        0, size=        0, Id= 0
ID 83 znamená oddíl typu Linux native. Například 32-bitový VFAT má ID 0B. ID 0 znamená žádný oddíl.
Tuto tabulku uložíme do souboru a zapíšeme jí na disk:
sfdisk --force /dev/sda < tabulka
Teď zbývá oddíl zkušebně připojit:
mount -o ro /dev/sda1 /mnt/oddil
Pokud je vše v pořádku, můžeme oddíl odpojit a pokročit k poslednímu úkonu.

fsck

Musíme opravit možné chyby ve filesystému. U ReiserFS bych použil

reiserfsck --check /dev/sda1
a podle výsledku bych jej spustil znovu z parametrem --fix-fixable nebo --rebuild-tree.
V případě ext3 se nabízí
fsck.ext3 -f /dev/sda1

Pokud znáte nějaké lepší/pokročilejší způsoby obnovy poškozeného filesystému, podělte se o ně v diskuzi :-)

Poznámky: informace o velikosti oddílu zjištěné nástrojem gpart nemusejí být správné. V případě problémů zkuste zapsat větší velikost oddílu.
Nedůvěřujte slepě informacím ze S.M.A.R.T.! Můj disk i po svém selhávání stále tvrdil, že vše je v pořádku.

Pokud se vám návod líbil, můžete mě potěšit kliknutím sem ;-)

       

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

9.7.2005 00:07 Jarda Kotěšovec (athli) | skóre: 17 | blog: athli
Rozbalit Rozbalit vše Pěkné
Odpovědět | Sbalit | Link | Blokovat | Admin
Pěkný návod, že i ten klik na operu jsem ti rád věnoval :).
9.7.2005 00:14 olbi
Rozbalit Rozbalit vše Re: Pěkné
Pekne, len namiesto dd by som pouzil dd_rescue. Jeho vyhoda je v tom, ze sa tam daju nastavit dve velkosti bloku; jedna ktorou cita ked nema problemy a druha ktoru skusa ked narazi na chybu
Luboš Doležel (Doli) avatar 9.7.2005 00:21 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: Pěkné
Aha, dík, ten jsem neznal.
9.7.2005 00:11 Zdeněk Burda | skóre: 61 | blog: Zdendův blog | Praha
Rozbalit Rozbalit vše Čtení dat z disku
Odpovědět | Sbalit | Link | Blokovat | Admin
Návod pro použití programu hddread, který je lepší než dd.
-- Nezdar není hanbou, hanbou je strach z pokusu.
Luboš Doležel (Doli) avatar 9.7.2005 00:24 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: Čtení dat z disku
Pěkný nástroj!
elviin avatar 9.7.2005 00:16 elviin | skóre: 29 | blog: elviin | Plzeň-Praha
Rozbalit Rozbalit vše klik na operu
Odpovědět | Sbalit | Link | Blokovat | Admin
Jo taky sem si kliknul...
9.7.2005 00:45 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Bude se hodit
Odpovědět | Sbalit | Link | Blokovat | Admin
Určitě se mi bude hodit, takže máš další klik.
When your hammer is C++, everything begins to look like a thumb.
Luboš Doležel (Doli) avatar 9.7.2005 00:59 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Díky
Odpovědět | Sbalit | Link | Blokovat | Admin
Díky moc za kliky, asi se budu snažit psát víc užitečných blogpostů ;-). Právě teď jsem se totiž na chvíli dostal mezi Top 5 Affiliates Opery s 11 CPH :-)
V noci se asi moc nekliká...
elviin avatar 9.7.2005 08:30 elviin | skóre: 29 | blog: elviin | Plzeň-Praha
Rozbalit Rozbalit vše Re: Díky
Lze nějak popsat faktory, které vedou k úplnému kleknutí disku. Asi to je velmi závislé na výrobci, ale přesto, jaké máte zkušenosti? Jaké zvuky, rychlost, odezvy předchází úplnému zhroucení?
9.7.2005 11:11 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Díky
Jaké zvuky, rychlost, odezvy předchází úplnému zhroucení?
Těžko říct, jestli se něco charakteristického dá popsat - může to začít několika vadnými sektory, ale také to může přijít bez varování. Popsat by se daly zvuky po zhroucení disku, vydávané správcem - ale to zase není publikovatelné :-)
Ondrej avatar 9.7.2005 11:25 Ondrej | skóre: 20 | blog: darkblair_server | Praha
Rozbalit Rozbalit vše Re: Díky
Me tesne nez odesel jeden maxtorci disk, tak nejdriv zatuhnul system, reboot trval velmi dlouho, system nemohl cist z disku. no a potom kolaps. Nastvalo me, ze ten disk byl mesic starej. Tedka mam novej (reklamace v czech computeru je velmi rychla (tohle neni reklama ale podekovani)) a uz ctvrt roku slape jako hodinky (ne ty rusky, co udelaj hodinu hrave za 40 minut!)
Nikdo neni nikdy lepsi nez ty! Pouze ty jsi obcas horsi nez ostatni.
Luboš Doležel (Doli) avatar 9.7.2005 12:43 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: Díky
Mě šel disk úplně nádherně a pak prostě naráz různé sektory po celém disku byly nečitelné. Bez varování. Byl to Maxtor.
Bohumír Zámečník avatar 9.7.2005 20:58 Bohumír Zámečník | skóre: 19 | blog: bohous
Rozbalit Rozbalit vše Re: Díky
Mě se to nedávno stalo u jednoho docela důležitého firmeního počítače... pravda, byl už docela stařeček (i586) a měl svá léta (a cca 12 let starý disk). Jednou takhle ho někdo zapomněl vypnout a večer se kousnul. (Nevím, jestli to bylo příčinou - některé podobně staré počítače mohou mít uptime i měsíce či roky.) Za pár dní - při spuštění - dlouho nic nedělal a pak ohlásil, že nejde nabootovat z disku. Ten se sice točil, ale při spuštění dělal takové neobvyklé zvuky. Chvilku nějak hrabal a pak "huuííí ... huuííí ... huuííí" - pomaleji a pomaleji a pak zase trochu hrabání a tak pořád dokola.

Celé odpoledně jsem se ten disk pokoušel rozchodit, ale bylo po něm. Asi odešla elektronika a stejný disk bych dnes už nesehnal. Naštěstí jsem měl zálohu systému - dva roky starou, jedinou... stydím se :) - ale měl jsem ji. Tak jsem zabavil disk z jiného počítače, který se už téměř vůbec nepoužíval, a celkem asi 3 dny jsem strávil obnovou do téměř plně funkčního stavu. A povedlo se.
"Dobrý den pane, nevíte, která bije?!"

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.