Utilitas penyalinan file seperti rsync dengan penanganan kesalahan seperti ddrescue, untuk pemulihan data dari hard drive dengan bad sector atau kegagalan perangkat keras [ditutup]

12

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/
purefusion
sumber

Jawaban:

3

Saya memiliki Hitachi 3TB yang berbunyi sangat lambat, ddrescue akan beroperasi pada tingkat file. Tetapi tidak pada direktori. Namun saya tidak bisa mendapatkan opsi timeout atau --min-read-rate ddrescue untuk bekerja.

Anda ingin melakukan ini dalam skrip untuk menghapus satu file sekaligus.

cat listoffiles | while read file
pipe while> do
pipe while> ls -l "$file"
pipe while> ddrescue -n -e1  "$file" /cc/RecoveredFiles/"$file" /cc/RecoveredFiles/"$file".llog
pipe while> date
done | tee -a  /cc/RecoveredFiles/ddrescue.log
qwop
sumber
3

Mungkin rsync telah berubah pada tahun-tahun sejak pertanyaan ini diajukan.

Pengalaman saya adalah bahwa rsyncsaat ini melakukan pekerjaan yang baik menyalin hal-hal dari hard drive sekarat, dengan

rsync -a <src> <dest>

Itu akan cepat bergerak jika menemukan kesalahan, dan ketika menjalankannya kembali untuk mencoba file-file itu lagi.

rsync --version laporan rsync version 2.6.9 protocol version 29

Mengenai jawaban lain:

Jawaban 2011 tampaknya mempromosikan alat yang hanya setara dengan komersial untuk ddrescue - tidak ada indikasi bahwa mereka sadar file. Mencurigakan. Jawaban 2013 menarik.

Matthew Elvey
sumber
2

Pertanyaan bagus, suka tingkat detail. Untuk utilitas yang akan bekerja dengan baik dalam skenario ini, saya akan merekomendasikan mencoba Filescavenger dari Quetek . Ini akan memungkinkan untuk membaca ulang secara berlebihan dalam hitungan 100+ tetapi yang lebih penting ia memiliki fitur pencitraan disk yang akan memungkinkan Anda untuk membuang seluruh konten ke gambar tanpa membuang waktu mencoba menilai file kemudian memuat gambar dan memindai melalui itu untuk file. Utilitas berjalan $ 50 untuk pengguna rumahan tetapi Anda dapat mengunduhnya dan mengujinya hingga melihat apa yang dapat dipulihkan dari gambar sebelum menghabiskan uang.

Jika penggunaannya profesional, akan dikenakan biaya yang sangat kecil tetapi mendapatkan fitur signifikan termasuk dukungan untuk array serangan logis dan perangkat keras.

Jika ini gagal juga, Anda mungkin melewati titik alat pemulihan perangkat lunak. Jika Anda dan Anda dapat membenarkan biaya pemulihan laboratorium beri tahu saya negara, negara bagian, dan kota mana Anda berada. Saya dapat merekomendasikan salah satu dari kami atau laboratorium pesaing di dekat Anda.

Chris

Chris - Armor-IT
sumber
1

Anda ingin Progressive Copier . Ini ditargetkan untuk melakukan seluruh drive, tetapi karena mengambil path file sebagai parameter, itu harus bekerja untuk file individual juga. Saya tidak berpikir itu akan berfungsi untuk direktori - Anda harus menentukan setiap file.

afrazier
sumber