centos 7 经常无故死机,没办法查看了下系统,发现好多I/O错误
类似这样:
blk_update_request: I/o error, dev sda, sector 6352279545 blk_update_request: I/o error, dev sda, sector 25680929828 blk_update_request: I/o error, dev sda, sector 25680929828 Buffer I/O error on dev dm-0, logical block 6676444, lost async page write Buffer I/O error on dev dm-0, logical block 6676445, lost async page write Buffer I/O error on dev dm-0, logical block 6676446, lost async page write
看来硬盘出了不少问题,没办法,只能找坏道。
一般命令如下:
badblocks -s -v -o /root/bb-sda.log /dev/sda
结果出现错误“badblocks: Value too large for defined data type invalid end block (5751976960): must be 32-bit value”
意思就是block太大了。
后面找到了解决办法,加一个参数就行了
把命令修改为
badblocks -b 5120 -s -v -o /root/bb-sda.log /dev/sda
因为我的服务器硬盘有30T,所以会出现上面那个错误,上面的命令其实也是有b这个参数的,只是默认为512,意思为512字节一扇区,对于这么大的硬盘超过了阈值,所以把这个参数修改为5120,那么就能顺利执行了。当然最后得到的结果也要除以10,就是真真的坏道位置了。
记录一下
转载请注明:百蔬君 » 【原创文章】centos7 badblocks检测硬盘出现Value too large for defined data type错误的原因和解决办法