![如何在 Ubuntu 中纠正 HDD 中的逻辑坏扇区?](https://linux22.com/image/865963/%E5%A6%82%E4%BD%95%E5%9C%A8%20Ubuntu%20%E4%B8%AD%E7%BA%A0%E6%AD%A3%20HDD%20%E4%B8%AD%E7%9A%84%E9%80%BB%E8%BE%91%E5%9D%8F%E6%89%87%E5%8C%BA%EF%BC%9F.png)
在启动时,我发现硬盘的不同扇区存在逻辑错误。我做了研究并运行了以下命令:
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
卷运行完整操作以确保检查无误。