故障現象,在/var/log/message這個目錄中出現下面的error:
[24934098.161918] Buffer I/O error on device sdaj, logical block 4
[24934098.161921] Buffer I/O error on device sdaj, logical block 5
[24934098.161922] Buffer I/O error on device sdaj, logical block 6
[24934098.161924] Buffer I/O error on device sdaj, logical block 7
[24934098.161926] Buffer I/O error on device sdaj, logical block 8
[24934098.161928] Buffer I/O error on device sdaj, logical block 9
[24934098.161930] Buffer I/O error on device sdaj, logical block 10
[24934098.161931] Buffer I/O error on device sdaj, logical block 11
[24934098.161933] Buffer I/O error on device sdaj, logical block 12
[24934098.161935] Buffer I/O error on device sdaj, logical block 13
dmesg的輸出結果也是上面的error。
1、檢測下壞道,將結果保存在bb.log中。
# badblocks -s -v -o /home/wzp/bb.log /dev/sdaj
Checking blocks 0 to 3907018583
Checking for bad blocks (read-only test): 0.05% done, 0:12 elapsed
smartctl -a /dev/sdaj (快速檢測硬盤壞道,看read,write 后面有沒有errors)
2. 邏輯壞道修復方法
badblocks -s -w /dev/sda END START (END代表需要修復的扇區末端,START代表需要修復的扇區起始端)
fsck -a /dev/sda
修復后再用badblocks -s -v -o /root/bb.log /dev/sda監測看是否還有壞道存在,如果壞道還是存在的話說明壞道屬於硬盤壞道。硬盤壞道要用隔離方法,首先記錄監測出的硬盤壞道然后分區的時候把硬盤壞道所在的扇區分在一個分區(大小一般大於壞扇區大小),划分出的壞道分區不使用即可達到隔離的目的
3. 0磁道壞道和硬盤壞道(准備換硬盤)
0磁道壞道的修復方法是隔離0磁道,使用fdsk划分區的時候從1磁道開始划分區。
如果是硬盤壞道的話,只能隔離不能修復