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