ext4 (fourth extended filesystem) — это журналируемая файловая система, являющаяся стандартом де-факто для большинства современных дистрибутивов Linux. Она поддерживает тома объемом до 1 экзабайта и отдельные файлы размером до 16 терабайт, обеспечивая обратную совместимость с ext2 и ext3.
Основное техническое отличие от предшественников — использование экстентов (extents). Вместо хранения списка всех блоков, принадлежащих файлу, ext4 записывает начальный блок и длину непрерывной последовательности. Это значительно снижает нагрузку на процессор при чтении больших массивов данных и уменьшает фрагментацию.
Механизмы работы
- Журналирование: фиксация изменений перед их записью в основную структуру для предотвращения повреждений при сбоях.
- Отложенное выделение (Delayed allocation): блоки выделяются непосредственно перед записью на диск, а не в момент создания файла в памяти.
- Быстрая проверка:
e2fsckпропускает неиспользуемые области индексов (inodes), что сокращает время сканирования диска.
Система применяется в серверных хранилищах, рабочих станциях и мобильных ОС на базе Android. Команда mkfs.ext4 -L DATA /dev/sdb1 создает файловую систему с меткой DATA, подготавливая носитель к работе.