linux系统硬件一之磁盘逻辑坏道修复
linux系统硬件一之磁盘逻辑坏道修复
1.问题起因:前几天一台机器上的三个mysql实例突然间宕掉了,查看mysql日志文件只有一个 " 170831 18:30:37 mysqld_safe mysqld restarted " 信息,根本找不到原因,只能重新启动实例,接着也能继续运行起来。
2.问题原因:后来各种信息查询,最后在系统message日志文件中找到关于磁盘的报错,dmesg看到如下信息,确定了是硬盘有坏道
sd 0:1:0:0: [sda] Add. Sense: Unrecovered read error sd 0:1:0:0: [sda] CDB: Read(10): 28 00 00 05 34 28 00 00 08 00 Buffer I/O error on device sda2, logical block 16773
3.检测坏道情况:badblocks -s -v /dev/sda2 共17个坏道区块
4.将坏道区块输出到文件中查看:badblocks -s -v -o ./badblocks.log /dev/sda2
5.进修复:badblocks -s -w /dev/sda END START END代表需要修复的扇区末端,START代表需要修复的扇区起始端
6.再次检测:badblocks -s -v /dev/sda2 已修复
磁盘坏道分为三种:0磁道坏道,逻辑坏道,硬盘坏道。其中逻辑坏道可以使用上面的方法修复,0磁道坏道的修复方法是隔离0磁道,使用fdsk划分区的时候从1磁道开始划分区。如果是硬盘坏道的话,只能隔离不能修复。硬盘坏道的监测方法:使用上述方法检测修复后,再使用badblocks -s -v -o /root/badblocks.log /dev/sda监测看是否还有坏道存在,如果坏道还是存在的话说明坏道属于硬盘坏道。硬盘坏道隔离方法,首先记录监测出的硬盘坏道,然后分区的时候把硬盘坏道所在的扇区分在一个分区(大小一般大于坏扇区大小),划分出的坏道分区不使用即可达到隔离的目的。隔离只是暂时方案,建议尽快更换硬盘,因为坏道会扩散,以免以后出现严重的数据问题。
让磁盘写数据,不写在坏块列表里面方法:
e2fsck -l badsectors.txt /dev/sda2 (针对 for ext2/ext3/ext4 文件系统
fsck -l badsectors.txt /dev/sda2(针对其它文件系统)
一些事情一直在干,说不定以后就结果了呢
本文来自博客园,作者:chenjianwen,转载请注明原文链接:https://www.cnblogs.com/chenjw-note/articles/7483762.html