我有一个使用 mdadm 和 ext4 作为文件系统的 RAID 5 阵列。我们遇到了一次强电涌,其中一个驱动器出现故障,而另一个驱动器有点不稳定,又名“死亡点击”。
我逐个更换了磁盘,首先更换损坏的磁盘,然后重新同步,然后用干净的磁盘更换有问题的磁盘,然后重新同步。现在我有一个完整的 RAID 5(3 个驱动器 + 1 个奇偶校验驱动器),运行良好。
我的问题是,在重新同步期间,有问题的驱动器上的某些扇区可能出现故障,现在我有一些错误的 inode。以下是我在 /var/log/messages (gentoo) 中得到的示例:
Aug 16 14:16:13 shiva kernel: EXT4-fs error (device md127): ext4_lookup: deleted inode referenced: 270795020
大多数文件都运行良好,只有大约 12 个这样的 inode 出现故障,并且它所对应的文件似乎大多是彼此相邻的非常小的文件(阵列大约 4 TB 大)。
我现在的问题是我想清理我的磁盘,但我不知道该怎么做,启动时告诉我运行 fsck,但我不知道它到底是做什么的,而且我在网上读到的很多东西让我有点害怕:)
考虑到:
- 硬件问题已 100% 解决
- 大部分文件系统运行良好,只有十几个 inode 有问题
- 我想“修复”文件系统以使其恢复正常
- 我可以接受丢失几个失败的文件(尽管如果可能的话我想知道是哪一个)
- 再次,系统启动/挂载正常,几乎每个文件都正常工作,失败的文件总是几个相同的
我是否应该在驱动器上运行 fsck 来执行此操作?我会冒失去一切的风险吗?
我知道最好的办法是备份然后重做,但是我刚刚买了 2 个新硬盘,现在我负担不起 3TB 的备份...我正在努力收拾残局。
答案1
是的,运行fsck
将完全按照您的意愿运行。当然,任何事情都可能发生,包括陨石落在您的计算机上并摧毁您的所有磁盘;但如果有什么事情发生,运行fsck
比继续使用有错误的文件系统更安全。
我建议从救援 CD(或 USB 笔式驱动器)启动并fsck
从那里运行。如果您感到不安,可以先运行fsck -n
,它不会写入文件系统,只会告诉您它发现了什么错误。