我不知道这是否对任何人有用,但是如果我在搜索中找到此页面,也许会对某个人(希望在几个月前解决问题的OP除外)有所帮助。
正如Dennis所建议的那样,在这种情况下,ddrescue可能是最佳的数据恢复方法(不同于原始问题的措词“修复”错误/磁盘)。
或者,您也可以挂载磁盘并复制文件。如果有很多空白空间,或者只需要某些特定文件,则速度要快得多。警告:这是在Linux机器上完成的,它会丢失所有扩展属性,例如文件权限,因此对于OS文件来说是一个非常糟糕的选择,但对于用户文件是可以接受的。从Windows执行此操作可以保留这些内容,但可能无法顺畅地处理错误,从而可能使其运行非常缓慢。
实际“修复”扇区而不只是绕过它们的另一种方法是重新分配坏扇区。如果您知道扇区号(在您的情况下为11233976,假定您在dd中的块大小为512,而扇区大小为512),只需运行此代码,然后为找到的每个新坏扇区再次运行:
hdparm –write-sector 11233976 –yes-i-know-what-i-am-doing /dev/sdb
警告:这将破坏该扇区上的数据。因此,请确保您确实知道自己在做什么。如果无法读取该扇区,则将其覆盖将停止错误,但这将意味着该扇区将包含垃圾,可能会损坏重要文件。
请参阅此以获取更多信息:http : //www.sjvs.nl/forcing-a-hard-disk-to-reallocate-bad-sectors/
并且如果您的磁盘有大量(可能成千上万个)坏扇区(被视为Current_Pending_Sector,Offline_Uncorrectable或Reallocated_Sector_Ct),或者它是新的并且仍在保修期内,或者该数目随着时间的推移持续增加,则应更换磁盘。不要让他们告诉您重新分配可以修复磁盘。它仅修复已知的坏扇区,并消耗为重新分配保留的扇区。如果磁盘容易出现更多坏扇区,则每次损坏某些数据时,问题只会不断出现。