Tandai bad sector pada hard drive tanpa memformat

22

Saya perhatikan bahwa pada server Ubuntu di rumah saya satu drive hanya dapat dibaca untuk beberapa alasan. Menggali Saya menemukan bahwa ini bisa terjadi ketika hard drive memiliki kesalahan. Saya menggunakan badblock untuk memeriksa kesalahan, dan memang saya memiliki beberapa sektor yang rusak.

Dalam kebanyakan kasus, satu-satunya tindakan rasional adalah mencoba membuat cadangan data, melepas HDD, dan membeli yang baru. Namun, server ini tidak memiliki apa pun yang sudah tidak saya cadangkan di banyak tempat, dan saya ingin menggunakannya sampai mati. Saya menggunakannya untuk streaming musik dan menjalankan beberapa skrip sederhana. Bagaimanapun, itu akan menjadi masalah besar menginstal ulang semuanya.

Apakah ada cara untuk menandai blok buruk ini tanpa memformat hdd?

Enedene
sumber

Jawaban:

29

Saya berasumsi Anda berbicara tentang blok buruk fisik pada disk dan bukan tentang sistem file yang rusak.

Untuk memeriksa kondisi fisik disk Anda, sebaiknya instal smartmontools

sudo apt-get install smartmontools

Ini berfungsi karena semua disk modern mencatat status kesehatan mereka menggunakan sistem yang disebut SMART

Gunakan smartctrlperintah untuk membaca status ini. Misalnya untuk membaca semua atribut dari panggilan disk pertama

sudo smartctl --all /dev/sda

Watch out for a line berbicara tentang status kesehatan keseluruhan. Setelah ini menunjukkan kesalahan, sangat mungkin bahwa disk akan segera gagal.

SMART overall-health self-assessment test result: PASSED

Baris lain yang ingin Anda periksa adalah Hitungan Sektor Tertunda dan Sektor yang Direalokasi.

ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       48
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       2

Daftar yang dialokasikan kembali biasanya di bidang mentah jumlah sektor buruk yang ditukar diska dengan cadangan yang berfungsi. Tertunda adalah sektor yang mungkin dialokasikan kembali jika penulisan berikutnya gagal.

Anda bahkan dapat memicu tes mandiri disk ketika didukung oleh model Anda

sudo smartctl -t long /dev/sda

Untuk memaksa memeriksa semua sektor, gunakan badblocksdalam mode di mana data ditulis. Berhati-hatilah bahwa meskipun secara umum aman untuk dijalankan, ini akan menambah beban pada disk Anda, yang dapat menyebabkannya gagal. Selalu punya cadangan data Anda.

sudo badblocks -svvn -c 262144 /dev/sda

Jika Anda telah sepenuhnya memproses disk Anda dengan cara ini, pengontrol disk seharusnya mengganti semua blok yang buruk dengan yang berfungsi dan jumlah yang dialokasikan kembali akan ditingkatkan dalam log SMART.

pengguna228505
sumber
2
apa pengaruh -catau jumlah blok yang diuji pada suatu waktu atau dengan kata lain mengapa Anda nilai yang begitu besar dibandingkan dengan standar 64?
greole
4
ukuran blok standar 1024 byte dikalikan dengan default 64 blok sekaligus hanya menyebabkan 64k diproses pada setiap permintaan. Dengan disk modern yang memiliki throughput hingga 150 MiB / s, ini menghasilkan lebih banyak overhead daripada yang saya rasa nyaman. Saya ingin memberikan drive kesempatan untuk memproses data dengan cara yang paling efisien tanpa menunggu data di bus.
user228505
Says: / dev / sda tampaknya sedang digunakan oleh sistem; tidak aman untuk menjalankan badblocks!
Dims
1
@Dims Ini memberitahu Anda untuk tidak menjalankan ini pada disk yang terpasang aktif. Lepas dahulu diska. Dalam kasus Anda, mungkin itu adalah drive sistem Anda. Jadi boot ke sistem penyelamatan terlebih dahulu.
user228505
2
@Dims Ada opsi-memaksa jika Anda ingin menjalankannya. yaitu sudo badblocks -svvn -c 262144 / dev / sda -force
ADR