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)