GNU/Linux >> Belajar Linux >  >> Linux

Menafsirkan kesalahan Input/Output dd

  • Anda menggunakan default 512 byte dd Ukuran blok. Anda akan meningkatkan kinerja secara signifikan dengan menggunakan ukuran blok yang lebih besar, misalnya 128k atau bahkan 1m .

  • 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? Gunakan lvdisplay 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

Linux
  1. Bekerja dengan Input Output dan Error Redirection di Linux

  2. Output Dari Perintah Yang Digunakan Untuk Input Ke Cd?

  3. Melanggar Output Menjadi Baris Baru?

  1. Output Yang Akan Disimpan Dalam File Bernama Sama Dengan File Input?

  2. kesalahan Masukan/Keluaran gcsfuse

  3. Cara mengarahkan output program sebagai inputnya

  1. Pengalihan Input/Output di Linux/Unix

  2. Bagaimana Cara Kerja Input Keyboard Dan Output Teks?

  3. Menafsirkan output dari cat/proc/cpuinfo