linux磁盘错误检查工具fsck和e2fsck有什么区别?
答案1
fsck 只是原始名称。当他们推出新的文件系统时,他们需要为每种文件系统配备特定的工具,efsck 用于 ext,e2fsck 用于 ext2,dosfsck,fsckvfat。因此,他们将 fsck 设为前端,只需调用合适的工具即可。
答案2
文件系统检查是文件系统特定的fsck.*系列工具。它们可以互换使用,但有一个注意事项(来自 fsck 手册页):
fsck 无法理解的选项将被传递给特定于文件系统的检查器。 这些参数不能带有参数,因为 fsck 无法正确猜测哪些参数带有选项、哪些参数不带有选项。
-- 后面的选项和参数将被视为文件系统特定的选项,并传递给文件系统特定的检查器。
请注意,fsck 并非设计用于将任意复杂的选项传递给特定于文件系统的检查器。 如果您正在做一些复杂的事情,请直接执行特定于文件系统的检查器。 如果您向 fsck 传递了一些非常复杂的选项和参数,而它却没有按预期执行,请不要费心将其报告为错误。您几乎肯定在用 fsck 做了一些不该做的事情。
但是,fsck 将处理文件系统上的大多数正常操作。
答案3
在我的系统上我有:
fsck
fsck.ext2
fsck.ext3
fsck.ext4
e2fsck
- ...(更多
fsck.*
适用于其他非 ext 文件系统的工具)
现在这些都不是符号链接,但e2fsck
所有fsck.ext2/3/4
工具都共享相同的 inode,因此实际上是同一个文件。(这个二进制文件在运行时可能会询问自己的名称,并且根据调用它的名称而表现不同,但我怀疑情况并非如此。)
所以我们现在只剩下两个工具了:
fsck
e2fsck
而且,正如其他人所说的那样,fsck
它只是一个前端,可以调用相应文件系统的适当工具,在本例中是e2fsck
针对 ext 系列文件系统。
我推测拥有各种文件的原因fsck.ext2/3/4
是:1. 可以轻松编写可以通用处理所有文件系统类型的脚本(它们可以从文件系统类型中轻松推断出 fsck 工具名称);2. 为了灵活性,以便在将来需要时可以轻松地将 e2fsck 拆分为两个或多个独立的工具。