检测磁盘是否有坏道

1.执行命令"badblocks -v /dev/sda1 > result.txt ",执行检测,并将操作结果重定向到result.txt内

badblocks -s -b4096 /dev/sda1
对硬盘数据的操作存在风险,请谨慎操作

扫描硬盘坏道Permalink
命令:

badblocks /dev/sdXX [-s -b4096 -o err.log]
常用命令解释:
-s:在屏幕上显示进度
-b:每次扫描的块大小
-o:将错误输出到文件

利用硬盘的重分配特性修复坏道Permalink
硬盘上的芯片存有一个 GList,里面存储着盘面上的坏道信息,当读写到其记录的地址时会自动重映射另一个地址来代替损坏的区域。而往其中添加内容很简单:只要往坏道上写数据(读不行),硬盘会自动重映射。

警告:本操作会覆盖硬盘目标区域的数据,请谨慎使用

技巧:可以使用 dd 命令使用 conv=noerror, sync 参数先备份目标区域的数据,在修复后用 dd 写回,具体请参阅 man dd

命令:

badblocks -w [-f] /dev/sdXX [-s -b4096] end start
常用命令解释:
-w:写入命令,通过在坏道地址强制写入来让硬盘自动重映射。
-f:强制写入,在已确定目标不被系统读写而-w 仍然拒绝写入时使用。这个参数应该尽量避免!
end, start:强制写入的开始和终止块地址,与-b 制定的大小相配和。

 

2.另外一种方法,采用Smartctl软件,首先我们执行命令“yum install smartmontools”进行安装,具体操作如下

执行命令“smartctl --help”查看帮助文档

执行命令“systemctl start smartd.service”启动服务,并且检验服务是否启动成功

3.检查磁盘的 Smart 功能是否启用,我们采用命令“smartctl -i /dev/sda”。

4.可以通过命令“smartctl -s on /dev/sda”开启磁盘的smart功能

5.执行命令“smartctl -a /dev/sda”显示磁盘的详细smart信息。

6.执行命令“smartctl --test=short /dev/sda”执行磁盘的短期检测。

posted @ 2022-09-22 09:32  chenjianwen  阅读(528)  评论(0编辑  收藏  举报