我怎么能告诉便携式驱动器忽略Linux上的坏道?

我有一个USB硬盘,它是旧的。 这是fat32格式。 它太老了,部分是失败的。 当我告诉它从某些部分读取或写入时,我的控制台上出现IO错误(我正在使用Ubuntu 9.10)。

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

我知道真正的解决办法是换一个新的驱动器,一个是订货。 但是在新的几天里,我需要给某人一个硬盘,这个(部分损坏的)是唯一的备用。 如果我得到这个工作,那会很棒。 有什么办法可以重新格式化或重新分区这个驱动器,所以我至less有一些可用的驱动器空间?

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

识别坏块并不难。 你可以使用程序badblocks来做到这一点。 让它忽略它们是一件更加棘手的事情。 如果驱动器显示坏块,则表示驱动器没有备用块。 它可能只是被丢弃,我不会把这个驱动器传递给别人。

如果你必须使用这个驱动器,那么这个驱动器有可能使驱动器恢复到一个健康的状态……但是只有当驱动器错误地标记了某些块是坏的。 Spinrite将检查驱动器上的所有块(包括标记为坏的块),如果确定标记为坏的驱动器确实是好的块,则会将其返回到可用块以释放空闲块列表中的块。 如果find足够的这些驱动器,当您运行坏块时,驱动器将显示0个坏块,并希望有一些备用块备用。

我有一台笔记本电脑,有120个坏块,在驱动器上运行sprite后,这个数字降到0。 2年后,驱动器继续工作,没有任何问题。