В ядре ОС Linux содержится большое количество предустановленных файловых систем. При этом список варьируется от версии ядра. Файловые системы позволяет решать различные задачи. Исходя из того, что требуется в данном случае, можно выбрать Linux file system для конкретного раздела. При этом каждый раздел может использовать свою файловую систему, что считается преимуществом перед другими операционными системами.
Необходимо подробнее рассмотреть файловые системы Linux, чтобы понимать, как они устроены и каким способом можно получить к ним доступ.
Файловые системы в операционной системе Linux
Операционная система Linux еще на стадии установки предлагает администратору выбор файловой системы, выбирать стоит исходя из конкретных задач. Это важное преимущество перед ОС Windows, которая устанавливается только на NTFS.
Организация файловой системы Linux устроена иначе, чем в Windows. Тут есть существенные отличия в иерархии и в самой структуре каталогов. ОС Linux позволяет разделять жесткий диск на несколько разделов. Для этого требуется использовать таблицу разделов GPT или MBR. Она позволяет указывать границы разделов, которым будут присвоены метка и номер. Подобный подход позволяет разделить жесткий диск на несколько томов и использовать их в соответствии с назначением.
Важно. В ОС Windows тоже есть возможность разделить жесткий диск на 2 или больше томов во время установки системы. Также это можно сделать в дальнейшем при использовании специального ПО. Однако при разделении жесткого диска рекомендуется выполнить форматирование, которое приводит к полной потере данных. В случае с Linux проводить форматирование каждый раз не требуется.
Организация файловой системы Linux
В Linux файловая система (ФС) может быть назначена для каждого тома. Основа файловой системы заключается в том, чтобы задать порядок хранения информации. Следующим слоем считается технический или практический. Он учитывает правила дискового пространства, чтобы организовать правильное хранение сведений с возможностью их воспроизведения, копирования, редактирования и так далее.
Выбор файловой системы Linux влияет на некоторые важные параметры, среди которых: скорость записи и чтения, максимально допустимый размер файла, уровень надежности хранения информации, способы внесения изменений, возможность сохранения данных в оперативной памяти и так далее.
Можно сказать, что ФС – это фундамент, который задает правила хранения и использования информации. Если проводить аналогию с домом, то ФС считается стенами здания, внутри которого находятся предметы (информация), которые могут располагаться в разных комнатах (тип файла).
Структура дисковой системы в Linux предполагает, что все разделы состоят из определенного количества блоков, которые имеют определенный размер: 1024, 2048, 4096 или 8120 байт.
Для обмена данными используется 2 способа:
- VFS или виртуальная файловая система (она позволяет администратору не учитывать правила, используемые определенной ФС).
- Драйверы ФС. Они обеспечивают взаимосвязь между железом и программной частью.
В файле file systems можно прочитать, какие именно ФС поддерживаются.
Структура и иерархия файловой системы
Файловая система в Linux определяет иерархию файлов, ее можно представить в виде дерева. Главным считается корневой каталог или «/», а от него идут ветви дерева.
Для ФС актуально понятие целостности. Это значит, что внесение изменений в один файл не приведет к тому, что изменятся все остальные, которые с ним не связаны. Проверить целостность можно с помощью команды fsck
.
Существует условное разделение типов файлов на группы. Так, некоторые из них полностью совпадают с типами в OS Windows. Но есть отличия, так, например, каталоги выносятся в отдельный вид файлов, а так же:
- жесткие диски – блочные устройства;
- принтеры – символьные;
- разъемы ЦП и каналы межпроцессорного взаимодействия PIPE (FIFO) тоже рассматриваются как типы файлов в ФС Linux.
Определить тип файла можно с использованием команды ls
. При этом в Linux используется определенная система индексов для определения файла. Каждый из файлов может обладать сразу несколькими именами или путями. В структуре ФС они будут отличаться, однако на жестком диске это будет один файл. Подобное строение означает, что в Linux допускается перекрестная иерархия.
В данной ОС только один корневой раздел. Все остальные являются подкаталогами, которые имеют свой собственный путь, начинающийся с «/». При создании нового подкаталога происходит его «монтаж» к устройству, содержащему файловую систему (драйвер). Именно драйвер получая ссылку на устройство, определяет ФС и информация попадает в таблицу монтирования.
В Inode находится информация о файле. Это уникальный дескриптор, который используется только в UNIX-системах. В нем хранятся основные сведения,которым относится следующее:
- владелец;
- обслуживающий драйвер;
- дата создания;
- время последнего обращения;
- размер;
Если файл перемещается в другую ФС, то его Inode создается с нуля, а исходный удаляется. Если все происходит в рамках одной ФС, то вместо удаления меняется путь.
Важно. Удаление пути к файлу означает его физическое уничтожение в Linux. Когда вся информация удаляется, то блоки, которые ее хранили, освобождаются. Их можно использовать повторно в дальнейшем для сохранения других сведений.
В Linux используется 2 типа ссылок:
- Жесткая. Именно она определяет путь к файлу от root.
- Символьная. Предполагает наличие файла с текстовой строкой с указанием пути к целевому файлу.
Вся основная информация о ФС находится в так называемом суперблоке. В него сохраняется следующее:
- общее число блоков;
- количество свободных блоков;
- Inode;
- размер имеющихся блоков и так далее.
Важно. Требуется обеспечить сохранность суперблока, так как его повреждение чревато нарушением целостности всей ФС. В таком случае будет нарушена стабильность работы, а в некоторых случаях не удастся восстановить информацию. По умолчанию в ОС создается несколько резервных копий суперблока.
При загрузке ядра происходит автоматическое монтирование разделов. Вся информация считывается из /etc/fstab.
Благодаря тому, что все устройства монтируются по идентификатору, нет необходимости перенастраивать конфигурационный файл при смене блочного устройства.
Типы файловых систем Linux
Учитывая, что в Linux есть немало предустановленного софта и доступных ФС, способы работы с файлами будут варьироваться.
В Linux есть журналируемые и не журналируемые ФС. Первые позволяют сохранять логи и отличаются повышенной стабильностью. У вторых скорость работы выше, однако нет гарантии, что информация будет в безопасности (есть риск ее потери).
Вот какие основные ФС доступны администратору и пользователям:
- Ext2, Ext3, Ext4 Это стандартные ФС. Их обновление происходит редко, что обеспечивает стабильность работы. Благодаря им обеспечивается работоспособность основных функций в OS Linux. Основным улучшением является возможность увеличения тома до 1 Эксабайта.
- JFS. Это журналируемая система, созданная специально для AIX UNIX. Ее основными достоинствами считаются небольшие системные требования и высокая стабильность работы. Она отлично показала себя в работе на компьютерах с несколькими процессорами. Основным недостатком считается то, что при системном сбое могут использоваться устаревшие версии файлов, так как только метаданные сохраняются в логах.
- ReiserFS используется для замены Ext3 Данная ФС позволяет повысить производительность и расширить функционал. В частности, администратор сможет объединять несколько блоков в один, изменять их размер. Однако при смене размера блока прямо во время его использования повышается риск потери данных.
- XFS. Это тоже журналируемая ФС, однако в ней сохраняются не все логи, а только те, которые касаются метаданных. С ее помощью можно достаточно быстро работать с тяжелыми файлами выделять место в отложенном режиме. При необходимости администратор может менять объем разделов в процессе работы с ними. Однако допускается только увеличение раздела, уменьшить его не получится. Если во время работы происходит отключение электричества, то информация может быть потеряна.
- Btrfs. Это ФС с высокими показателями отказоустойчивости. Она считается удобной для программистов и администраторов, у нее простой алгоритм восстановления информации. Есть поддержка подтомов, можно изменять размер раздела и создавать снапшоты. Производительность отличная, но требуется понимать, что у этой ФС уровень нестабильности выше, чем у рассматриваемых выше.
- OpenZFS. Преимуществами считаются защита информации от повреждения, возможность работы с тяжелыми файлами и автоматический процесс восстановления потерянной или поврежденной информации.
Узнать тип ФС можно с помощью команды file -s
. Также Linux поддерживает все ФС, которые есть в Windows, однако в них не получится отдельно установить корневой раздел, так как используется другая архитектура.
Специальные файловые системы
Эти ФС созданы для решения узких задач. Например, когда требуется предоставить доступ пользователю или софту к настройкам ядра. Наиболее распространенными считаются tmpfs, procfs, sysfs. Исходя из типа ФС, удается решать те или иные задачи.
Виртуальные файловые системы
С помощью модуля FUSE можно использовать виртуальные ФС. Они применимы в случаях, когда их наличие в ядре не является жестким требованием. Подобные ФС поддерживают современные методы шифрования и сетевое администрирование. Их используют в следующих случаях:
- EncFS для шифрования информации и помещения ее в указанную администратором директорию.
- Aufs позволяет объединить несколько ФС в одну.
- NFS требуется, чтобы проводить удаленный мониторинг.
- ZFS позволяет управлять снапшотами, изменять размер блоков и так далее.
Важно понимать, что, исходя из потребностей пользователя, можно выбирать те или иные ФС. Но в дальнейшем их можно дополнить путем установки соответствующих утилит. Новичкам рекомендуется начать знакомство с Linux c ОС Ubuntu и ФС Ext4. У этой ОС интуитивно понятный интерфейс, поэтому не придется долго разбираться в том, как с ней работать. Профессионалы могут использовать Arch Linux, где предлагается широкий набор ФС и продвинутые настройки.