ddrescue

Kopírování dat z poškozeného disku

sudo ddrescue -n /dev/sda sda.img sda.log
sudo ddrescue -r3 /dev/sda sda.img sda.log

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 -nno-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.

sudo ddrescue -f -n /dev/sda /dev/sdb sda.log
sudo ddrescue -f -r3 /dev/sda /dev/sdb sda.log

Záchrana dat z CD/DVD

ddrescue -b2048 -r -1 /dev/cdrom backup.iso cd.log

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 Nautilu nebo vypálit na nové CD.

http://wiki.ubuntu.cz/ddrescue

Příklady

Příklady jak použít ddrescue.

Příklad 1: Záchrana  ext2 partition z disku /dev/hda2 na /dev/hdb2

Pozor: Tento příkaz přepíše všechny data na cílovém disku. Případně je lepší vytvořit image poškozené partition.

ddrescue -r3 /dev/hda2 /dev/hdb2 logfile
 e2fsck -v -f /dev/hdb2
 mount -t ext2 -o ro /dev/hdb2 /mnt

Příklad 2: Záchrana CD-ROM v /dev/cdrom

ddrescue -b 2048 /dev/cdrom cdimage logfile

Poté je potřeba vypálit cdimage na nový disk.

Příklad 3: Záchrana disku /dev/sda na jiný disk /dev/sdb

napřed se kopírují nepoškozené oblasti

ddrescue -n /dev/sda /dev/sdb rescue.log

poté ddrescue pokouší tříkrát číst z poškozených sektorů

ddrescue -r 3 /dev/sda /dev/sdb rescue.log

Options

-h, --help
   display this help and exit 
-V, --version
   output version information and exit 
-b, --block-size=<bytes>
   hardware block size of input device [512] 
-B, --binary-prefixes
   show binary multipliers in numbers [default SI] 
-c, --cluster-size=<blocks>
   hardware blocks to copy at a time [128] 
-C, --complete-only
   do not read new data beyond logfile limits 
-d, --direct
   use direct disc access for input file 
-D, --synchronous
   use synchronous writes for output file 
-e, --max-errors=<n>
   maximum number of error areas allowed 
-F, --fill=<types>
   fill given type areas with infile data (?*/-+) 
-g, --generate-logfile
   generate approximate logfile from partial copy 
-i, --input-position=<pos>
   starting position in input file [0] 
-n, --no-split
   do not try to split or retry error areas 
-o, --output-position=<pos>
   starting position in output file [ipos] 
-q, --quiet
   quiet operation 
-r, --max-retries=<n>
   exit after given retries (-1=infinity) [0] 
-R, --retrim
   mark all error areas as non-trimmed 
-s, --max-size=<bytes>
   maximum size of data to be copied 
-S, --sparse
   use sparse writes for output file 
-t, --truncate
   truncate output file 
-v, --verbose
   verbose operation

Numbers may be followed by a multiplier: b = blocks, k = kB = 10^3 = 1000, Ki = KiB = 2^10 = 1024, M = 10^6, Mi = 2^20, G = 10^9, Gi = 2^30, etc…

http://www.forensicswiki.org/wiki/Ddrescue

DDRescue-GUI grafické rozhraní pro ddrescue http://launchpad.net/ddrescue-gui
Ddrescueview – Grafická nádstavba, která zobrazí z logu ddrescue rozložení vadných a dobrých sektorů na disku. http://sourceforge.net/projects/ddrescueview/
Ddrutility – Nástroje rozšiřující funkcionalitu ddrescue při zchraně dat http://sourceforge.net/projects/ddrutility/.

Manuál
https://www.gnu.org/software/ddrescue/manual/ddrescue_manual.html

Pomohl Vám článek a chcete nás odměnit? Pošlete nám platbu přes paypal nebo na BTC peněženku 1bBr5iNS337NVzWjkvvH31bjmDvH4kfGb