以下是输出badblocks -sv /dev/sda
Checking blocks 0 to 488386583
Checking for bad blocks (read-only test): 190698244one, 31:24 elapsed. (0/0/0 errors)
190698245one, 31:29 elapsed. (1/0/0 errors)
190698246one, 31:33 elapsed. (2/0/0 errors)
190698247one, 31:37 elapsed. (3/0/0 errors)
done
Pass completed, 4 bad blocks found. (4/0/0 errors)
我应该怎么办 ?
答案1
smartctl
您还应该使用磁盘实用程序或命令行检查驱动器的 SMART 属性。由于badblocks
已识别出它发现的坏块,您现在可以尝试通过向其中写入零来修复它们:
sudo dd if=/dev/sda of=/dev/null bs=1024 count=1 skip=190698244
如果返回错误,则说明数字正确,并确认无法读取该扇区。现在尝试向其中写入零,驱动器将尝试修复它:
sudo dd if=/dev/zero of=/dev/sda bs=1024 count=1 seek=190698244
注意这两个命令之间的区别,尤其是 seek 而不是 skip。确保输入正确,否则会发生不好的事情。执行此操作后,重复第一个命令以再次读取测试扇区,这次应该不会失败。还要检查驱动器上的 SMART 统计信息。要查看的重要数字是待办的,重新分配, 和离线扇区数。如果磁盘没有物理问题,则待办的行业应该会下降,而且仍然应该为零重新分配或者离线扇区数。如果重新分配扇区数量增加,则驱动器将切换到使用该块的备用扇区,而不是损坏的区域。如果存在多个这样的扇区,或者任何离线您应该更换驱动器。