В чем разница между инструментами проверки ошибок на Linux-дисках fsck и e2fsck?
3 ответа
fsck это просто оригинальное имя. Когда они выпустят новые файловые системы, им понадобится специальный инструмент для каждой из них: efsck для ext, e2fsck для ext2, dosfsck, fsckvfat. Таким образом, они сделали fsck интерфейсом, который просто вызывает соответствующий инструмент.
fsck - это оболочка для семейства инструментов fsck. * для файловой системы. Их можно использовать взаимозаменяемо с одним предупреждением (из справочной страницы fsck):
Опции, которые не понятны для fsck, передаются в средство проверки файловой системы. Эти аргументы не должны принимать аргументы, так как fsck не может правильно угадать, какие аргументы имеют параметры, а какие нет.
Опции и аргументы, следующие за - обрабатываются как специфичные для файловой системы опции, которые передаются в специфичную для файловой системы проверку.
Обратите внимание, что fsck не предназначен для передачи произвольно сложных опций в специфичные для файловой системы средства проверки. Если вы делаете что-то сложное, просто запустите проверку файловой системы напрямую. Если вы передаете fsck какой-то ужасно сложный параметр и аргументы, и он не делает то, что вы ожидаете, не стесняйтесь сообщать об этом как об ошибке. Вы почти наверняка делаете то, что не должны делать с fsck.
Тем не менее, fsck будет обрабатывать большинство обычных операций в файловой системе.
В моей системе у меня есть:
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 на два или более независимых инструмента при необходимости в будущем.