Библиотека EXT2fs

Для упрощения использования ресурсов EXT2fs и оперирования контрольными структурами этой файловой системы была разработана библиотека libext2fs. В ней содержатся функции, которые могут применяться для определения и модификации данных файловой системы EXT2 через прямой доступ к физическому устройству.

Большинство инструментов EXT2fs (таких как mke2fs, e2fsck, tune2fs, dumpe2fs, debugfs и другие) активно используют эту библиотеку. Это значительно упрощает модификацию этих инструментов. Все изменения для добавления новых функций в файловую систему EXT2fs нужно реализовать исключительно в библиотеке EXT2fs.

Благодаря широкому и абстрактному интерфейсу библиотеки EXT2fs, с её помощью можно легко создать программы, которым требуется прямой доступ к файловой системе. Например, библиотека EXT2fs использовалась при портировании дампа 4.4 BSD и восстановлении некоторых утилит. Потребовалось лишь минимальные изменения для их адаптации под Linux, заменив несколько функций, взаимодействующих с файловой системой, на вызовы в библиотеку EXT2fs.

Библиотека EXT2fs предоставляет функции для работы с различными классами операций. Первый класс - это операции, связанные с файловой системой в целом. Любая программа может открыть или закрыть файловую систему, прочитать или изменить блок битов, создать новую файловую систему на диске. Также доступны функции для работы со списком плохих блоков файловой системы.

Второй класс операций связан с каталогами. Программа, использующая библиотеку EXT2fs, может создать или расширить каталог, а также добавить или удалить записи в каталоге. Существуют функции как для определения пути к файлу по индексному дескриптору, так и наоборот.

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