Файловая система в Linux создается для диска или раздела диска и определяет способ организации хранения данных на низком уровне.
Чаще всего встречается ext4. Это стандартная файловая система для современных дистрибутивах Debian и Ubuntu. Она журналируема и позволяет удобно работать с данными при решении абсолютного большинства задач. Тем не менее существуют и другие.
Основные типы файловых систем и принципы работы с ними будут рассмотрены в рамках данного материала.
Файловая система в Linux — используемые чаще всего типы FS и их особенности
Отличительными особенностями является скорость работы с файлами, безопасность и параметры (такие как размер блока), существующие по умолчанию и задаваемые при создании FS. Возможно, самой важной характеристикой является наличие журнала. В системный журнал записываются данные или метаданные (только заголовки) по которым информацию можно восстановить в случае сбоя.
Файловая система может создаваться на любом устройстве: на диске или системной партиции.
Файловая система EXT2
EXT2 является в настоящее время устаревшей файловой системой, которая практически не используется в современных инсталяциях. основной недостаток — отсутствие журналирования что, соответственно, делает невозможным восстановление данных в случае сбоя. По прежнему применяется на портативных носителях информации, таких как USB. Журнал для них не требуется, поскольку занимает определенное пространство.
Также гарантирует максимальную скорость работы.
- для EXT2 максимальный размер файла -2 TB
- максимальный размер всех файлов — 32 TB
Файловая система EXT3
Вытеснила EXT2, главной особенностью является появление журнала, является полностью обратно совместимой с EXT2 (EXT2 можно свободно конвертировать в EXT3). Сейчас встречается также редко, практически всегда используется EXT4.
Журнал — специальная область в памяти, в которую записывается информация обо всех изменениях
- для EXT3 максимальный размер файла -2 TB
- максимальный размер всех файлов — 32 TB
- в каждом каталоге может быть до 32 000 подкаталогов
При журналировании может быть три опции (указываются при создании файловой системы):
- journal – в журнал метаданные, а также сама информация
- ordered – опция по умолчанию, сохраняются только метаданные и после записи на диск
- writeback – также сохраняются только метаданные, можно выбрать сохранять их до записи на диск или после
Файловая система EXT4
Современная версия extended file system, чаще всего применяется именно она.
Пример /etc/fstab в Ubuntu, в качестве типа файловой системы основного диска указан ext4
Особенности ext4
- максимальный размер файла -2 TB 16 TB
- максимальный размер всех файлов — 1 EB (exabyte). 1 EB = 1024 PB (petabyte). 1 PB = 1024 TB (terabyte).
- в каждом каталоге может быть до 64 000 подкаталогов
В EXT4 ведение журнала можно выключить установив опцию data при монтировании в off
Пример вывода команды mount показывающий тип файловой системы корневого раздела
В отличие от /etc/fstab команда mount показывает текущее состояние.
EXT как основная файловая система Linux и практика работы
Файловая система создается командой mk2fs
mk2fs -t ext3 /dev/vda
или
mkfs.ext3 /dev/vda
Нужная опция журналирования указывается при монтировании, например:
mount /dev/vdc /mnt/1 -t ext3 -o data=journal
Конвертирование из EXT2 Eв XT3
umount /dev/vda
tune2fs -j /dev/vda
mount /dev/vda /home
ReiserFS
Файловая система ReiserFS (и современная реализация Reiser4 с поддержкой SELinux) отличается хорошей производительностью и очень продуктивна — особенно при работе с большим количеством мелких файлов. ReiserFS не выделяет inode-ы для каждого мелкого файла обрабатывая их вместе, также ReiserFS использует журнал с несколькими доступными опциями.
Создать FS для устройства можно командой
mkreiserfs /dev/vda
XFS
XFS – журналируемая файловая система. Использует оперативную память для хранения информации, поэтому возможны потери данных — например, при отключении электропитания.
Является опцией по умолчанию в CentOS. Ошибки исправляются с помощью утилиты xfs_repair.
Чтобы использовать XFS в Ubuntu потребуется установить пакеты xfsprogs и xfsdump
vfat
Файловая система Linux, также существующая в Windows среде. Используется когда нужно организовать совместный доступ к определенным дискам и разделам клиентов с разными ОС. В других случаях использовать не рекомендуется поскольку при работе в Linux возможны сложности.
Читайте также про монтирование устройств и каталогов к каталогам, при обоих нужно указывать тип файловой системы если он не был задан заранее.
Ошибки файловой системы возникших в результате сбоев устраняются отмонтированием раздела и запуском для него fsck или xfs_repair в зависимости от типа FS. Подробнее в этом материале.