ext4
ext4 (расширенная файловая система четвертой версии) — дисковая файловая система с открытым исходным кодом, и самая последняя версия серии «расширенных файловых систем». Это основная файловая система во многих системах Linux, что делает ее самой стабильной и протестированной файловой системой в Linux.
Первоначально являясь ответвлением ext3, ext4 добавила новые возможности, улучшила производительность и устранила ограничения размеров ценой незначительных изменений дискового формата. Теперь она поддерживает разделы размером до 1 эксабайта и файлы размером до 16 Тб. Вместо классического распределения блоков ext2/3, ext4 использует экстенты, которые улучшают производительность при работе с большими файлами и снижают фрагментацию. ext4 также обеспечивает сложные алгоритмы распределения блоков (отложенное распределение и многоблочное распределение), благодаря чему драйвер файловой системы имеет больше возможностей для оптимизации распределения данных на диске.
Установка
Ядро
Активируйте следующий параметр ядра для включения кода ext4:
File systems --->
<*> The Extended 4 (ext4) filesystem Search for <code>CONFIG_CONFIG_EXT4_FS</code> to find this item.
Поддержка дополнительных возможностей ext4:
File systems ---> [*] Ext4 POSIX Access Control Lists Search for <code>CONFIG_CONFIG_EXT4_FS_POSIX_ACL</code> to find this item. [*] Ext4 Security Labels Search for <code>CONFIG_CONFIG_EXT4_FS_SECURITY</code> to find this item. [ ] EXT4 debugging support
Код ext4 способен взаимодействовать с файловыми системами ext2, ext3 и ext4. Благодаря этому сохраняется совместимость с уже смонтированными файловыми системами ext2 или ext3 и обеспечивается возможность обновить их до функционала ext4. Также tune2fs можно использовать для добавления определённых возможностей ext3 и ext4 в существующую файловую систему ext2 или ext3, хотя определённые жёсткие ограничения всё ещё останутся в силе.
Временные метки файлов в ext2 и ext3 подвержены проблеме 2038 года, которая устранена в ext4 начиная с 2016 года, с Linux kernel 4.3.6 и e2fsprogs 1.43. Если необходимо использовать файловую систему Extended без включения журналирования, вместо ext2 следует использовать ext4 с отключённым журналом; см. ext4 без журналирования.
Для обычной системы с ext4 нет нужды включать дополнительные параметры ext3 или ext2. Эти параметры указаны здесь в качестве справочного материала (ext3) и для крайне специфичных сценариев (ext2).
Ext3
Оригинальный драйвер ext3 был удалён из ядра Linux 4.3. Есть очень редкие случаи, для которых необходимо использовать файловую систему ext3, для чего можно использовать драйвер ext4.
Рекомендуется использовать драйвер ext4 для монтирования файловых систем ext3. Старый драйвер ext3 не должен быть включен.
Включите следующие параметры ядра для драйвера ext3:
File systems --->
<*> Ext3 journalling file system support
Поддержка дополнительных возможностей ext3:
File systems --->
[*] Default to 'data=ordered' in ext3
[*] Ext3 extended attributes
[*] Ext3 POSIX Access Control Lists
[*] Ext3 Security Labels
Ext2
Файловая система ext2 не поддерживает журналирование.
When the original ext2 filesystem driver is enabled, it will be used to mount ext2 filesystems. Under normal circumstances it is highly recommended to use the ext4 driver, and not to enable the older ext2 driver: there is absolutely no necessity for a separate driver when the ext4 driver is already available to mount ext2 filesystems.
The original ext2 filesystem code remains available for special cases. For example: compared to the ext4 filesystem code, the original ext2 code has a lower memory footprint. (In such cases, the ext4 driver will be entirely omitted, so ext3 and ext4 filesystems will not be available.)
Включите следующие параметры ядра для поддержки ext2 при помощи оригинального кода файловой системы ext2:
File systems --->
<*> Second extended fs support
Поддержка дополнительных возможностей ext2:
File systems --->
[*] Ext2 extended attributes
[*] Ext2 POSIX Access Control Lists
[*] Ext2 Security Labels
Поддержка больших накопителей
-*- Enable the block layer --->
[*] Support for large (2TB+) block devices and files
USE-флаги
USE flags for sys-fs/e2fsprogs Standard EXT2/EXT3/EXT4 filesystem utilities
+tools
|
Build extfs tools (mke2fs, e2fsck, tune2fs, etc.) |
archive
|
Add support for mke2fs to read a tarball as input. This allows not needing privileges. Needs app-arch/libarchive. |
cron
|
Install e2scrub_all cron script |
fuse
|
Build fuse2fs, a FUSE file system client for ext2/ext3/ext4 file systems |
nls
|
Add Native Language Support (using gettext - GNU locale utilities) |
static-libs
|
Build static versions of dynamic libraries as well |
test
|
Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently) |
Emerge
Пакет sys-fs/e2fsprogs должен быть доступен как часть системного профиля по умолчанию.
root #
emerge --ask sys-fs/e2fsprogs
Использование
Создание
Команда mkfs.ext4 необратимо уничтожит любое содержимое на разделе, который вы укажите для форматирования. Убедитесь что выбрали правильный раздел!
Чтобы создать файловую систему ext4 на разделе /dev/sdx5:
root #
mkfs.ext4 /dev/sdx5
Монтирование
См. filesystem.
Ext4 без журналирования
In specific use-cases it may be desirable to create a journal-less filesystem. Even though ext2 does provide exactly that, it is also affected by the year 2038 problem regarding file timestamps. Only the ext4 filesystem has been made Y2K38-safe.
In order to get the current Extended filesystem without a journal, an ext4 filesystem can be created without the has_journal
feature, or modified accordingly. (Note that this is not possible on ext3 filesystems.)
Removing the journal from an existing ext4 volume
To display filesystem features currently enabled on a specific ext2/3/4 volume:
root #
dumpe2fs -h /dev/sdx5 | grep "^Filesystem features:"
To disable the journal, the filesystem must be unmounted first:
root #
umount /dev/sdx5
root #
tune2fs -O ^has_journal /dev/sdx5
The leading ^
disables the specified feature. Otherwise the feature would be enabled; i.e. to enable a journal on an existing ext2 or journal-less ext4 filesystem:
root #
tune2fs -O has_journal /dev/sdx5
Running dumpe2fs again, the has_journal
feature should no longer be listed. The filesystem can now be mounted again:
root #
mount /dev/sdx5
Create a new journal-less ext4 volume
To create (i.e. format) a new ext4 volume without a journal, the default options of the ext4
filesystem type have to be overridden:
root #
mke2fs -t ext4 -O ^has_journal /dev/sdx5
Инструменты
Список инструментов, включённых в пакет:
Приложение | Описание | Man-страница |
---|---|---|
badblocks | Небольшая программа для стресс-теста блочных устройств. | badblocks(8) |
debugfs | Отладчик файловых систем ext2/ext3/ext4. | debugfs(8) |
dumpe2fs | Инструмент для отображения информации по файловым системам ext2/ext3/ext4. | dumpe2fs(8) |
e2fsck | Инструмент для проверки файловых систем ext2/ext3/ext4. | e2fsck(8) |
e2image | Инструмент для сохранения критических метаданных файловой системы ext2/ext3/ext4 в файл. | e2image(8) |
e2label | Инструмент для изменения метки тома для файловой системы ext2/ext3/ext4 (является символической ссылкой на tune2fs). | |
e2undo | Инструмент для повторного применения журнала отмены файловой системы ext2/ext3/ext4. | e2undo(8) |
fsck.ext2 | Проверка файловой системы ext2 (является символической ссылкой на e2fsck). | |
fsck.ext3 | Проверка файловой системы ext3 (является символической ссылкой на e2fsck). | |
fsck.ext4 | Проверка файловой системы ext4 (является символической ссылкой на e2fsck). | |
fsck.ext4dev | Проверка файловой системы ext4dev (является символической ссылкой на e2fsck). | |
logsave | Инструмент для сохранения вывода команды в файл журнала. | logsave(8) |
mke2fs | Основная программа для создания файловых систем ext2/ext3/ext4. Команды создания ссылаются на неё через символическую ссылку. | mke2fs(8) |
mkfs.ext2 | Создаёт файловую систему ext2 (является символической ссылкой на mke2fs). | |
mkfs.ext3 | Создаёт файловую систему ext3 (является символической ссылкой на mke2fs). | |
mkfs.ext4 | Создаёт файловую систему ext4 (является символической ссылкой на mke2fs). | |
mkfs.ext4dev | Создаёт файловую систему ext4dev (является символической ссылкой на mke2fs). | |
resize2fs | Изменение размера файловой системы ext2/ext3/ext4. | resize2fs(8) |
tune2fs | Настраивает изменяемые параметры файловых систем ext2/ext3/ext4. | tune2fs(8) |
chattr | Изменяет атрибуты в файловой системе Linux. | chattr(1) |
lsattr | Отображает атрибуты файлов в ext2/ext3/ext4. | lsattr(1) |
e2freefrag | Выводит отчёт о фрагментации свободного пространства. | e2freefrag(8) |
e4defrag | Утилита для дефрагментации смонтированной файловой системы ext4. | e4defrag(8) |
filefrag | Выводит отчёт о фрагментации файла. | filefrag(8) |
mklost+found | Создаёт каталог lost+found в смонтированной файловой системе ext2/ext3/ext4. | mklost+found(8) |
Смотрите также
- Ext4 encryption — provides instructions on encrypting files in a home partition using the ext4 filesystem's built-in file based encryption.
- JFS — 64-битная журналирующая файловая система, созданная компанией IBM.
- Btrfs — copy-on-write (CoW, копирование при записи) файловая система для Linux, предназначенная для реализации расширенных возможностей, в то же время уделяя особое внимание отказоустойчивости, самовосстановлению и простоте администрирования.
- XFS — высокопроизводительная журналируемая файловая система.
- F2FS — a filesystem designed for NAND flash-based devices.
Внешние ресурсы
- https://ext4.wiki.kernel.org — вики по второй, третьей и четвертой расширенной файловой системе.