Saya memiliki hard drive dengan blok buruk atau sektor yang gagal dibaca karena potensi masalah mekanis, seperti kepala disk yang buruk, motor yang buruk, atau beberapa masalah lain yang menyebabkan hard drive membaca data dengan sangat lambat dan dengan banyak kesalahan baca. Saya melihat rata-rata 50 KB / detik, dengan beberapa angka jatuh di bawah 10 KB / detik, dan seringkali macet pada file atau sektor secara bersamaan, biasanya untuk waktu yang cukup lama — dari 2-10 menit atau lebih (ketika menggunakan rsync, sebelum waktu habis).
Kecepatan tampaknya sangat bervariasi, dan sering macet pada file, dan ketika akhirnya "unstuck" itu tampaknya hanya berlangsung untuk ledakan singkat sebelum macet lagi. Drive ini juga sangat sunyi dengan hanya sesekali suara menyalin file (biasanya ketika macet / macet untuk waktu yang singkat, sebelum macet lagi). Dengan demikian, tidak ada suara-suara jahat yang biasanya dikaitkan dengan kematian HDD. Seseorang menyarankan bahwa masalah yang terdengar seperti itu mungkin disebabkan oleh kepala disk yang tidak selaras, yang membutuhkan banyak membaca ulang sebelum akhirnya membaca data dengan sukses. Kedengarannya masuk akal, tapi saya ngelantur ...
Bagaimanapun, masalah dengan rsync adalah tampaknya tidak memiliki dukungan penanganan kesalahan yang layak. Jelas, itu tidak dimaksudkan untuk digunakan dalam memulihkan data dari hard drive gagal, tapi semua yang disebut "pemulihan data" utilitas di luar sana yang sedang dimaksudkan untuk digunakan seperti biasanya fokus pada pemulihan file dihapus atau kacau partisi, daripada menyalin file dari hard drive yang sekarat. Pemulihan file yang dihapus bukan yang saya butuhkan, tentu saja, jadi mungkin Anda dapat memahami kekecewaan saya karena tidak dapat menemukan apa yang saya cari.
Secara alami, ini adalah tempat Anda mungkin akan berkata "Anda harus menggunakan ddrescue!" Yah, itu bagus dan keren, tapi saya sudah mendapatkan sebagian besar data yang didukung, jadi saya hanya ingin memulihkan file tertentu. Saya tidak peduli dengan mencoba memulihkan partisi penuh blok demi blok seperti yang dilakukan ddrescue. Saya hanya tertarik menyelamatkan hanya file dan direktori tertentu.
Idealnya, yang saya suka adalah semacam persilangan antara rsync dan ddrescue: sesuatu yang memungkinkan saya menentukan sumber dan tujuan sebagai direktori file normal seperti rsync (bukan dua partisi penuh seperti yang dibutuhkan ddrescue), dengan cara untuk melewati file dengan kesalahan dalam menjalankan awal, dan kemudian memungkinkan saya untuk mencoba memulihkan file-file dengan kesalahan dalam menjalankan kemudian (dengan perintah yang sedikit berubah, tentu saja), bahkan mungkin menawarkan opsi untuk menentukan jumlah upaya coba lagi ... sama seperti bagaimana ddrescue bekerja dengan blok, hanya saya ingin utilitas yang bekerja dengan file / direktori tertentu seperti rsync.
Jadi, apakah saya melamun di sini, atau apakah ada sesuatu di luar sana yang dapat melakukan ini? Atau, mungkin bahkan cara untuk membuat rsync atau ddrescue bekerja sedemikian rupa? Saya benar-benar terbuka untuk solusi apa pun yang mungkin berhasil, asalkan mereka membiarkan saya memilih file mana yang ingin saya "selamatkan", dan dapat melewatkan file dengan kesalahan di awal berjalan, dan mencoba / coba lagi kesalahan itu lagi nanti.
Sejauh ini saya sudah mencoba rsync dengan opsi-opsi berikut, tetapi sering macet pada file lebih lama dari batas waktu, dan idealnya saya hanya ingin pindah ke file berikutnya dan kembali lagi ke file yang didapatnya terjebak di. Saya pikir itu tidak mungkin. Bagaimanapun, inilah yang saya gunakan sampai sekarang:
rsync -avP --stats --block-size=512 --timeout=600 /path/to/source/* /path/to/destination/