27

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

3 ответа3

27

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

15

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

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

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

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

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

2

В моей системе у меня есть:

  • fsck
  • fsck.ext2
  • fsck.ext3
  • fsck.ext4
  • e2fsck
  • ... (больше fsck.* инструментов для других, не ext файловых систем)

Теперь ни одна из них не является символической ссылкой, но инструменты e2fsck и fsck.ext2/3/4 имеют один и тот же индекс, поэтому фактически являются одним и тем же файлом. (Возможно, этот двоичный файл будет запрашивать собственное имя при запуске и вести себя по-разному для имени, с которым он вызывается, но я сомневаюсь, что это так.)

Итак, теперь у нас осталось всего два инструмента:

  • fsck
  • e2fsck

И, как уже говорили другие, fsck - это просто интерфейс, вызывающий соответствующий инструмент для рассматриваемой файловой системы, который в данном случае является e2fsck для файловой системы ext семейства.

Я предполагаю, что причина наличия различных файлов fsck.ext2/3/4 заключается в том, что 1. легко написать сценарии, которые могут обрабатывать все типы файловых систем в общем (они могут легко определить имя инструмента fsck из типа файловой системы) и 2. для гибкости, чтобы было легко разделить e2fsck на два или более независимых инструмента при необходимости в будущем.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .