坏扇区或坏块是机械硬盘驱动器的损坏部分,根本无法用于数据存储。然而,操作系统仍然可以写入这些扇区,除非你特别标记为”bad”或无法使用。此外,如果你有数据存储在这些区域的硬盘驱动器,数据恢复是非常困难的。
虽然,最新的服务器存储技术,如SSD等几乎消除了这个问题。但是,如今仍有大量的硬盘驱动器在使用,这些硬盘驱动器已经老化,可能会慢慢开始有坏扇区。
因此,如果你觉得系统速度变慢,或者,磁盘IO增加,就应该定期扫描硬盘(尤其是老化的硬盘)是否有坏扇区。在Linux(Ubuntu、Fedora和其他发行版)中,您可以通过以下终端命令轻松地进行扫描。
如何在Linux中管理磁盘坏道
如果磁盘未安装操作系统,则最好在命令下运行。因此,我建议您使用USB记忆棒从LIVE操作系统启动尝试此操作。您可以使用本指南在您选择的任何Linux操作系统上创建LIVE USB(推荐:Ubuntu)。
但是,您仍然可以在已安装的Linux发行版中运行这些命令,但不应扫描或标记已安装的“/”根文件系统。
1、扫描坏道
第一步,确定要扫描坏扇区的磁盘分区。如果已安装GParted,则很容易找到。否则,您可以运行以下命令(lsblk-列出块设备)以查看磁盘分区。
sudo lsblk -o name,mountpoint,label,size,uuid
如果通过LIVE USB运行上述命令,请确保可以识别硬盘和USB记忆棒。通常,HDD应该定义为/dev/sda。
然后,您可以badblocks使用详细(-v)开关运行以下命令。并将输出保存到文本文件中以供进一步研究。这仅是硬盘中是否有坏扇区的验证。
sudo badblocks -v /dev/sda1 > ~/bad_sectors.txt
2、修复坏扇区域
对于ext2,ext3和ext4文件系统,可以使用e2fsck实用程序来检查和修复坏扇区。在终端中以管理员权限运行以下命令以进行检查和修复。
sudo e2fsck -cfpv /dev/sda1
确保替换sda1为正确的设备标识符。参数“ c”搜索坏块并将其添加到列表中,“ f”对文件系统进行检查。如果可能,“ p”参数将修复任何内容,“ v”是详细模式,可为您提供命令进度的终端输出。
您也可以指定bad_sectors.txt在先前步骤中创建的文件,也可以e2fsck仅通过以下命令来强制修复文件中的文件。
sudo e2fsck -l bad_sectors.txt /dev/sda1
对于其他文件系统(例如FAT32),可以使用 fsck。
sudo fsck -l bad_sectors.txt /dev/sda1
但是,根据磁盘分区的大小和磁盘的运行状况,上述命令的执行可能需要几个小时才能运行。因此,在启动命令之前请做好准备。尝试在执行过程中不要通过CTRL + C或CTRL + Z终止命令。
我希望本教程可以帮助您识别硬盘驱动器中的问题并将其标记为严重问题,以防止进一步的数据丢失。请记住,即使您将扇区标记为“bad”,磁盘仍然已经受到物理损坏。只是将这些轨道标记为不好以告诉操作系统不要访问,这只是一个软件修复。如果您的硬盘开始出现坏扇区,从长远来看,它将变得更糟。因此,建议您开始备份数据,并用新的硬盘替换硬盘或使用最新的SSD硬盘。