随笔记录 磁盘坏道故障 2019.8.7

dmesg

当有硬盘坏道时,通常在dmesg输出的信息中会有 Buffer I/O Error,所以经常检查dmesg的输出可以及时发现是否存在硬盘问题。

badblocks

adblocks 可以用来检查硬盘是否有坏道,也可以修复坏道,但仅限于逻辑坏道,物理坏道只能更换硬盘。

检查命令:

[root@localhost ~]# badblocks -s -v -o /root/bb.log /dev/sda

检查 /home 是否有坏道,则命令如下

[root@localhost ~]# badblocks -s -v -o /root/bb-home.log /dev/mapper/centos-home

逻辑坏道修复方式

下面是badblocks在/dev/mapper/ centos-home e分区检查出的坏道列表:

217874591

217874592

217874593

217874594

217874595

先备份数据

[root@localhost ~]# dd if=/dev/mapper/centos-home  skip=217874591 of=/tmp/217874591-217874595.dat count=5

修复

[root@localhost ~]# umount /dev/mapper/ centos-home(umount可能出现"Device busy"的错误, 解决方法fuser -m /home //列出使用/home的进程ID  fuser -m -v -i -k /home   //列出PID并kill掉进程)

修复命令:

[root@localhost ~]# badblocks -s -w /dev/mapper/ centos-home 217874595 217874591

修复后检查

[root@localhost ~]# badblocks -s -v /dev/mapper/ centos-home 217874595 217874591

恢复数据(可选)

[root@localhost ~]# dd if=/tmp/217874591-217874595.dat of=/dev/mapper/ centos-home

重新分区检查

[root@localhost ~]# badblocks -s -v -o /root/bb-home.log /dev/mapper/ centos-home

若没有坏道说明修复已完成,若有坏道可以尝试重复以上方法。

完成后重新mount分区

[root@localhost ~]# mount /dev/mapper/ centos-home

原文地址:https://www.cnblogs.com/lyqlyqlyq/p/11314460.html