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