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

30

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

Фред Гамильтон
источник

Ответы:

29

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

hyperslug
источник
Хм, так что, видимо, вы можете использовать fsck "front-end" для некоторых общих задач, но не для всего? Например, опция -c ( superuser.com/questions/20010/… ) упоминается на справочной странице e2fsck, но на странице fsck.
Джоник
Есть ли GPT fsck?
Джонатан
@Jonathan fsck проверяет файловые системы, а GPT - сама таблица разделов. Вероятно, есть инструмент, который может это проверить, но я не могу вспомнить ни одного из них, кроме дисковой утилиты Mac (или командной строки diskutil). У gptкоманды есть опция «восстановить из резервной копии», по крайней мере, на Mac.
Серебряный Волк - Восстановить Монику
15

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

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

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

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

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

Нагул
источник
5

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

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

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

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

  • fsck
  • e2fsck

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

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

Пол Руане
источник
Спасибо за более длинное объяснение, потому что после прочтения ответа @hyperslug я уже ощущал сердечный приступ :-) У меня есть файловая система ext3, и я запустил e2fsck.
Гринольдман
Теперь ни одна из них не является символической ссылкой, но инструменты e2fsck и fsck.ext2 / 3/4 имеют один и тот же индекс, поэтому фактически являются одним и тем же файлом (Возможно, этот двоичный файл будет запрашивать собственное имя при запуске и вести себя по-разному для имени, с которым он вызывается, но я сомневаюсь, что это так.) - Почему бы и нет - это особенно * nix-ish способ делать вещи и может быть на самом деле!
SlySven
Эти альтернативные имена на самом деле являются примерами менее заметных жестких ссылок (большинство людей знакомы с символическими ссылками, но их более крепкий брат также использует их, хотя они ограничены тем же устройством .)
SlySven