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