我如何让我的磁盘取消映射等待不可读的字段

据smartd说,我有一个磁盘,其中包含一些待处理的不可读字段。 什么肯定是最方便的方法使磁盘重新映射它们,并停止聪明的抱怨?

今天,我每小时得到2个:

Sep 10 23:15:35 hylton smartd[3353]: Device: /dev/sdc, 1 Currently unreadable (pending) sectors

该系统是运行Ubuntu Linux 9.10(jaunty)的x86系统。 磁盘成为LVM团队的一部分。 这就是smartctl识别磁盘的方式:

Model Family:     Western Digital Caviar Second Generation Serial ATA family
Device Model:     WDC WD5000AAKS-00TMA0
Serial Number:    WD-WCAPW4207483
Firmware Version: 12.01C01
User Capacity:    500,107,862,016 bytes
0
2019-05-04 23:11:45
资源 分享
答案: 3

使用可从西部数据网站轻松获得的Data Lifeguard Diagnostic for DOS(可引导CD)软件程序

0
2019-05-08 14:41:26
资源

挂起的不可读字段是返回读取错误的字段,并且驱动器实际上已注意到在第一个可行的可能性时重新映射。 尽管如此,它不能重新映射,直到任何一点发生:

  1. 该领域有效重读
  2. 该领域已经修订

在那之后,该领域继续悬而未决。 所以你有2个等价的方法来管理这个:

  1. 继续尝试越过田野,直到你做得好
  2. 用新信息覆盖该字段

显然,(1)是非破坏性的,所以你需要先尝试它,但要记住,如果驱动器开始在一个重要的手段开始不足之后,从负位置的持续分析最有可能使它不足更加迅速。 如果您有大量待定字段以及其他各种错误,并且您也尊重驱动器上的信息,我建议将其从解决方案中删除,并使用精湛的设备ddrescue来尽可能多地收集信息。 之后扔掉了驱动器。

如果相关领域有你未提交的信息,或者可以从备份中恢复,那么在覆盖之后它可能是最快速也是最基本的补救措施。 你可以在那之后看到重新分配的和未决的事情,驱动器看到它的领域得到了照顾。

您如何弄清楚该字段在文件系统中的含义? 我找到了一篇精彩的文章 了smartmontools 互联网站点,这里,虽然它相当技术,并且还指定了ext2 / 3/4以及reiser文档系统。

我在自己的(Mac)驱动器中使用的一种不太复杂的策略是利用find / -xdev -type f -print0 | xargs -0 ...来读取系统上的每个文档。 在运行之前删除待处理的问题。 如果该字段位于文档中,您肯定会从您使用的设备中获取错误消息来读取文件(例如md5sum),向您显示该过程。 之后,您可以将注意力集中在重新分析这些文档上,直到它有效地进行审核。 通常这肯定会解决这个问题,如果它是偶尔使用的文件,只需要经过几次。 如果错误消失,或者您在审查所有文件时没有遇到任何错误,请检查待处理的事项以查看它是否已降低。 如果有,通过分析解决了麻烦。

如果在此之后多次拍摄(例如20)之后文档无法有效读取,则需要覆盖文档或文档中的块,以允许驱动器重新分配字段。 你可以在文档上使用ddrescue(而不是分割)来简单地覆盖一个字段,复制到一个短期文档,然后再复制一次。 请记住,现在简单地删除文档是一个负面的建议,因为负面字段肯定会进入免费清单,在那里找到它肯定会更难。 完全覆盖它也行为不端,因为这些领域肯定会再次进入免费清单。 您需要修改现有块。 notrunc替代dd是执行此操作的一种方法。

如果您没有遇到任何错误,并且待处理事项也没有减少,那么该字段必须保留在空闲列表或部分文件系统框架(例如inode表)中。 您可以尝试使用cat /dev/zero >tempfile填写所有真空,然后检查待处理的事项。 如果它下降,问题仍然存在于免费清单中,并且实际上目前已经消失了。

如果该字段仍然存在于框架中,则会产生额外的重大问题,并且您可能只是漫无目的地漫游目录站点树。 在这种情况下,我假设唯一合理的补救措施是重新格式化驱动器,另外如果必要,还可以使用ddrescue来重新获取信息。

保持密切关注驱动器。 现场重新分配是一个很棒的煤矿中的金丝雀,可能会提前告知您的驱动器不足。 通过非常早期的活动,您可以防止后来的悲惨和非常难以忍受的滑坡。 我不建议几个现场重新分配是你需要扔掉驱动器的标志。 所有现代驱动器都需要进行一些重新分配。 尽管如此,如果驱动器不是较旧(<1年)或者您在此之后获得不断的新重新分配(> 1 /月),我建议您尽快更改它。

我没有经验证据证实它,但我的经验建议通过偶尔查看整个磁盘,通过原始磁盘的dd或查看使用find的每个文档来降低磁盘故障。 大多数情况下,我在过去多年中遇到的所有磁盘问题实际上都是首先出现在几乎没有使用过的文件或者没有使用太多的设备上。 启发式启发也很有道理,因为如果一个字段经常消失,驱动器有机会在首次识别该字段的小故障时重新分配它,而不是等到字段完全不可读。 驱动器很容易对字段执行任何操作,除非主机以某种方式访问​​它,通过查看或创建它或在SMART检查中执行。

我当然会尝试每晚或每周一次的cron工作来检查整个磁盘。 现在我正在使用一个“贫民窟的RAID”,其中我在设备中有第二个磁盘驱动器,并且我每天晚上都备份主磁盘。 不知何故,这实际上远比RAID匹配好得多,因为如果我傻逼并且也偶然删除文件我可以从备份磁盘快速获得前一天的版本。 另一方面,我认为硬件RAID控制器可以在幕后检查,报告并处理出现的磁盘问题。 我现有的备份手稿利用rsync来避免复制尚未转换的信息,但是因为要求遍及所有领域可能会复制每一件小事,或者有不同的手稿。每周检查整个原始磁盘。

0
2019-05-08 13:41:24
资源
  1. 备份您的信息
  2. 从LVM团队中删除此工具
  3. dd if=/dev/zero of=/dev/sdc bs=4k - - 这肯定会 摆脱所有信息 /dev/sdc
  4. 再次将其包含在LVM团队中
  5. 恢复你的备份
0
2019-05-08 05:39:26
资源