Jakub Troszok Asked: 2009-06-08 01:16:17 +0800 CST2009-06-08 01:16:17 +0800 CST 2009-06-08 01:16:17 +0800 CST 慢速 ext4 fsck 772 为什么 fsck 在 ext4 文件系统上这么慢?我一直在使用 reiserfs 或 xfs,在这些系统中 fsck 非常快,只需几秒钟。现在我决定试一试 ext4,但我很失望每次系统必须 fsck 我的 homedir 都需要很长时间(在我的 250GB 主分区上可能需要 25 分钟,它已满 85%)。也许是因为它是从 ext3 转换而来的? fsck ext4 4 个回答 Voted jldugger 2009-06-08T10:24:54+08:002009-06-08T10:24:54+08:00 来自 ext3 的转换不会充分利用范围。它只是升级 inode 并将它们保留为大小为 1 的范围。如果您通过 tar 之类的程序运行文件,您可能可以获得更好的压缩范围文件。 您如何从 ext3 转换为 ext4 也很重要;不同的选项具有不同的功能,可能会影响 fsck 时间。此外,我认为完整的驱动器将需要更长的时间来 fsck;毕竟,您正在检查大约 200GB 的数据,并且可能是 inode 占用的大小的三倍。 您可能会做的是向构建您正在使用的内核的发行版或直接向内核 bugzilla 提交错误。毕竟,这是上游有兴趣诊断和修复的那种行为。 knweiss 2009-06-09T13:21:08+08:002009-06-09T13:21:08+08:00 使用附加选项“ -O extent,uninit_bg”重新创建文件系统将改善您的 ext4 fsck 时间。 “extent”将减少大文件的元数据开销 "uninit_bg" 将创建一个 fs 而不初始化所有块组。这将改进 mkfs 和 fsck,因为要检查的元数据较少(至少只要您的 fs 未满)。 Denilson Sá Maia 2009-09-13T10:57:01+08:002009-09-13T10:57:01+08:00 我的 400GB ext3 分区在 fsck 期间也需要很长时间。此外,随着卷变大,fsck 将花费太长时间。引用这篇文章: 1 EB(Exabyte)在很长一段时间内将是绰绰有余的存储空间——实际上,在这种大小的文件系统上运行完整的 e2fsck 将(在当前硬件上)需要 100 多年。 所以,我真的希望文件系统和它们的工具能很快变得更好,否则在它们上运行 fsck 将是不可行的。 Mike O'Donnell 2015-03-20T13:31:12+08:002015-03-20T13:31:12+08:00 我在我的 2TB RAID1 ext4 USB 安装的 LaCie 磁盘上运行fsck -V -y 了两次。在每种情况下,该过程都运行了 24 小时,有明显的进展,但没有完成。在每种情况下,我都终止了该进程并运行fsck -V -C -y它在几分钟内完成。参数-C只是应该提供一个进度条,但它似乎也取消了一些巨大的时间浪费。
来自 ext3 的转换不会充分利用范围。它只是升级 inode 并将它们保留为大小为 1 的范围。如果您通过 tar 之类的程序运行文件,您可能可以获得更好的压缩范围文件。
您如何从 ext3 转换为 ext4 也很重要;不同的选项具有不同的功能,可能会影响 fsck 时间。此外,我认为完整的驱动器将需要更长的时间来 fsck;毕竟,您正在检查大约 200GB 的数据,并且可能是 inode 占用的大小的三倍。
您可能会做的是向构建您正在使用的内核的发行版或直接向内核 bugzilla 提交错误。毕竟,这是上游有兴趣诊断和修复的那种行为。
使用附加选项“
-O extent,uninit_bg
”重新创建文件系统将改善您的 ext4 fsck 时间。我的 400GB ext3 分区在 fsck 期间也需要很长时间。此外,随着卷变大,fsck 将花费太长时间。引用这篇文章:
所以,我真的希望文件系统和它们的工具能很快变得更好,否则在它们上运行 fsck 将是不可行的。
我在我的 2TB RAID1 ext4 USB 安装的 LaCie 磁盘上运行
fsck -V -y
了两次。在每种情况下,该过程都运行了 24 小时,有明显的进展,但没有完成。在每种情况下,我都终止了该进程并运行fsck -V -C -y
它在几分钟内完成。参数-C
只是应该提供一个进度条,但它似乎也取消了一些巨大的时间浪费。