-
Anda menggunakan default 512 byte
dd
Ukuran blok. Anda akan meningkatkan kinerja secara signifikan dengan menggunakan ukuran blok yang lebih besar, misalnya128k
atau bahkan1m
. -
Ada dua keluaran karena Anda menjalankan dua
dd
perintah, yang pertama adalah pembaca perangkat dan menunjukkan kesalahan I/O. -
Anda mungkin menggunakan LVM mengingat nama perangkat yang Anda gunakan:
/dev/Storage/Storage
. Apakah Anda yakin ini adalah seluruh disk dan bukan subset? Gunakanlvdisplay
untuk mencari tahu apa yang ada di balik nama perangkat ini.
Lihat pesan log kernel Anda (dmesg
, atau /var/log/kern.log
) untuk pesan yang lebih mendetail dari driver SATA, jika itu adalah kesalahan perangkat keras. Juga berguna:smartctl -x /dev/sda
. Jika itu hanya upaya membaca melewati akhir partisi atau sesuatu, itu mungkin juga muncul di log kernel.
Agar dd terus berjalan setelah kesalahan i/o, untuk membaca bagian yang dapat dibaca yang mengikuti kesalahan, gunakan
dd if=... of=... conv=noerror bs=128k # it doesn't get any faster beyond about 128k, because of L2 cache size
(Seperti yang disebutkan dalam komentar di OP, ddrescue
memiliki ini dan banyak lagi. conv=noerror
ditambahkan ke GNU dd setelah ddrescue
ada, IIRC.)
Jika Anda ingin melanjutkan di mana Anda tinggalkan, Anda dapat menggunakan seek
dan skip
opsi, dengan conv=notrunc
.
Jika Anda benar-benar ingin melihat seberapa jauh dd, lihat posisi file stdin:
cat /proc/$(pidof dd)/fdinfo/0 # dd opens its infile as fd #0
(atau ls -lh
ukuran file keluaran). Menyalin seluruh data senilai hard drive 2 kali ekstra dengan menyalurkannya melalui sesuatu tampak konyol bagi saya, seperti itu hanya akan membuat komputer Anda sedikit lebih lambat dari yang dibutuhkan selama berjam-jam penyalinan.
Atau setidaknya lakukan:
dd if=... conv=noerror bs=128k | pv > Storage.img