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.
Для обычной системы с ext4 нет нужды включать дополнительные параметры ext3 или ext2. Эти параметры указаны здесь в качестве справочного материала (Ext3) и для крайне специфичных сценариев (Ext2).
Ext3
The original ext3 filesystem code was removed from the Linux kernel with version 4.3. There should remain only rare cases which make it necessary to use an ext3 filesystem, in which case the ext4 filesystem driver may be used.
Включите следующие параметры ядра для поддержки 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 не поддерживает журналирование.
Even though the ext2 filesystem code remains available, it is advised to use the ext4 driver to mount ext2 filesystems. Under those normal circumstances the ext2 driver should not be enabled.
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.
Включите следующие параметры ядра для поддержки 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/sda1:
root #
mkfs.ext4 /dev/sda1
Монтирование
См. filesystem.
Инструменты
Список инструментов, включённых в пакет:
Приложение | Описание | 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 — вики по второй, третьей и четвертой расширенной файловой системе.