centos出现磁盘坏道,怎么检索和修复
故障现象,在/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磁道开始划分区。
如果是硬盘坏道的话,只能隔离不能修复