Latar Belakang
Setelah sikat baru-baru ini dengan kegagalan hard drive, saya ingin menyusun HOWTO tentang cara mencerminkan hard drive, mengabaikan kesalahan di Linux. Sangat penting untuk memastikan bahwa perintah ini dikeluarkan dengan benar, dan nama drive dan perangkat yang tepat digunakan. dd tidak menawarkan konfirmasi dan konfirmasi - gunakan dengan hati-hati!
Pemulihan data hard disk dalam kasus sektor yang rusak biasanya tidak terlalu rumit.
Pencerminan
Pertama, kita perlu menentukan ukuran I/O yang optimal untuk memaksimalkan kecepatan baca dan tulis kita:
fdisk -l /dev/sda|grep "Ukuran I/O"
Dalam kasus saya, hasilnya menunjukkan 512 byte. Selanjutnya, dengan asumsi bahwa drive kita yang gagal adalah /dev/sdb dan drive baru kita adalah /dev/sdc, kita akan memulai mirror sebagai berikut:
dd if=/dev/sdb of=/dev/sdc conv=sync,noerror bs=512
Bendera noerror diteruskan untuk menginstruksikan dd untuk tidak berhenti pada kesalahan baca
Pemeriksaan Kemajuan
dd akan mencetak cek status saat menerima sinyal USR1. Di terminal terpisah, terbitkan:
bunuh -USR1 $(pidof dd)
Melanjutkan
Seringkali, setelah menjalankan sektor buruk, kecepatan transfer dd akan turun dan tetap dibatasi. Untuk mengurangi ini, pertama-tama hentikan transfer dengan Ctrl-C yang memungkinkan dd untuk mencetak kemajuannya saat ini:
6002656+0 records in 6002656+0 records out 3073359872 bytes (3.1 GB) copied
Sekarang pastikan semua data di-flush:
sinkronkan
Setelah selesai, lepaskan dan pasang kembali drive, sebelum melanjutkan dari bagian terakhir yang dd tinggalkan:
dd if=/dev/sdb of=/dev/sdc bs=512 conv=sync,noerror seek=6002656 skip=6002656
Setelah selesai, Anda perlu memindai sistem berkas drive baru untuk mendeteksi dan memperbaiki kesalahan dan kerusakan sistem berkas.
Tautan
Detik Digital IO