问题

问题

由于硬件问题,存在一些Input/output 错误。我的一些硬盘扇区是坏的。

# find . -name 'cpp-service.zip'
find: ‘./.cache/chromium’: Input/output error
find: ‘./.config/chromium/ShaderCache/GPUCache’: Input/output error
find: ‘./.config/chromium/Safe Browsing’: Input/output error
find: ‘./.config/chromium/Subresource Filter/Unindexed Rules’: Input/output error
find: ‘./.config/chromium/CertificateRevocation’: Input/output error
find: ‘./.config/chromium/Crowd Deny’: Input/output error
find: ‘./.config/chromium/AutofillRegex’: Input/output error
find: ‘./.config/chromium/GrShaderCache/GPUCache’: Input/output error

问题

如何将上述有Input/output错误的文件/文件夹标记为无效?我的意思是,我打算告诉文件系统完全忽略上述文件/文件夹。就好像它们不存在一样。我怎样才能做到这一点?

移动

我无法移动它们:

# mkdir ~/badblocks
# mv .cache/chromium ~/badblocks/
mv: cannot stat '.cache/chromium': Input/output error

答案1

如果您的文件系统是 Ext3 或 Ext4,您可以运行文件系统检查和坏块检查,任何坏块都将被排除在将来的使用之外:

e2fsck -c -f -k /path/to/device

-f将强制检查,-c将检查坏块(加倍以执行非破坏性写入测试而不是默认的只读测试),-k将保留任何现有的坏块信息。

从恢复环境运行它是最简单的,例如从可启动的实时系统。

请注意,存在坏块的磁盘已达到其使用寿命,不再可信。

答案2

我建议将这些文件移动到其他地方,例如移动到/badblocks或其他地方。

这样做的理由是:

  • 如果删除它们,坏块可能会被重新使用。因此,如果保留文件,则会捕获坏块。
  • 如果您将文件和/或目录移动到其他位置,则可以重新创建该目录。.cache当应用程序需要它时,其中的事情会自动发生
  • 通过将其移动到一个偏僻的目录(如 /badblocks 和 chmod 700),可以防止大多数意外访问坏块
  • 访问甚至测试旋转磁盘上的坏块会增加损坏相邻块的机会,因此将它们移开会更安全
  • 该磁盘可能出现故障;您应该专注于数据恢复而不是修复磁盘。将坏块移开可以使复制剩余文件变得更容易。

如果您的磁盘有足够多的坏块,以至于您已经用完了替换块,那么它就会发生故障,并且可能不会持续太久。想必您已经在做一些事情了。

相关内容