Hard disk dapat gagal secara tak terduga dan selalu yang terbaik adalah menyimpan cadangan terbaru dari semua data penting. Harap diingat bahwa meskipun kegagalan saat ini atau yang akan datang terdeteksi, mungkin tidak ada cukup waktu untuk mencadangkan data. Di bawah ini adalah beberapa metode yang dapat digunakan untuk mengidentifikasi blok buruk atau kesalahan disk di CentOS/RHEL.
Menggunakan smartctl
Jika ada beberapa kesalahan I/O di /var/log/messages atau seseorang hanya menduga hard disk mungkin gagal, smartctl dapat menjadi alat yang berguna untuk memeriksanya. S.M.A.R.T. singkatan dari Pemantauan Mandiri , Analisis dan Teknologi Pelaporan . Anda harus mengaktifkan S.M.A.R.T. dukungan di BIOS sebelum menggunakannya.
Selanjutnya, instal paket yang diperlukan untuk menjalankan /usr/sbin/smartctl. Di Red Hat Enterprise Linux, ini disediakan oleh smartmontools paket.
1. Verifikasi apakah hard disk Anda mendukung S.M.A.R.T. :
# smartctl -i /dev/xxx
Ganti /dev/xxx dengan hard disk yang diinginkan saat menggunakan perintah yang diuraikan dalam posting ini.
2. Untuk drive SATA gunakan:
# smartctl -i -d ata /dev/xxx
3. Aktifkan S.M.A.R.T. dukungan dengan:
# smartctl -s on /dev/xxx ### For SCSI Disks # smartctl -s on -d ata /dev/xxx ### for SATA Disks
4. Menjalankan perintah berikut sebagai root dapat menjadi tes LULUS/GAGAL cepat tetapi pengujian lebih menyeluruh yang dibahas di bawah ini umumnya lebih meyakinkan:
# smartctl -H /dev/xxx
Menjalankan smartctl di latar belakang
Untuk memulai pengujian latar belakang, jalankan perintah berikut sebagai root:
# smartctl -t long /dev/xxx
Untuk mengakses hasil, gunakan perintah berikut:
# smartctl -a /dev/xxx
Untuk mempelajari lebih lanjut tentang berbagai opsi yang dapat digunakan dengan smartctl, lihat halaman manual dari perintah:
# man smartctl
Menggunakan badblock
Anda juga dapat menggunakan perintah "badblocks" untuk memeriksa blok buruk pada perangkat disk. Perintah "badblocks" bisa sangat berguna dalam mengisolasi masalah dengan menyinkronkan partisi LVM di Linux. Operasi LVM akan gagal karena blok buruk pada disk. Blok buruk pada disk sumber atau tujuan dalam cermin LVM akan menyebabkan kegagalan sinkronisasi.
Badblock juga dapat digunakan bersama dengan fsck dan makefs untuk menandai blok sebagai buruk. Jika output dari badblock akan diumpankan ke program e2fsck atau mke2fs, penting bahwa ukuran blok ditentukan dengan benar, karena nomor blok yang dihasilkan sangat bergantung pada ukuran blok yang digunakan oleh sistem file. Untuk alasan ini, sangat disarankan agar pengguna tidak menjalankan badblock secara langsung, melainkan menggunakan opsi -c dari program e2fsck dan mke2fs.
Peringatan :Penyalahgunaan perintah ini dapat menyebabkan hilangnya data. Informasi tambahan tentang perintah "badblocks" tersedia menggunakan perintah "man badblocks".1. Gunakan badblock alat pemeriksa disk untuk memindai blok demi blok hard disk yang ditentukan. Misalnya, untuk memindai /dev/sdd, jalankan perintah:
# mount | grep sdd # find all mounted partitions of sdd # umount /dev/sdd1 # unmount the partitions (may be more then one) # badblocks -n -vv /dev/sdd
Dimana -n menggunakan mode baca-tulis non-destruktif. Secara default, hanya tes baca-saja non-destruktif yang dilakukan.
Catatan :Jangan pernah menggunakan -w pilihan pada perangkat yang berisi sistem file yang ada. Opsi ini menghapus data! Jika pengujian mode tulis perlu dilakukan pada sistem file yang ada, gunakan -n pilihan sebagai gantinya. Ini lebih lambat, tetapi akan melestarikan data.2. Jika pesan yang mirip dengan contoh di bawah ini muncul di /var/log/messages atau ke konsol setelah menjalankan badblock, disarankan untuk mencadangkan data apa pun di perangkat yang terpengaruh dan mengganti perangkat:
Apr 4 13:50:40 test kernel: sdd: dma_intr: status=0x51 { DriveReady SeekComplete Error } Apr 4 13:50:40 test kernel: sdd: dma_intr: error=0x40 { UncorrectableError }, LBAsect=74367249, sector=74367232 Apr 4 13:50:40 test kernel: ide: failed opcode was: unknown Apr 4 13:50:40 test kernel: end_request: I/O error, dev sdd, sector 74367232 Apr 4 13:50:42 test kernel: sdd: dma_intr: status=0x51 { DriveReady SeekComplete Error } Apr 4 13:50:42 test kernel: sdd: dma_intr: error=0x40 { UncorrectableError }, LBAsect=74367249, sector=74367240 Apr 4 13:50:42 test kernel: ide: failed opcode was: unknown Apr 4 13:50:42 test kernel: end_request: I/O error, dev sdd, sector 74367240 Apr 4 13:50:44 test kernel: sdd: dma_intr: status=0x51 { DriveReady SeekComplete Error }
3. Perintah di bawah ini akan membuang blok buruk yang ditemukan ke file output:badblocks.log.
# badblocks -v -o badblocks.log /dev/sdd