我们已经完成了必要的步骤,以便您可以使用特定的磁盘扫描工具确定您的 Linux 磁盘或闪存驱动器是否有坏扇区。
— 亚伦·基利
文章导航
让我们首先了解一下坏扇区和坏块的定义,它们是磁盘或闪存中无法再读取或写入的部分,通常是由于磁盘表面的某些物理损坏[1]或闪存晶体管故障造成的。
随着坏扇区不断积累,它们会对您的磁盘或闪存容量产生不良或破坏性的影响,甚至可能导致硬件故障。
还要注意,坏块的存在应该警告您,您应该开始考虑购买新磁盘,或者只是将坏块标记为不可用。
因此,在本文中,我们将使用特定的磁盘扫描工具[2]完成必要的步骤来确定您的 Linux 磁盘或闪存驱动器是否有坏扇区。
步骤如下:
在 Linux 中使用 BadBlock 工具检查坏扇区
badblock 工具允许用户扫描设备中的坏扇区或坏块。设备可以是硬盘或外部磁盘,由 /dev/sdc 等文件表示。
首先,使用超级用户权限执行 fdisk 命令 [3] 来显示有关所有磁盘或闪存驱动器及其分区的信息:
$ sudo fdisk -l<br>
列出 Linux 文件系统分区
然后使用以下命令检查 Linux 硬盘上的坏扇区/块:
$ sudo badblocks -v /dev/sda10 > badsectors.txt
在 Linux 上扫描硬盘查找坏扇区
在上面的命令中,badblocks 扫描了设备 /dev/sda10(记得指定你实际的设备),-v 选项让它显示操作的详细信息。另外这里还使用了输出重定向,将操作结果重定向到文件 badsectors.txt 中。
如果发现磁盘上有任何坏扇区,请卸载该磁盘并告诉系统不要将数据写入报告的扇区,如下所示。
需要执行e2fsck(针对ext2/ext3/ext4文件系统)或者fsck命令,命令中还需要badsectors.txt文件和设备文件。
-l 选项告诉命令将指定文件 badsectors.txt 中列出的扇区号添加到坏块列表中。
------------ 针对 for ext2/ext3/ext4 文件系统 ------------
$ sudo e2fsck -l badsectors.txt /dev/sda10
或
------------ 针对其它文件系统 ------------
$ sudo fsck -l badsectors.txt /dev/sda10
使用 Linux 上的 Smartmontools 扫描坏扇区
对于配备 SMART(自我监测、分析和报告技术)系统的现代磁盘(ATA/SATA 和 SCSI/SAS 硬盘和固态硬盘),此方法更可靠、更高效。SMART 系统有助于检测、报告并记录其健康状况,因此您可以识别可能发生的任何硬件故障。
您可以使用以下命令安装 smartmontools:
------------ 在基于 Debian/Ubuntu 的系统上 ------------
$ sudo apt-get install smartmontools
------------ 在基于 RHEL/CentOS 的系统上 ------------
$ sudo yum install smartmontools
安装完成后,使用smartctl来控制磁盘集成的SMART系统,可以这样查看它的手册或者帮助:
$ man smartctl
$ smartctl -h
然后执行smartctrl命令,并在命令中指定您的设备作为参数。以下命令包含参数-H或--health,以显示SMART整体健康自我评估测试结果。
$ sudo smartctl -H /dev/sda10
检查 Linux 硬盘健康状况
上述结果表明您的硬盘状况良好,近期不太可能出现硬件故障。
要获取磁盘信息摘要检测硬盘坏道的软件,请使用 -a 或 --all 选项显示有关磁盘的所有 SMART 信息,使用 -x 或 --xall 选项显示有关磁盘的所有 SMART 信息以及非 SMART 信息。
在本教程中,我们介绍了与磁盘健康诊断相关的重要主题[4]。欢迎在下面的反馈部分分享您的想法或提出问题,并务必经常回来查看。
通过:
作者:Aaron Kili[5]译者:alim0x校对:wxy
本文由LCTT[6]原创检测硬盘坏道的软件,Linux中国荣誉呈现