启动时提示错误,并显示“磁盘有几个坏扇区”

启动时提示错误,并显示“磁盘有几个坏扇区”

我正在双启动 Ubuntu 12.04 和 Windows 8。今天早些时候,由于一些输入问题重新启动后,我开始在从 GRUB 选择 Ubuntu 时收到消息,“检查磁盘驱动器中的 / 时发现错误”。我选择忽略它,Ubuntu 正常加载。检查磁盘实用程序工具时,我看到 SMART 状态“磁盘有几个坏扇区”。检查具体信息时,我收到“当前待处理扇区数”的警告。这是什么意思?我应该允许自动尝试修复该问题吗?我之前因为与 Windows 8 和 UEFI 冲突而允许自动修复运行,从而遇到了进一步的麻烦,但我不知道这和这个问题之间是否有任何关联。我无法想象这是由于物理硬盘损坏造成的,因为它是非常新的硬件。感谢任何可以解释它的人。

答案1

有时突然断电会导致某个扇区被报告为坏扇区,因为它没有完全写入。您可以运行sudo smartctl -t long /dev/sda以要求驱动器进行自我测试。每隔一段时间使用检查状态sudo smartctl -a /dev/sda,当发现坏扇区时,记下扇区编号,然后执行以下操作:

sudo dd iflag=direct if=/dev/sda count=1 skip=sector of=/dev/null

这应该报告 IO 错误,如果没有,那么就有问题并且您不应该继续。

sudo dd if=/dev/zero count=1 oflag=direct of=/dev/sda seek=sector

这将尝试用零重写该扇区。这应该会成功,SMART 待处理扇区数应该会减少 1。如果扇区物理损坏,则 reallocated_count 将增加 1。重复此过程,直到没有更多待处理扇区,如果也没有重新分配的扇区,则只是突然断电,驱动器没有问题。如果确实有重新分配的扇区,则驱动器可能即将出故障,您应该更换它。

答案2

这个问题有几个重复的,例如:

不幸的是,答案各不相同。我个人的看法是,一旦坏扇区开始出现在 SMART 测试中,磁盘就变得不可靠了。因此我建议尽快更换它。

答案3

按照psusi的建议,我成功清除了我的“坏扇区”。

对于初学者来说更多详细信息:

 sudo smartctl -t long /dev/sda
 sudo smartctl -a /dev/sda 

我获得了:

 196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -     0
 197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       1

 (...)

 # 1  Extended offline    Completed: read failure       90%     47004         2730908512

 sudo dd iflag=direct if=/dev/sda count=1 skip=2730908512 of=/dev/null

给了我一个错误,但是:

 sudo dd if=/dev/zero count=1 oflag=direct of=/dev/sda seek=2730908512

成功了

 sudo smartctl -a /dev/sda 

没有给我更多错误:

 196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -     0
 197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       0

所以,非常感谢 psusi 的回复,多年后它仍然有用 :-)

亲切的问候,

財政委

相关内容