-
Používáte výchozích 512 bajtů
dd
velikost bloku. Výkon byste výrazně zlepšili použitím větší velikosti bloku, řekněme128k
nebo dokonce1m
. -
Existují dva výstupy, protože používáte dva
dd
příkazy, první je čtečka zařízení a zobrazuje chybu I/O. -
Pravděpodobně používáte LVM vzhledem k názvu zařízení, které používáte:
/dev/Storage/Storage
. Jste si jistý, že se jedná o celý disk a ne o podmnožinu? Použijtelvdisplay
abyste zjistili, co se skrývá za tímto názvem zařízení.
Podívejte se do zpráv protokolu jádra (dmesg
nebo /var/log/kern.log
) pro podrobnější zprávy od ovladačů SATA, pokud se jednalo o hardwarovou chybu. Užitečné také:smartctl -x /dev/sda
. Pokud to byl jen pokus o čtení za koncem oddílu nebo tak něco, mohlo by se to také zobrazit v protokolu jádra.
Chcete-li, aby dd pokračovalo i po chybě I/O, abyste si přečetli čitelné části, které následují po chybě, použijte
dd if=... of=... conv=noerror bs=128k # it doesn't get any faster beyond about 128k, because of L2 cache size
(Jak je uvedeno v komentářích k OP, ddrescue
má toto a další. conv=noerror
byl přidán do GNU dd po ddrescue
existoval, IIRC.)
Pokud chcete pokračovat tam, kde jste přestali, můžete použít seek
a skip
možnosti s conv=notrunc
.
Pokud opravdu chcete vidět, jak daleko je dd, podívejte se na pozici souboru jeho stdin:
cat /proc/$(pidof dd)/fdinfo/0 # dd opens its infile as fd #0
(nebo ls -lh
velikost výstupního souboru). Zkopírovat data z celého pevného disku 2x navíc tím, že je protlačíte něčím, mi připadá hloupé, jako by to jen zpomalilo váš počítač na hodiny, které bude kopírování trvat, než je potřeba.
Nebo alespoň udělejte:
dd if=... conv=noerror bs=128k | pv > Storage.img