如何对ext4文件系统结构进行全面检查?


25

我有2TB ext4分区,上面有50万个文件。
我要检查此分区是否包含任何错误。
我不想搜索坏块,仅应检查逻辑结构。

我已经卸载了分区并运行fsck /dev/sda2,但是fsck立即返回退出代码0,而没有实际检查整个文件系统。
我预计完整分区检查将需要几个小时才能完成。
我已阅读man fsck但未找到“全面测试”的选项。

恐怕我的分区可能有一些扇区被垃圾数据意外覆盖。
我的HDD先前已连接到另一个操作系统,该操作系统的错误行为可能会损坏ext4分区。
这就是为什么我要确保整个树结构完全正确。

换句话说,我想执行类似于chkdsk.exeWindows上的实用程序的检查。
我应该在Debian上使用什么来完全检查ext4文件系统?


2
@SatoKatsura-谢谢!我只是想知道为什么e2fsck -f检查这么快-只需要几秒钟?与Windows行为相比(这需要几个小时),这真是太神奇了。
Egor Skriptunoff

Answers:


27

SatōKatsura所述e2fsck以“强制”模式运行:

e2fsck -f /dev/sda2

即使系统认为文件系统是干净的,这也将强制执行检查。“详细”选项也很有帮助:

e2fsck -vf /dev/sda2

附带说明,这不适用于您的情况,但是如果您使用LVM进行存储,则可以使用整洁的小lvcheck工具在已挂载的文件系统上运行“脱机”文件系统检查(它使用LVM快照和更新文件系统元数据(如果检查未发现任何错误)。


7

另外,您可以添加-y标志以避免回答问题。

从手册

-y 回答yes所有问题;允许e2fsck非交互式使用。

因此,扩展@Sato的答案(因为我目前无法发表评论)-您可以运行:

e2fsck -vfy /dev/sda2

6
但是,这样做可能会很冒险,因为您不事先知道可能会问什么,在最坏的情况下,对所有问题强制回答“是”可能会导致丢失本来可以恢复的数据。
Alex

0

您还可以通过以下方式以只读模式检查活动文件系统:

e2fsck -vfn /dev/sda2

来自e2fsck帮助:“但是,即使这样做是安全的,如果挂载了文件系统,e2fsck打印的结果也无效。” 不确定目的是什么,例如检查...:/
joaerl
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.