ddrescue

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
ddrescue [2013/09/19 15:42]
Petr Vaňátko
ddrescue [2019/02/25 18:21] (aktuální)
Řádek 1: Řádek 1:
 +====== ddrescue ======
 +{{.:disk.png}} **ddrescue** je program na kopírování dat. Jeho výhodou je, že je optimalizovaný na čtení dat z poškozených nebo jinak nečitelných médií, u kterých ostatní nástroje oznámí chybu a končí.
  
 +====== Instalace ======
 +
 +{{.:apt.png}} [[Instalace programů|Nainstalujte]] balík [[apt://gddrescue|gddrescue]].
 +
 +====== Spuštění ======
 +
 +{{.:navigate.png}} Program se spouští z [[Terminál|terminálu]] např. pomocí příkazu
 +<code>
 +sudo ddrescue /dev/sda1 sda1.img sda1.log
 +</code>pokud chci kopírovat oddíl ///dev/sda1// do jeho obrazu (souboru) //sda1.img//, průběžné výsledky se ukládají do pomocného souboru (logu) //sda1.log//.
 +
 +====== Jak to funguje ======
 +Pokud zjistíme, že je datové médium poškozené, je prvním krokem pro záchranu pokus získat co nejvíce původních dat. Klasické způsoby kopírování zde obvykle nefungují, protože pokud se narazí na chybu, dojde k ukončení kopírování, nebo nekonečným pokusům číst z poškozeného místa. V takovém případě můžeme získat jen zlomek dat, nebo přetěžováním média situaci ještě zhoršit.
 +
 +**ddrescue** je nastaveno tak, že v prvním běhu (//pass//) zkopíruje nejdřív data, která jsou lehce dostupná, a pokud narazí na chybu, zaznamená ji do logu, a daný úsek velkým obloukem přeskočí. Vynechanou část při dalších bězích postupně dělí na menší a menší úseky a snaží se tak zachránit co se dá.
 +
 +====== Důležité zásady ======
 +  * nikdy neukládejte obraz a logy na poškozený disk, oddíl apod.
 +  * zdrojový i cílový disk před kopírováním vždy odpojte
 +  * v příkazu vždy uvádějte //.log// soubor -  uložené informace podstatně zrychlují běh programu a odstraňují zbytečné namáhání disku
 +  * pokud se snažíte zachraňovat data, použijte příkaz //ddrescue// jako první a další pokusy již provádějte na vytvořené kopii, ne na poškozeném disku
 +
 +====== Příklady ======
 +
 +===== Kopírování dat z poškozeného disku =====
 +<code>
 +sudo ddrescue -n /dev/sda sda.img sda.log
 +sudo ddrescue -r3 /dev/sda sda.img sda.log
 +</code>Poškozen je disk označen jako ///dev/sda//. Kopie disku uložená jako //image// (obraz) je v aktuálním adresáři, který by měl být na jiném disku než //sda//.
 +
 +První příkaz čte z disku ve velkých blocích a nevrací se na místa, kde narazil na problémy (volba **-n** - //no-trimming//). Výsledný obraz //sda.img// je stejně velký jako původní disk - vynechaná místa jsou vyplněna nulami.
 +
 +Druhý příkaz přečte záznam prvního běhu uložený v //sda.log// a soustředí se jen na nezkopírované části. Ty rozděluje na menší a menší bloky až narazí na hardwarový strop (sektor, obvykle 512 bytů). V případě chyby zkouší číst z bloku maximálně 3x (volba **-r3**).
 +
 +Výsledný obraz je možné archivovat, použít jako zálohu, opravit pomocí dalších nástrojů. Bližší informace najdete na [[Záchrana dat]].
 +
 +Kopírovat je možné i přímo na jiný disk odpovídající velikosti (zde ///dev/sdb//), případně oddíl na jiný oddíl, oddíl do souboru atd.
 +<code>
 +sudo ddrescue -f -n /dev/sda /dev/sdb sda.log
 +sudo ddrescue -f -r3 /dev/sda /dev/sdb sda.log
 +</code>
 +===== Záchrana dat z CD/DVD =====
 +<code>
 +ddrescue -b2048 -r -1 /dev/cdrom backup.iso cd.log
 +</code>Uloží obraz disku z poškozeného CD (nelze použít na Audio CD!). Velikost sektoru 2048 (typická pro CD). Zkouší číst poškozené sektory donekonečna (volba **-r -1**), program se ukončuje stisknutím Ctrl - c. Výsledný obraz je možné otevřít kliknutím v [[Nautilus|Nautilu]] nebo vypálit na nové CD.
 +
 +===== Příklad výstupu =====
 +Pokus o záchranu dat z poškozeného CD. V prvním běhu vynecháno 165kB dat (//errsize//). V druhém běhu už jen 31kB. Úměrně tomu se zvedl počet úspěšně zkopírovaných bytů (//rescued//) z 184 242 na 184 377.
 +<code>
 +arrange@arrange-desktop:~/tmp$ ddrescue -n -b2048 /dev/cdrom backup.iso b.log
 +
 +
 +Press Ctrl-C to interrupt
 +Initial status (read from logfile)
 +rescued:         0 B,  errsize:       0 B,  errors:       0
 +Current status
 +rescued:   184242 kB,  errsize:    165 kB,  current rate:    36864 B/s
 +   ipos:     1226 kB,   errors:       4,    average rate:     856 kB/s
 +   opos:     1226 kB,     time from last successful read:       0 s
 +Finished
 +arrange@arrange-desktop:~/tmp$ ddrescue -b2048 /dev/cdrom backup.iso b.log
 +
 +
 +Press Ctrl-C to interrupt
 +Initial status (read from logfile)
 +rescued:   184242 kB,  errsize:    165 kB,  errors:       4
 +Current status
 +rescued:   184377 kB,  errsize:   30720 B,  current rate:    45056 B/s
 +   ipos:   184403 kB,   errors:       8,    average rate:    12288 B/s
 +   opos:   184403 kB,     time from last successful read:       0 s
 +Finished
 +</code>
 +Vzniklý soubor logu //b.log//:
 +<code>
 +# Rescue Logfile. Created by GNU ddrescue version 1.11
 +# current_pos  current_status
 +0x0AFDD000     +
 +#      pos        size  status
 +0x00000000  0x0012B000  +
 +0x0012B000  0x00001000  -
 +0x0012C000  0x00D2E000  +
 +0x00E5A000  0x00001000  -
 +0x00E5B000  0x008C9000  +
 +0x01724000  0x00002000  -
 +0x01726000  0x098B6000  +
 +0x0AFDC000  0x00001800  -
 +</code>První sloupec označuje pozici v souboru od začátku. Druhý velikost bloku. Třetí stav bloku (**+** - vše zkopírováno; **-** - vynecháno).
 +
 +
 +====== Alternativy ======
 +  * [[Partimage]]
 +  * [[http://www.grc.com/sr/spinrite.htm|Spinrite]] - komerční
 +
 +====== Odstranění ======
 +
 +{{.:clear.png}} [[Instalace programů|Odeberte]] balík ''gddrescue''.
 +
 +====== Odkazy ======
 +  * [[http://www.gnu.org/software/ddrescue/manual/ddrescue_manual.html|podrobný manuál]] {{.:en.png}}
 +  * [[http://wiki.lunarsoft.net/wiki/Data_Recovery#ddrescue|příklady využití při záchraně dat]] {{.:en.png}}
 +  * [[http://www.root.cz/clanky/nova-softwarova-sklizen-18-5-2005/#ddrescue|česky prakticky nic ;(]]
  • Poslední úprava: 2019/02/25 18:21
  • (upraveno mimo DokuWiki)