网站搜索

如何在Linux中检查硬盘上的坏扇区或坏块


让我们首先定义坏扇区/块,它是磁盘驱动器或闪存上的一个部分,由于磁盘表面上的固定物理损坏或闪存晶体管故障而无法再读取或写入。

随着坏扇区不断积累,它们可能会对您的磁盘驱动器或闪存容量产生不良或破坏性影响,甚至可能导致硬件故障。

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

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

也就是说,以下是方法:

使用 badblocks 工具检查 Linux 磁盘中的坏扇区

badblocks 程序使用户能够扫描设备中的坏扇区或块。该设备可以是硬盘或外部磁盘驱动器,由/dev/sdc等文件表示。

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

sudo fdisk -l

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

sudo badblocks -v /dev/sda10 > badsectors.txt

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

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

您需要对 badsectors.txt 文件和设备文件使用 e2fsck(对于 ext2/ext3/ext4 文件系统)或 fsck 命令如下面的命令所示。

-l 选项告诉命令将文件名 (badsectors.txt) 指定的文件中列出的块编号添加到坏块列表中。

------------ Specifically for ext2/ext3/ext4 file-systems ------------ 
sudo e2fsck -l badsectors.txt /dev/sda10

OR

------------ For other file-systems ------------ 
sudo fsck -l badsectors.txt /dev/sda10

使用 Smartmontools 扫描 Linux 磁盘上的坏扇区

对于配备 S.M.A.R.T(自我监控、分析和报告技术)系统的现代磁盘(ATA/SATA 和 SCSI/SAS 硬盘驱动器和固态驱动器),此方法更加可靠和高效这有助于检测、报告并可能记录其健康状态,以便您可以找出任何即将发生的硬件故障。

您可以通过运行以下命令来安装smartmontools

------------ On Debian/Ubuntu based systems ------------ 
sudo apt-get install smartmontools

------------ On RHEL/CentOS based systems ------------ 
sudo yum install smartmontools

安装完成后,使用smartctl来控制集成到磁盘中的S.M.A.R.T系统。您可以查看其手册页或帮助页,如下所示:

man smartctl
smartctl -h

现在执行 smartctrl 命令并将您的特定设备命名为参数,如以下命令所示,包含标志 -H--health显示SMART整体健康自评测试结果。

sudo smartctl -H /dev/sda10

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

有关磁盘信息的概述,请使用 -a--all 选项打印出有关磁盘和 的所有 SMART 信息-x--xall 显示有关磁盘的所有 SMART非 SMART 信息。

在本教程中,我们介绍了有关磁盘驱动器运行状况诊断的一个非常重要的主题,您可以通过下面的反馈部分与我们联系,分享您的想法或提出任何问题,并记住始终与 Tecmint 保持联系。