menyimpan data dari drive yang gagal

12

HDD 3½ "eksternal tampaknya dalam bahaya gagal - ini membuat suara berdetak saat idle .

Saya telah memperoleh drive pengganti, dan ingin tahu strategi terbaik untuk mendapatkan data dari drive yang meragukan dengan peluang terbaik untuk menyimpan sebanyak mungkin.

Ada beberapa direktori yang lebih penting daripada yang lain. Namun, saya menduga bahwa memilih dan memilih direktori akan mengurangi peluang saya untuk menyelamatkan semuanya. Saya juga harus me-mount-nya, membuang daftar file, dan kemudian meng-unmount-nya agar dapat memprioritaskan direktori secara efektif. Menambahkan fakta bahwa itu memakan waktu untuk melakukan ini, saya condong menjauh dari pendekatan ini.

Saya telah mempertimbangkan hanya menggunakan dd, tetapi saya tidak yakin bagaimana itu akan menangani kesalahan baca atau masalah lain yang mungkin mencegah hanya bagian tertentu dari data yang diselamatkan, atau yang dapat diatasi dengan beberapa percobaan, tetapi tidak begitu banyak sehingga mereka membahayakan bagian drive lainnya agar tidak disimpan. Saya kira idealnya itu akan melakukan satu lulus untuk mendapatkan sebanyak mungkin dan kemudian kembali untuk mencoba lagi apa pun yang terjawab karena kesalahan.

Mungkinkah penyalinan lebih lambat - mis. Menjeda setiap x MB / GB - akan lebih baik daripada hanya menjalankan operasi dengan kemiringan penuh, misalnya untuk menghindari masalah overheating?

Untuk kerumunan "di mana cadangan Anda": ini sebenarnya adalah drive cadangan saya, tetapi juga berisi beberapa hal yang tidak penting dan berat, seperti musik, yang bukan cadangan, yaitu tidak dicadangkan.

Drive belum menunjukkan tanda-tanda kegagalan yang jelas selain suara yang agak tidak menyenangkan ini. Saya memang harus melakukan beberapa kesalahan baru-baru ini - orphaned inode, jumlah blok / inode yang salah, perbedaan bitmap inode, nol waktu pada inode yang dihapus; sekitar 20 kesalahan semuanya.

Sistem file partisi adalah ext3.

intuisi
sumber
silang diposting di askubuntu dan superuser
berintuisi

Jawaban:

9

Anda dapat menggunakan ddrescueatau dd_rescueatau myrescuemengkloning disk yang rusak, tanpa membatalkan pada sektor yang tidak dapat dibaca. (Myrescue kurang dapat dikonfigurasi tetapi memiliki strategi default yang lebih baik karena mencoba untuk melewati wilayah yang tidak dapat dibaca.) Ini akan menyalin semuanya termasuk ruang kosong dan tidak akan membiarkan Anda menetapkan prioritas. Namun, pendekatan tingkat rendah seperti memiliki keuntungan lebih dari alat filesystem-tingkat: jika direktori tidak dapat dibaca, Anda mungkin masih memulihkan file yang berisi dengan mencari gambar mentah dengan alat seperti foremost, magicrescue, photorectermasuk dalam TestDisk , dll

Gilles 'SANGAT berhenti menjadi jahat'
sumber
Tautan untuk magicrescuetampaknya rusak; maksud Anda itu.dk/~jobr/magicrescue sebagai gantinya?
landroni
@ Landroni Ya, saya kira siswa ini lulus, terima kasih.
Gilles 'SANGAT berhenti menjadi jahat'
"Myrescue [..] memiliki strategi default yang lebih baik" Apakah Anda akan mempertimbangkan untuk memposting ddrescuecontoh yang dikonfigurasi dengan myrescuedefault? Terima kasih!
landroni
1
Untuk ddrescue/ dd_rescueAnda membuat lintasan pertama dengan ukuran blok besar dan ubah menjadi lebih kecil pada lintasan berikut (mis. Membagi dua ukuran setiap kali). Ini tentu saja mengharuskan Anda untuk menggunakan file log (lihat halaman manual).
peterph
Yang membingungkan, pada sistem berbasis Debian perintah ddrescueberasal dari paket gddrescue; dd_rescuedari paket ddrescue; dan myrescuedari paket myrescue.
landroni
8

Tidak ada cara untuk mengetahui yang terbaik dari pilihan Anda tanpa mengetahui persis apa yang salah dengan drive. Jika itu adalah kegagalan mekanis, menghindari memanaskannya bisa membantu, tetapi jika itu karena kesalahan dalam data servo, panas tidak akan menjadi masalah.

Saya akan segera mulai menyalin data unik ke drive baru dengan rsync. rsyncakan membiarkan Anda menjeda, melanjutkan, dan memulai kembali seperlunya sampai Anda mendapatkan semua data off.

Lalu saya akan menjalankan scrub data pada drive. Saya berasumsi dari sistem ext3file bahwa Anda menjalankan Linux, jadi coba ini:

# umount /dev/sdX
# badblocks -n /dev/sdX

(Melepas drive terlebih dahulu adalah penting.)

Ini akan membaca setiap sektor dari disk dan menulisnya kembali tanpa perubahan. Itu akan memaksa firmware drive untuk memeriksa setiap sektor untuk kesalahan dan untuk memetakan kembali setiap sektor buruk yang ditemukannya. Ini adalah bagian terpenting dari apa yang dilakukan oleh program SpinRite yang mahal . Tingkatkan itu hanya jika badblocksgagal dan Anda masih belum mendapatkan semua data unik dari drive: SpinRite berusaha lebih keras daripada badblocksmelakukannya.

Warren Young
sumber
2

Jika disk sekarat, pertama-tama pastikan Anda membuat kloning sebaik mungkin (lihat jawaban Gilles) dan baru kemudian melanjutkan bermain dengan drive. Dengan begitu Anda akan selalu memiliki setidaknya beberapa data, jika terjadi kesalahan (yang sering dapat terjadi dengan perangkat keras yang gagal).

Jika Anda menggunakan ddrescue(atau dd_rescue, saya tidak yakin tentang yang lain), Anda selalu dapat membuat salinan data yang dikloning sebagian dan logfile terkait dan mencoba memperbaikinya dengan menjalankan ddrescuelagi setelah melakukan sesuatu yang seharusnya memperbaiki drive. Ini akan mencoba untuk membaca bagian yang hilang sambil membiarkan bagian yang dikloning tidak tersentuh.

peterph
sumber