Bagaimana cara memberitahu rsync untuk melewatkan file pada blok hard drive yang rusak, alih-alih macet ketika mencoba membacanya

13

Saya mencoba memulihkan file dari disk yang memiliki kesalahan perangkat keras.

Disk telah diperbaiki oleh utilitas disk, tetapi ia memberi tahu saya bahwa disk rusak, jadi saya perlu mencadangkan semuanya sebelum kegagalan terjadi.

Jadi saya mencoba menyalin file melalui finder, tetapi macet. Mencoba utilitas lain dan mereka macet ketika mencoba menyalin file, ketika kepala menyentuh blok yang rusak.

Jadi saya mencoba dengan rsync, dan sepertinya berhasil; tetapi butuh selamanya ketika saya mencapai blok yang buruk.

Jadi saya bertanya-tanya, apakah ada cara untuk memberitahu Rsync untuk tidak repot-repot dengan file, apakah itu terlalu lama? Entah saya dapat menentukan jumlah coba dengan setiap file, atau berapa lama perlu mencoba untuk setiap file?

Saya tidak yakin berapa lama drive ini akan jujur, jadi saya ingin mendapatkan semua data dari ASAP, sementara saya masih bisa memasangnya dan melihat data di dalamnya di finder.

Inilah yang saya gunakan sebagai perintah; tolong saran jika ada cara untuk mengurangi coba pada file, jadi saya bisa minta rsync untuk mencoba membaca blok yang rusak, tetapi hindari terjebak pada sektor tertentu terlalu lama.

rsync -arv -e--ignore-errors --partial-dir=/Volumes/backup/partial /Volumes/work /Volumes/backup

Terima kasih sebelumnya.

memalu genderang
sumber
3
Jika drive memiliki sektor rusak Anda lebih baik mencoba gambar drive dengan sesuatu seperti dd_rescue, itu memiliki fitur-fitur canggih untuk mengatasi sektor buruk.
jmreicha
Saya pikir @jmreicha memiliki ide yang tepat, tetapi di masa depan, jika Anda memiliki pertanyaan teknis rsync, guru yang ramah tersedia di daftar rsync: lists.samba.org/mailman/listinfo/rsync
Joe

Jawaban:

10

Jawaban singkat: rsyncini bukan alat yang tepat untuk digunakan dalam kasus ini: penggunaannya bahkan bisa berbahaya.
Gunakan ddrescuesebagai gantinya (lebih baik dari dd_rescue). Ia dapat melakukan apa yang Anda minta.


Jika disk rusak secara fisik, ada kemungkinan untuk menutupinya dengan segala upaya untuk memperbaikinya.

Ini bukan hanya pertanyaan tentang penggunaan waktu Anda , ketika rsynctampaknya menggantung selamanya mendekati sektor yang rusak. Masalahnya adalah bahwa dengan operasi berulang, kegagalan yang tidak dapat diperbaiki dapat terjadi, dan kemudian Anda tidak akan dapat lagi menyelamatkan data Anda tanpa penggantian komponen yang mahal (selalu jika masih mungkin dan Anda tidak akan memasang HDD Anda ).

Dalam hal ini prosedur paling aman yang saya temukan adalah

  1. Untuk membuat gambar mentah di disk lain yang tidak rusak.
  2. Untuk membuat salinan gambar itu.
  3. Untuk bekerja pada salinan untuk memperbaiki sistem file dan untuk menyelamatkan file .

Mengapa salinan? Karena jika gagal sesuatu dalam langkah memperbaiki sistem file Anda selalu dapat memulai lagi tanpa perlu menyentuh lagi HDD asli yang rusak .

Saya menyarankan Anda untuk menggunakan ddrescue, untuk melakukan gambar disk mentah, termasuk cacat, karena berfungsi dengan baik bahkan jika terjadi kesalahan baca.


Bagaimana cara melakukannya ddrescue

Anda dapat menggunakan ddrescuetepat seperti yang ingin Anda gunakan rsync, melompati sektor yang rusak tanpa mencoba ulang atau membaginya, menyalin data sebanyak mungkin.
Perintah ini di sini di bawah ini (alih-alih /dev/hda1Anda akan meletakkan perangkat Anda):

ddrescue --no-split /dev/hda1 imagefile logfile

Setelah itu, Anda telah melakukan bagian pertama ini (yang lebih cepat ), Anda dapat mencoba memperbaikinya dengan mencoba mengakses sebanyak 3 kali jika terjadi kesalahan.

ddrescue --direct --max-retries=3 /dev/hda1 imagefile logfile 

Anda dapat terus memperbaiki gambar yang mengulangi ddrescuepermintaan perintah dengan opsi lain, mencoba setiap kali untuk mengekstrak lebih banyak data (lihat referensi). Ketika Anda selesai, Anda dapat membuat salinan (jika Anda memiliki semua ruang yang dibutuhkan) dan kemudian memperbaiki sistem file .

Perhatikan bahwa gambar mentah akan sebesar HDD asli .
Anda dapat menemukannya di internet, di situs ini dan di situs StackExchange lainnya banyak pertanyaan & jawaban tentang cara menyelamatkan data dengan ddrescueatau alat lain.

Referensi:

Cepat
sumber
memang dd_rescue adalah cara untuk pergi. Saya mendapatkannya di balasan asli saya, 2 tahun yang lalu; tetapi untuk beberapa alasan seseorang memutuskan bahwa saya tidak bisa menjawab pertanyaan saya sendiri :) Terima kasih atas balasan dan detail yang mengagumkan
rataplan
@newbiez: Alih-alih, saya mengalami masalah disk serius dengan HDD utama saya yang hampir ditutup-tutupi ... jadi saya bertemu ddrescuedan teman-temannya :-) Tentang jawaban Anda, hanya sebuah kata: aneh ... posting lagi dan jika seseorang akan mencoba untuk menutup lagi Saya akan memilih ya untuk membuka kembali (saya tidak pernah menggunakan kekuatan baru itu : D)
Hastur
1
Opsi --no-split telah dihapus di versi yang lebih baru dari ddrescue. Gunakan --no-scrape sebagai gantinya. Lihat lists.gnu.org/archive/html/bug-ddrescue/2015-09/msg00001.html
Grmpfhmbl