如何在 Ubuntu 中纠正 HDD 中的逻辑坏扇区?

如何在 Ubuntu 中纠正 HDD 中的逻辑坏扇区?

在启动时,我发现硬盘的不同扇区存在逻辑错误。我做了研究并运行了以下命令:

sudo badblocks -sv /dev/sda1 > bad-blocks-result

该命令在我的主目录中创建了一个名为“bad-blocks-result”的文件,其中包含一系列数字,我猜测这些数字是坏扇区。

下一步我应该按照什么步骤来修复我的硬盘?

答案1

对于每个坏块编号,首先用来dd验证它是否是坏的(并且你没有在某个地方犯错误):

sudo dd if=/dev/sda1 skip=##### count=1 of=/dev/null iflag=direct bs=1024

如果出现错误,那么您正在查找正确的位置...现在是时候纠正它了:

sudo dd if=/dev/zero of=/dev/sda1 seek=###### count=1 oflag=direct bs=1024

如果第二个命令没有错误,您应该能够重试第一个命令,并且现在也应该不会出错。对文件中列出的每个坏块编号重复此操作。

确保准确输入所示命令(用 #### 替换块编号)或者你可以销毁你的数据

您可能还想运行sudo smartctl -a /dev/sda以读取驱动器的 SMART 状态。值得注意的是重新分配计数和待处理的原始值。如果您修复了所有坏扇区,待处理计数将返回到零。如果它们被重新映射,重新分配计数将会增加。如果这个数字超过一小撮,您可能想要更换驱动器,因为它可能会变得更糟。如果重新分配计数没有增加,那么驱动器没有任何物理问题。

此时您还应该启动到救援模式并对fsck卷运行完整操作以确保检查无误。

相关内容