Bagaimana cara menyegarkan keadaan magnetik pada disk dengan cadangan?

8

Saya punya beberapa disk besar dengan materi cadangan / arsip. Mereka ext4 . Mengenai salah satu dari mereka yang akan disimpan selama beberapa tahun tanpa membaca seluruh disk lagi, saya telah memikirkan cara untuk menyegarkan keadaan magnetik disk. Umur simpan drive tampaknya menjadi masalah perdebatan di mana pun saya telah mencari jawaban, tetapi tampaknya setelah beberapa tahun (katakanlah 5 atau lebih) penyimpanan, akan lebih bijaksana untuk menyegarkan data dengan cara tertentu (? )

Saya telah melihat ini menyarankan:

dd if=/dev/sda of=/dev/sda

Apakah ini aman? Apakah itu berguna?

Yang ingin saya lakukan adalah hal lain selain a fsckatau a dd if=/dev/sda of=/dev/null, yang keduanya mungkin akan menemukan drop out magnetik yang ada pada disk.

Apa yang ingin saya lakukan adalah untuk me-refresh data magnetik sebelum muatan magnetik pada disk lebih rendah di bawah tingkat yang dapat dibaca. Bagaimana saya bisa melakukan ini?

PetaspeedBeaver
sumber

Jawaban:

8

Secara umum Anda tidak dapat benar-benar menyegarkan seluruh disk tanpa membaca / menulis semuanya. fscktidak mungkin menyediakan apa yang Anda butuhkan - ia bekerja dengan sistem file bukan perangkat yang mendasarinya karena itu sebagian besar hanya memindai data meta sistem file (inode dan struktur sistem file lainnya).

badblocks -nmungkin menjadi opsi untuk dd if=X of=X. Dalam hal apa pun Anda mungkin ingin menggunakan blok besar untuk mempercepat (untuk ddsesuatu seperti bs=16M, untuk badblocksini akan membaca -b 16777216, atau -b $((1<<24))dalam cangkang yang masuk akal). Anda mungkin juga ingin menggunakan conv=fsyncdengan dd.

Adapun keamanan dddengan perangkat input dan output yang sama - ia membaca blok dari input dan menulisnya ke output, jadi itu harus aman (saya telah mengenkripsi ulang partisi terenkripsi seperti ini pada beberapa kesempatan, dengan membuat perangkat loop dengan perangkat dasar yang sama dan kata sandi yang berbeda dan kemudian dddari satu ke yang lain) - setidaknya untuk beberapa jenis media fisik: misalnya dengan drive shingled jelas tidak jelas bagi saya, bahwa itu 100% anti-gagal.

peterph
sumber
Terima kasih atas jawaban anda! Jadi conv=fsyncapakah "secara fisik menulis data file output dan data meta sebelum menyelesaikan", apa artinya ini? Apakah lebih aman atau mengapa saya menggunakannya?
PetaspeedBeaver
1
Saya berharap ini untuk memastikan bahwa semua cache kernel disiram ke media sebelum keluar. Karena Anda hanya menulis ulang data yang sama, sebenarnya tidak terlalu penting. Itu hanya memastikan, bahwa ketika ddselesai Anda dapat mencabut colokannya (mungkin ada cache di HDD, tapi itu di luar wewenang perangkat lunak).
peterph
Jadi secara ringkas, ddperintah lengkap harus berupa dd if=/dev/sda of=/dev/sda bs=16M conv=fsyncplus mungkin juga status=progressuntuk menunjukkan kemajuan. Ini akan memakan waktu cukup lama, tergantung pada ukuran dan kecepatan drive. Saya kira membatalkan proses pertengahan ini dengan misalnya Ctrl + C aman?
Martin Spacek
1
Ya, menginterupsi seluruh proses dengan cara apa pun seharusnya secara teori aman. Setidaknya untuk penggerak magnetis non-shingled spinning - ini adalah area di mana prinsip fisik dan teknologi yang digunakan benar-benar penting.
peterph
1

Saya tidak tahu cara untuk melakukan ini dengan alat asli dari dalam * nix, tetapi sesuatu yang telah saya lakukan selama beberapa tahun adalah menjalankan produk yang disebut Spinrite dari GRC.com .

Ini memiliki beberapa mode salah satunya adalah untuk menyegarkan permukaan / data dengan menjalankan melalui setiap sektor membalikkan keadaan setiap bit beberapa kali dan kemudian meletakkannya kembali seperti semula.

Saya menjalankannya seperti ini beberapa kali dalam setahun pada drive saya, dan bukannya saya ingin mengatakan ini dengan keras, tetapi saya merasa saya memiliki sedikit masalah dengan hard drive saya, dan ada beberapa.

Biayanya sekitar $ 80-90 IIRC tetapi biaya itu semua relatif tergantung pada apa yang Anda pikir data Anda layak untuk Anda.

Lenny_Nero
sumber