如何检测 Linux 硬盘上的坏扇区或坏块

让我们首先定义一个坏扇区/坏块,它是磁盘驱动器或闪存上无法再读取或写入的部分,这通常是由于以下原因发生的表面或失效的闪存晶体管。

随着坏扇区的增加,它们会严重影响存储设备的性能,降低其容量,甚至导致完全的硬件故障。

同样重要的是要注意,坏块的存在应该提醒您开始考虑购买新的磁盘驱动器或简单地将坏块标记为不可用。

因此,在本文中,我们将完成必要的步骤,使您能够使用某些特定的方法来确定 Linux 磁盘驱动器或闪存上是否存在坏扇区。。

也就是说,以下是方法:

1. 使用 badblocks 工具检查坏扇区

badblocks该工具可让您扫描存储设备(例如硬盘或外部驱动器)是否有坏扇区。设备通常列为文件,例如/dev/sdc或者/dev/sda

第 1 步:列出所有磁盘和分区

首先,使用具有超级用户权限来显示有关所有磁盘驱动器或闪存及其分区的信息:

sudo fdisk -l
列出 Linux 文件系统分区

这将帮助您识别要扫描的正确设备名称。

步骤 2:扫描坏块

然后输入以下命令扫描您的 Linux 磁盘驱动器以检查坏扇区/块:

sudo badblocks -v /dev/sda10 > badsectors.txt
Linux下扫描硬盘坏道

在上面的命令中,坏块是扫描设备/dev/sda10(记住指定您的实际设备)-v使其能够显示操作的详细信息。另外,操作的结果存储在文件中坏扇区.txt通过输出重定向的方式。

如果您发现磁盘驱动器上有任何坏扇区,请卸载磁盘并指示操作系统不要写入报告的扇区,如下所示。

步骤 3:将坏扇区标记为不可用

您将需要雇用e2fsck(对于 ext2/ext3/ext4 文件系统)或FSCK命令与坏扇区.txt文件和设备文件,如下面的命令所示。

对于 ext2/ext3/ext4 文件系统:

sudo e2fsck -l badsectors.txt /dev/sda10

对于其他文件系统:

sudo fsck -l badsectors.txt /dev/sda10

2.使用Smartmontools扫描磁盘健康状况(推荐)

对于随设备一起提供的现代磁盘(ATA/SATA 和 SCSI/SAS 硬盘驱动器以及固态驱动器),此方法更加可靠和高效。聪明的(自我监控、分析和报告技术)系统可帮助检测、报告并可能记录其健康状态,以便您可以找出任何即将发生的硬件故障。

第1步:在Linux中安装smartmontools

您可以安装智能监控工具通过运行以下命令:

sudo apt install smartmontools  #For Debian-based
sudo dnf install smartmontools  #For RHEL-based

步骤 2:使用 smartctl 运行健康检查

安装完成后,使用智能控制,它控制着聪明的系统集成到磁盘中。您可以查看其手册页或帮助页,如下所示:

man smartctl
smartctl -h

第 3 步:运行基本健康测试

现在执行智能控制命令并将您的特定设备命名为参数,如以下命令所示,标志-H或者--health包括显示聪明的整体健康自我评估测试结果。

sudo smartctl -H /dev/sda10
检查Linux硬盘健康状况

上面的结果表明您的硬盘状况良好,并且可能不会很快出现硬件故障。

可选:查看完整的 SMART 报告

有关磁盘信息的概述,请使用-a或者--all打印全部的选项聪明的有关磁盘的信息和-x或者--xall显示所有聪明的非智能型有关磁盘的信息。

sudo smartctl -a /dev/sda10

或者更全面:

$ sudo smartctl -x /dev/sda10
总结

在本指南中,我们探讨了如何使用 badblocks 和 smartmontools 识别和管理 Linux 驱动器上的坏扇区。密切关注存储健康状况至关重要,这些工具使这一切变得非常简单。

如果您有任何问题、反馈或建议,请随时在下面的评论部分联系。与往常一样,请继续关注 Howtoing,了解更多 Linux 技巧和教程!