如何解决当前待处理的扇区数


8

从SMART数据中可以看出,我有3个待处理的扇区数。(正在运行Ubuntu Maverick。)

我试着按照论坛上有关如何解决该问题的链接进行操作,但是我无法确定要写入该扇区的确切扇区数。我已经从“磁盘工具”中运行了完整的自我测试,但是“磁盘工具”在Maverick中没有显示确切的扇区号,尽管不确定早期版本。小牛的情况有变化吗?

我如何识别部门并解决未决计数?论坛中的提示安全吗?

PS:我确实对“重新分配的部门数”还有其他问题,这是我无法解决的。是否有什么方法可以防止它上升?


1
SMART数据的屏幕截图:foopics.com/showfull/e20ea820cbed11ae2d99e13a9fe642d1 Hrm .. !!PS:需要为新用户提供一个以上的超链接或至少一个图像链接:-/
— Vish

您是否进行了“长期”测试?
— TJ L 2010年

1
是的,我尝试了“扩展”,但是我没有报告部门编号。还是在运行测试后我找不到合适的位置?
— Vish

Answers:


7

这实际上是一个很长的评论;-)

IMO文件系统应在适当的时候自动进行处理,特别是因为您已经运行了自检。如您所见,它指出在发生写入失败时重新映射已完成,因此下次尝试写入时将重新映射。

您能否说明这样做的更大目的?除了担心需要重新映射的块外,您是否要通过此方法解决其他烦恼/问题?

只要您确切知道哪个扇区已损坏并有令人信服的理由加以修复,您引用的ubuntuforums帖子中的提示就是安全的。通常,即使文件检查程序也不会报告扇区号,因为它是文件系统在内部进行抽象和处理的。

但是,如果您必须找到有问题的坏块,则可以使用以下步骤:

  1. 注意与文件系统相对应的设备文件。根据磁盘类型,其格式为/ dev / hdc或/ dev / sdb。它显示在磁盘工具(System -> Administration -> Disk Utility)中。如果单击左侧面板中显示的列表中的磁盘名称,则可以通过右侧的“ Device:”读取设备名称。

  2. 卸载该磁盘中的所有文件系统。以下命令应不返回任何输出。

    mount | grep -i <device-name>
    
  3. 运行以下命令

    badblocks -sv -b 512 <device-name>
    

    注意的-b 512是使块大小为512,所以你可以使用数字报告这个命令的输入dd作为解释的论坛帖子

我不建议您使用上述所有方法,因为正常的磁盘操作还是可以解决上述问题。


1
感谢您的详细回答。这三个挂起的扇区已经存在了很长时间,将近六个月,这就是我要修复这些挂起的扇区的原因。这些扇区位于我的主/ home分区中,我该如何在线进行此操作?您提到卸载所有分区,我应该从活动CD上执行此操作吗?
— Vish

由于它是安装的主分区,因此您确实希望从livecd进行上述步骤。确保确保已卸载磁盘上的所有分区(包括交换掉所有交换分区)。
— koushik

太奇怪了,我在ext4上待处理的时间将近6个月,但是当我用brtfs重新安装时,它的确消失了。因此,我很担心。根据您的建议,我考虑了等待几周后再做某事。现在突然他们都消失了!所以我想等待是最好的。:-)似乎可以使用btrfs更快地解决问题。
— Vish

1

更糟糕的情况是,您始终可以执行以下操作:卸载磁盘或阵列并停止任何阵列。

dd if=/dev/sdX of=/dev/sdX iflag=direct,sync oflag=direct,sync

这将花费很长时间,但应该可以。

理想情况下,您可以查询硬盘驱动器缺陷列表(glist),但我还没有弄清楚该怎么做。


1

看来该conv=noerror选项有帮助。当出现I / O错误时,此选项将强制dd重试,直到完成读/写。我使用以下命令为badblocks命令找到的每个坏块创建了一个源文件(上面的Kaushik给出),并将“当前待处理扇区数”(“等待重映射”)从5清除为零。

sudo dd bs=512 count=1 conv=noerror ibs=512 obs=512 if=/dev/sda of=/dev/sda iflag=direct,sync oflag=direct,sync skip=3186809 seek=3186809

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.