В чем разница между fsck и e2fsck?

33046
Fred Hamilton

В чем разница между инструментами проверки ошибок на Linux-дисках fsck и e2fsck?

26

3 ответа на вопрос

26
hyperslug

fsck это просто оригинальное имя. Когда они выпустят новые файловые системы, им понадобится специальный инструмент для каждой из них: efsck для ext, e2fsck для ext2, dosfsck, fsckvfat. Таким образом, они сделали fsck интерфейсом, который просто вызывает соответствующий инструмент.

Хм, так что, видимо, вы можете использовать fsck "front-end" для некоторых общих задач, но не для всего? Например, опция -c (http://superuser.com/questions/20010/fsck-options-for-most-thorough-disk-check/20040#20040) упоминается на справочной странице e2fsck, но на странице fsck. Jonik 15 лет назад 0
Есть ли GPT fsck? Jonathan 6 лет назад 0
15
nagul

fsck - это оболочка для семейства инструментов fsck. * для файловой системы . Их можно использовать взаимозаменяемо с одним предупреждением (из справочной страницы fsck):

Опции, которые не понятны для fsck, передаются в средство проверки файловой системы. Эти аргументы не должны принимать аргументы, так как fsck не может правильно угадать, какие аргументы имеют параметры, а какие нет.

Опции и аргументы, следующие за - обрабатываются как специфичные для файловой системы опции, которые передаются в специфичную для файловой системы проверку.

Обратите внимание, что fsck не предназначен для передачи произвольно сложных опций в специфичные для файловой системы средства проверки. Если вы делаете что-то сложное, просто запустите проверку файловой системы напрямую. Если вы передаете fsck какой-то ужасно сложный параметр и аргументы, и он не делает то, что вы ожидаете, не стесняйтесь сообщать об этом как об ошибке. Вы почти наверняка делаете то, что не должны делать с fsck.

Тем не менее, fsck будет обрабатывать большинство обычных операций в файловой системе.

2
Paul Ruane

On my system I have:

  • fsck
  • fsck.ext2
  • fsck.ext3
  • fsck.ext4
  • e2fsck
  • ... (more fsck.* tools for other, non-ext filesystems)

Now none of these are symbolic links but e2fsck and the fsck.ext2/3/4 tools all share the same inode so are actually the same file. (It is possible that this binary will interrogate its own name when it is run and behave differently for the name it is invoked with, but I doubt this is the case.)

So we're now down to just two tools:

  • fsck
  • e2fsck

And, as others have said, fsck is simply a front end that calls the appropriate tool for the filesystem in question, which in this case is e2fsck for an ext family filesystem.

I presume the reason for having the various fsck.ext2/3/4 files is so that 1. it's easy to write scripts that can handle all filesystem types generically (they can deduced the fsck tool name trivially from the filesystem type) and 2. for flexibility, so that it's trivial to split the e2fsck into two or more independent tools if necessary in the future.

Спасибо за более длинное объяснение, потому что после прочтения ответа @hyperslug я уже ощущал сердечный приступ :-) У меня есть файловая система ext3, и я запустил e2fsck. greenoldman 8 лет назад 0

Похожие вопросы