天天看點

磁盤壞道故障!

檢測壞道指令:[root@localhost ~]# sudo badblocks -v /dev/硬碟

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