Saya ingin menggunakan badblock untuk memeriksa HDD saya dan akan sangat menghargai klarifikasi operasinya.
Bisakah seseorang menjelaskan opsi terbaik untuk digunakan bersama -b
dan -c
? Saya telah memasukkan definisi mereka dari halaman manual, tetapi saya tidak yakin apakah ukuran yang lebih besar akan bermanfaat untuk disk modern dengan 64MB RAM dan sektor 4k.
-b block-size Specify the size of blocks in bytes. The default is 1024.
-c number of blocks the number of blocks which are tested at a time. The default is 64
Kedua, saya ingin tahu apakah tes mode tulis lebih menyeluruh daripada mode baca-tulis yang tidak merusak?
Terakhir, berapa banyak alokasi ulang sektor SMART yang dapat diterima / haruskah drive dengan jumlah realokasi yang tidak nol segera diganti?
linux
hard-drive
bad-blocks
Yoren
sumber
sumber
Jawaban:
Pertanyaan 1:
Berkenaan dengan
-b
opsi: ini tergantung pada disk Anda. Disk besar dan modern memiliki blok 4KB, yang harus Anda atur-b 4096
. Anda bisa mendapatkan ukuran blok dari sistem operasi , dan biasanya juga dapat diperoleh dengan membaca informasi disk dari label, atau dengan googling nomor model disk. Jika-b
diatur ke sesuatu yang lebih besar dari ukuran blok Anda, integritasbadblocks
hasil dapat dikompromikan (yaitu Anda bisa mendapatkan false-negatif: tidak ada blok buruk yang ditemukan saat masih ada). Jika-b
diatur ke sesuatu yang lebih kecil dari ukuran blok drive Anda, kecepatan prosesbadblocks
dapat dikompromikan. Saya tidak yakin, tetapi mungkin ada masalah lain dengan pengaturan-b
untuk sesuatu yang lebih kecil dari ukuran blok Anda, karena tidak memverifikasi integritas seluruh blok, masih mungkin untuk mendapatkan false-negatif jika diset terlalu kecil.The
-c
pilihan bersesuaian dengan berapa banyak blok harus diperiksa sekaligus. Membaca / menulis, pada dasarnya. Opsi ini tidak memengaruhi integritas hasil Anda, tetapi memengaruhi kecepatan saatbadblocks
menjalankan.badblocks
akan (secara opsional) menulis, lalu membaca, buffer, periksa, ulangi untuk setiap N blok seperti yang ditentukan oleh-c
. Jika-c
diset terlalu rendah, ini akan membuat perjalanan Andabadblocks
memakan waktu lebih lama dari biasanya, karena antrian dan pemrosesan permintaan IO terpisah menimbulkan overhead, dan disk mungkin juga mengenakan tambahan biaya tambahan per permintaan. Jika-c
diset terlalu tinggi,badblocks
kehabisan memori. Jika ini terjadi,badblocks
akan gagal dengan cukup cepat setelah dimulai. Pertimbangan tambahan di sini termasukbadblocks
berjalan paralel : jika Anda menjalankanbadblocks
terhadap banyak partisi pada disk yang sama (ide buruk), atau terhadap beberapa disk pada saluran IO yang sama, Anda mungkin ingin menyetel-c
ke sesuatu yang masuk akal mengingat memori yang tersediabadblocks
sehingga paralel berjalan tidak memperjuangkan IO bandwidth dan dapat memparalelkan dengan cara yang waras.Pertanyaan 2:
Bertentangan dengan apa jawaban lain menunjukkan, para
-w
tes tulis-mode tidak lebih atau kurang dapat diandalkan dibandingkan non-destruktif read-write tes, tetapi dua kali lebih cepat, dengan biaya yang merusak semua data Anda. Saya akan menjelaskan alasannya:Dalam mode non-destruktif,
badblocks
lakukan hal berikut:-p
opsi, meskipun biasanya tidak perlu) ke blok.Dalam
-w
mode destruktif ( ),badblocks
hanya langkah 2 dan 3 di atas. Ini berarti bahwa jumlah operasi baca / tulis yang diperlukan untuk memverifikasi integritas data terpotong dua. Jika blok buruk, data akan salah dalam mode baik. Tentu saja, jika Anda peduli dengan data yang disimpan di drive Anda, Anda harus menggunakan mode non-destruktif, karena-w
akan melenyapkan semua data dan meninggalkanbadblocks
pola tertulis ke disk sebagai gantinya.Peringatan: jika blok tersebut akan buruk, tapi tidak sepenuhnya hilang lagi, beberapa pasang verifikasi baca / tulis dapat bekerja, dan beberapa mungkin tidak. Dalam hal ini, mode non-destruktif dapat memberi Anda indikasi "bubur" blok yang lebih dapat diandalkan, karena ia melakukan dua set verifikasi baca / tulis (mungkin - lihat peluru di langkah 4). Bahkan jika mode non-destruktif lebih dapat diandalkan dengan cara itu, itu hanya lebih dapat diandalkan secara kebetulan . Cara yang benar untuk memeriksa blok yang tidak sepenuhnya buruk tetapi tidak dapat mempertahankan beberapa operasi baca / tulis adalah untuk menjalankan
badblocks
beberapa kali lebih dari data yang sama, menggunakan-p
opsi.Pertanyaan 3:
Jika SMART merealokasi sektor, Anda mungkin harus mempertimbangkan untuk mengganti drive ASAP. Drive yang kehilangan beberapa sektor tidak selalu hilang, tetapi penyebabnya biasanya drive yang banyak digunakan menjadi lembek secara magnetis, atau kegagalan head / motor yang mengakibatkan pembacaan / penulisan yang tidak akurat atau gagal. Keputusan akhir terserah Anda, tentu saja: berdasarkan nilai data pada drive dan keandalan yang Anda butuhkan dari sistem yang Anda jalankan, Anda mungkin memutuskan untuk mempertahankannya. Saya memiliki beberapa drive dengan blok buruk yang diketahui yang telah berputar dengan peringatan SMART selama bertahun-tahun di server file saya, tetapi mereka didukung dengan jadwal sehingga saya bisa menangani kegagalan total tanpa banyak rasa sakit.
sumber
-b
default1024
? Bagi saya itu agak aneh. Mengapa tidak512
?ext2
. badblocks adalah bagian dari e2fsprogs, dan pada awalnya dimaksudkan untuk mengisi daftar blokir buruk dari sistem file ext2. Anda harus menjalankannya dengan blocksize yang sama seperti FS untuk mendapatkan angka dalam format yang tepat untuk mkfs.ext2. TL; DR: alasan historis yang tidak perlu Anda khawatirkan.1) Jika disk modern Anda menggunakan ukuran sektor selain 512b - maka Anda perlu mengatur ukuran itu dengan
-b
opsi (yaitu-b 4096
). Tanpa opsi itu, cek Anda akan berjalan jauh lebih lambat karena setiap sektor riil akan dicoba beberapa kali (8 kali dalam kasus sektor 4k). Juga seperti yang disebutkan Olivier Dulac dalam komentar untuk pertanyaan -block is indeed 1 block, and not 1/2 or 1/4th or even 2 (or more) blocks.
Opsi
-c
menyiratkan pada berapa banyak sektor tryid sekaligus. Itu bisa memiliki beberapa implikasi pada kinerja dan nilai kinerja yang dapat bergantung pada model disk tertentu.2)
write-mode test
- Dalam pemahaman saya ini hanya akan memeriksa apakah Anda memiliki kesalahan yang sangat buruk atau kesalahan yang sangat buruk (alias Degradasi Data Diam, bit busuk, peluruhan media penyimpanan, sektor UNC)3) Saya tidak akan percaya pada laporan SMART pada titik waktu. Yang lebih penting adalah bagaimana nilai berubah sepanjang waktu. Juga di sini adalah penelitian oleh Google Kegagalan Tren di Populasi Drive Disk Besar dan di sini adalah beberapa diskusi tentang itu. Berikut ini kutipan dari penelitian:
Mengenai yang disebutkan oleh orang lain untuk penggantian disk - Anda mungkin tidak memiliki masalah hard disk yang buruk tetapi Degradasi Data Diam (bit busuk, peluruhan media penyimpanan, sektor UNC). Dalam hal ini tidak masuk akal untuk mengganti disk, tetapi sebaliknya berguna untuk melakukan baca / tulis data yang sama kembali ke disk. Anda dapat melihat di sini bagaimana cara menyelesaikannya.
Jika Anda memiliki kesalahan sangat buruk, Anda bisa mencoba mempartisi ulang drive dengan cara area buruk itu berada di luar partisi apa pun. Bagi saya pendekatan itu bermanfaat dan hard disk buruk seperti itu digunakan untuk waktu yang lama tanpa masalah.
sumber
-b
default ke 1024. Jika disk Anda menggunakan ukuran sektor selain 1024, yang sangat umum di luar sistem file ext2, maka Anda harus menentukan itu.Saya akan membiarkan -b dan -c sebagai default kecuali Anda memiliki alasan khusus untuk mengubahnya. Anda mungkin dapat mengatur -b ke 4096 jika disk Anda memiliki ukuran blok 4k.
Saya sarankan Anda pertama kali menjalankan badblock dengan uji rw non-destruktif. Jika menemukan bad sector, disk rusak dan harus diganti. Jika TIDAK menemukan blok buruk pada non-destruktif, tetapi Anda masih curiga ada badblock, maka jalankan tes rw destruktif.
Saya akan mengganti drive segera setelah sektor diganti.
sumber
Jenis ini mengarah pada perbedaan antara mode baca badblock (non-destructive) dan mode tulis (destructive):
Drive hanya akan merealokasi sektor yang buruk ketika penulisan gagal. Kesalahan baca untuk file hanya bisa "diperbaiki" ketika upaya dilakukan untuk menulis ulang file. Jika tidak. blok buruk tetap menjadi bagian dari file dengan asumsi bahwa Anda mungkin dapat memulihkan sesuatu. Kesalahan baca untuk tabel partisi hanya dapat "diperbaiki" dengan menjalankan blok buruk dalam mode tulis dan membuat ulang partisi
Jadi, mode baca akan memberi tahu Anda di mana blok buruk berada tetapi tidak bisa berbuat apa-apa. Mode tulis menguji kesehatan masing-masing sektor dan akan menyebabkan disk mengalokasikan kembali blok yang buruk tetapi dengan mengorbankan menghancurkan data. Ambil pilihanmu.
sumber
Untuk menjawab pertanyaan kedua Anda tentang sektor yang dipetakan kembali, itu tergantung. Saya berbicara dari konteks pengguna rumahan yang (kadang-kadang) memonitor hal semacam ini.
Inilah dua situasi yang saya hadapi. Saya memiliki RAID5 dari 6 200GB drive. Setelah kegagalan daya yang mengakibatkan lampu berkedip, satu drive menunjukkan 14 sektor yang dipetakan kembali dan mencatat beberapa kesalahan. Saya menyaksikan drive dan tidak ada lagi kesalahan yang dicatat dan jumlah sektor yang dipetakan kembali tetap stabil. Saya menyimpulkan bahwa drive menderita karena transien daya dan tidak gagal. Saya terus menggunakannya selama bertahun-tahun. RAID5 asli sudah pensiun tetapi saya memiliki dua drive yang beroperasi dengan daya sekitar 10 tahun pada jam. Mereka memiliki beberapa sektor yang dipetakan kembali. Saya menggunakan dua dari mereka mirrored untuk menyimpan dump cadangan tambahan dari cadangan utama saya. Dengan cara itu cadangan utama melihat (kebanyakan) operasi baca dan penulisan akan ke perangkat yang berbeda. Jika salah satu drive kuno ini gagal, yang lain harus terus berjalan. Jika keduanya gagal, Saya menggantinya dengan sesuatu yang lain dan menjalankan kembali skrip cadangan. Dampak jika salah satu drive ini gagal mendekati nol, jadi saya tidak khawatir tentang sektor yang dipetakan ulang.
Saya memiliki HDD 2TB yang merupakan salah satu dari sepasang drive yang dicerminkan dan yang mulai menumbuhkan sektor yang dipetakan kembali. Awalnya jumlahnya puluhan, lalu ratusan, lalu ribuan. Ini sudah bertahun-tahun. Drive lain dalam pasangan tetap sehat dan pada kenyataannya, penurunan yang perlahan-lahan gagal tidak jatuh dari array. Akhirnya saya mengganti kedua drive dengan drive 6TB dan jumlah sektor yang dipetakan kembali menjadi non-masalah. Saya masih memiliki drive dan masih "berfungsi," bahkan dengan sekitar 4.500 sektor yang dipetakan kembali. Saya telah meletakkan drive seperti ini dalam sistem uji (sebagai anggota RAID) untuk melihat apa yang terjadi ketika seseorang benar-benar mati. Saya memiliki beberapa peluang untuk bekerja dengan ini dan dalam semua keadaan penggantian pergi tanpa drama.
Saya memang mengalami kegagalan drive di server file cadangan utama saya. Ini tidak menghasilkan peringatan lanjut, hanya berhenti merespons perintah SATA. Itu adalah anggota ZFS RAIDZ2 dan saya menggantinya tanpa drama. Bahkan, pada server pengujian saya, saya telah mengganti drive yang gagal tanpa daya bersepeda atau me-reboot server.
Satu hal lagi yang perlu diperhatikan, saya memiliki cadangan semua data penting di situs dan di luar situs. Jika ada satu sistem yang hilang, ada dua salinan data di tempat lain.
sumber