e2fsck 和 fsck 之间有什么区别,我应该使用哪一个?

e2fsck 和 fsck 之间有什么区别,我应该使用哪一个?

运行 dmesg 时收到此错误消息

EXT3-fs (sdd1): using internal journal
EXT3-fs (sdd1): mounted filesystem with ordered data mode
EXT4-fs (sda1): warning: mounting fs with errors, running e2fsck is recommended
EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts:
EXT4-fs (sdb1): warning: maximal mount count reached, running e2fsck is recommended
EXT4-fs (sdb1): mounted filesystem with ordered data mode. Opts:
EXT4-fs (sdc1): warning: maximal mount count reached, running e2fsck is recommended
EXT4-fs (sdc1): mounted filesystem with ordered data mode. Opts:
Adding 4194296k swap on /dev/sdd2.  Priority:-1 extents:1 across:4194296k SSD
kjournald starting.  Commit interval 5 seconds
EXT3-fs (loop0): warning: maximal mount count reached, running e2fsck is recommended
EXT3-fs (loop0): using internal journal

sdd 似乎运行良好。这是主分区。 sda 到 sdc 不起作用。我应该卸载并进行 fsck 吗?但我应该使用哪个 fsck? e2fsck? e4fsck?哪一个?我这里用的是ext4。

我不知道loop0是什么。

看来系统设置得相当糟糕。 EXT3-fs (loop0):以有序数据模式挂载的文件系统

我听说我可以执行 shutdown -rf 。有人已经这么做了。系统已恢复在线,但我仍然收到此消息。是什么赋予了?

答案1

fsck是该工具的原始名称。当新的文件系统出现时,他们需要针对每种文件系统的特定工具。因此,fsck它仅充当前端,并调用适当的文件系统 *fsck 来执行其自身无法执行的操作。

摘自 fsck 手册页

fs 特定选项

    Options which are not understood by fsck are passed to the 
    filesystem-specific checker.  These arguments must  not
    take  arguments,  as  there is no way for fsck to be able to 
    properly guess which arguments take options and which don't.

    Options and arguments which follow the -- are treated as file 
    system-specific options to be  passed  to  the  file
    system-specific checker.

    Please note that fsck is not designed to pass arbitrarily 
    complicated options to filesystem-specific checkers.  If
    you're doing something complicated, please just execute the 
    filesystem-specific checker  directly.   If  you  pass
    fsck  some horribly complicated option and arguments, and it 
    doesn't do what you expect, don't bother reporting it
    as a bug.  You're almost certainly doing something that you 
    shouldn't be doing with fsck.

大多数正常操作只需通过 即可处理fsck

其他工具?

快速查看我的 Fedora 14 系统会显示以下 fsck* 工具:

$ fsck
fsck          fsck.ext2     fsck.ext4     fsck.msdos    fsck.vfat     
fsck.cramfs   fsck.ext3     fsck.ext4dev  fsck.ntfs     fsck.xfs

locate命令显示更多内容:

$ locate fsck|grep "^/sbin"
/sbin/dosfsck
/sbin/e2fsck
/sbin/fsck
/sbin/fsck.cramfs
/sbin/fsck.ext2
/sbin/fsck.ext3
/sbin/fsck.ext4
/sbin/fsck.ext4dev
/sbin/fsck.msdos
/sbin/fsck.ntfs
/sbin/fsck.vfat
/sbin/fsck.xfs

在这两个列表中,您可以看到几乎每种文件系统类型都有自己的 fsck* 工具。其中一些工具是多用途的,例如dos2fsck

$ ls -l /sbin/|grep fsck | grep dos
-rwxr-xr-x  1 root root   54424 Apr  5  2011 dosfsck
lrwxrwxrwx  1 root root       7 Aug  3  2011 fsck.msdos -> dosfsck
lrwxrwxrwx  1 root root       7 Aug  3  2011 fsck.vfat -> dosfsck

参考

相关内容