我如何告诉便携式驱动器忽略 Linux 上的坏扇区?

我如何告诉便携式驱动器忽略 Linux 上的坏扇区?

我有一个 USB 硬盘,很旧了。它是 fat32 格式的。它太旧了,以至于部分硬盘出现故障。当我告诉它从某个部分读取或写入时,我的控制台上会出现 IO 错误(我使用的是 Ubuntu 9.10)。

是否有可以运行的程序可以扫描驱动器中的坏部分,然后“删除”它们?我愿意为此花费几 GB 的空间(这是一个 160GB 的驱动器)。驱动器上没有我关心的东西,它最近被重新格式化了。它目前格式化为 fat32,但它只能插入 Linux 机器,所以我愿意尝试 ext3 或其他 Linux 文件系统。这个驱动器最近被重新格式化了,同样的事情发生了。

我知道真正的解决方案是购买一个新驱动器,而且我已订购了一个。但是,我需要在几天内将一个硬盘送给某人,而这个(部分损坏的)硬盘是唯一的备用硬盘。如果我能让它正常工作,那就太好了。有没有什么方法可以重新格式化或重新分区这个驱动器,以便我至少有一些可用的驱动器空间?

答案1

虽然这个问题可能属于超级用户。

识别坏块并不难。您可以使用程序badblocks来完成。让它忽略它们是一个更困难的事情。如果驱动器显示坏块,则意味着驱动器没有备用块。它可能应该被丢弃,我不会把那个驱动器交给别人。

如果您必须使用此驱动器,spinrite 可能会让驱动器恢复健康状态……但前提是驱动器错误地将某些块标记为坏块。Spinrite 将检查驱动器上的所有块,包括标记为坏块的块,如果它确定驱动器标记为坏块的块实际上是好的,它会将其返回到可用块,从而释放备用块列表中的块。如果它找到足够多的块,当您运行 badblocks 时,驱动器将显示 0 个坏块,并希望有一些备用块可用。

我有一台笔记本电脑,有 120 个坏块,在驱动器上运行 spinrite 后,坏块数量降至 0。两年后的今天,驱动器仍可继续正常工作,没有任何问题。

相关内容