Управление файловой системой
Файловая система (ФС) определяет способ организации и хранения данных на носителях информации, таких как жесткие диски, SSD и USB-накопители. Она управляет тем, как данные записываются, хранятся и читаются с устройств хранения, предоставляя структуру каталогов и файлов.
ОС поддерживает различные файловые системы (ФС) для обеспечения гибкости и оптимальной производительности при работе с дисками и разделами. По умолчанию используется журналируемая файловая система Ext4. Однако во время установки системы администратору предоставляется возможность выбора других файловых систем (см. раздел Установка ОС на рабочую станцию), таких как Ext3, XFS, и BTRFS. Также поддерживается работа с дисками, отформатированными в NTFS (файловая система Windows).
Рассмотрим общие аспекты каждой из ФС:
- Ext4 (Fourth Extended Filesystem) является основной и рекомендованной ФС для ОС. Она представляет собой усовершенствованную версию Ext3, предлагая улучшенную производительность и дополнительные функции, такие как журналирование, поддержка больших файлов и разделов, быстрое выделение места для файлов и защита от фрагментации. Даная ФС предпочтительна при работе в ОС поскольку является стабильным и широко поддерживаемым выбором для большинства пользователей. Журналирование обеспечивает сохранность данных в случае сбоев. Все изменения в каталогах сначала записываются в журнал, и только после этого применяются к основным данным. Это гарантирует целостность файловой системы и минимизирует риск повреждения данных Ext4 включает механизм автоматического выравнивания блоков данных и индексных записей, что помогает поддерживать высокую производительность даже в случае фрагментированных данных. Как и в других UNIX-подобных системах, в Ext4 доступ к каталогам управляется через систему прав доступа (rwx).
- Ext3 (Third Extended Filesystem) является предшественником Ext4 и также поддерживается ОС РОСА ХРОМ. Основное преимущество — журналирование, но она менее производительна и обладает меньшими возможностями по сравнению с Ext4. Ext3 может использоваться для совместимости с более старыми системами или программами.
- XFS — это высокопроизводительная файловая система, разработанная компанией Silicon Graphics. Она отличается хорошей масштабируемостью и эффективной работой с большими файлами и разделами. XFS также обладает функциями журналирования, быстрым выделением пространства для файлов и достаточно высокой производительностью при записи данных, но не поддерживает нативное создание снимков (snapshot), что ограничивает его функциональность в современных сценариях резервного копирования и восстановления данных.
- BTRFS (B-Tree File System) — современная копируемая при записи (COW) файловая система, разработанная для повышения надежности данных и управления их объемом. Несмотря на то, что она поддерживает все аналогичные функции, как и Ext4, некоторых сценариях (особенно на серверах) производительность BTRFS может уступать Ext4, особенно при высокой нагрузке на запись или в случае большого количества мелких файлов, а также при создании множества снимков. Документация и поддержка BTRFS могут быть менее обширными и детализированными, чем у Ext4, что может вызывать затруднения при администрировании ОС.
- NTFS (New Technology File System) — файловая система, разработанная Microsoft для ОС Windows. В ОС РОСА «ХРОМ» поддержка NTFS реализована через драйверы, такие как ntfs-3g, позволяющие монтировать и работать с NTFS-разделами. NTFS часто используется для обмена данными между Linux-подобными ОС и ОС семейства Windows.
Организация каталогов в Системе
Каталоги в файловой системе Ext4 являются специальным типом файлов, которые содержат список имен файлов и их соответствующих inode-номеров. В inode хранится информация о файле или каталоге, включая права доступа, владельца, размер, а также указатели на блоки данных.
В Ext4 каталоги организованы как древовидная структура, где каждый каталог может содержать файлы и подкаталоги. Корневой каталог / является начальной точкой этой структуры. Внутри него находятся системные каталоги, такие как /bin, /etc, /home, /var и другие.
В Ext4 реализована схема HTree (сбалансированное дерево), которая позволяет увеличить скорость поиска и доступа к файлам в больших каталогах.
Пределы и ограничения на хранение данных в каталогах ФС:
- Ext4 поддерживает каталоги размером до 2 ТБ, что существенно увеличивает их емкость по сравнению с Ext3.
- В одном каталоге Ext4 может содержать до 1018 файлов, что практически не ограничивает количество файлов в каталоге. Стандартная структура каталогов в ОС позволяет администраторам и пользователям эффективно управлять Системой и поддерживать её в рабочем состоянии.
Основные каталоги ОС, которые используются Системой по умолчанию:
/ (Корневой каталог)- начальная точка всей ФС, все другие каталоги и файлы находятся внутри этого каталога;/bin- содержит основные исполняемые файлы (команды), необходимые для работы системы, которые могут использовать все пользователи (Например: bash, ls, cp);/boot- содержит файлы, необходимые для загрузки системы, такие как ядро, загрузчик и начальный RAM диск;/dev- содержит файловые интерфейсы к устройствам (драйверам). Здесь находятся файлы устройств, которые представляют периферийные устройства, такие как жесткие диски, терминалы и другие;/etc- содержит конфигурационные файлы системы и служб. Это место, где хранятся конфигурации практически всех программ и служб на системе;/home- содержит домашние каталоги пользователей. Каждый пользователь имеет свой собственный подкаталог, например /home/user;/lib- содержит общие библиотеки, используемые системными программами, и модули ядра;/media- место для автоматического монтирования съемных носителей, таких как CD-ROM, USB-диски и другие;/mnt- каталог, используемый для временного монтирования файловых систем;/opt- каталог для установки дополнительного ПО, которое не входит в стандартный набор программ ОС;/proc- виртуальная файловая система, предоставляющая информацию о текущем состоянии системы, включая информацию о процессах;/root- домашний каталог пользователя root (суперпользователя);/run- каталог для временных данных, которые нужны при запуске системы, таких как PID-файлы;/sbin:содержит системные программы, которые обычно используются только администратором системы (root);/srv- каталог, предназначенный для хранения данных, которые обслуживаются системой, например веб-сервером или FTP-сервером;/tmp- каталог для временных файлов. Эти файлы обычно удаляются при перезагрузке системы;/usr- содержит вторичные программы, библиотеки и документацию. Внутри него также находятся такие подкаталоги, как:/usr/bin- дополнительные исполняемые файлы;/usr/lib- дополнительные библиотеки;/usr/share- общие файлы данных, такие как значки и документация;/usr/local- место для установки программного обеспечения вручную, которое не будет затронуто при обновлении системы;
/var- каталог, содержащий данные, которые изменяются во время работы системы, такие как логи, файлы временного хранения, очереди задач и т.д.
В пользовательских каталогах наряду с персональными файлами также имеются и конфигурационные файлы, которые в целях безопасности срыты. Файлы и каталоги считаются скрытым, если их имена начинаются с точки (.). (например .config является скрытым).
Для того чтобы увидеть скрытые файлы в командной строке, можно использовать команду ls с параметром -a:
ls -a
Чтобы сделать файл или каталог скрытым, достаточно переименовать его, добавив в начало имени точку. Например, переименуем filename в .filename:
mv filename .filename
Монтирование
Прежде чем приступить к работе с ФС, её нужно смонтировать, что означает подключение к файловой структуре Системы. Этот процесс позволяет ОС правильно взаимодействовать с ФС, делая её доступной как обычный каталог, известный как точка монтирования.
Для успешного монтирования ФС, важно убедиться, что каталог, выбранный в качестве точки монтирования, существует в системе. Если точка монтирования является не пустым каталогом, его содержимое будет недоступно до тех пор, пока файловая система не будет размонтирована. Поэтому рекомендуется использовать специально созданные каталоги для этой цели, которые обычно находятся в /mnt или /media.
Допустим, необходимо смонтировать ISO-образ в каталог /mnt. Этот каталог должен существовать заранее, иначе операция завершится неудачно. После успешного монтирования в каталоге появится содержимое ФС, в противном случае каталог останется пустым.
Чтобы определить, к какой ФС относится текущий каталог и объём свободного места на ней, используют команду:
df -h
В ОС для монтирования ФС используется команда mount. Общий синтаксис команды:
mount устройство точка_монтирования
где
устройство — это физический носитель данных, который необходимо подключить;
точка_монтирования — каталог, к которому будет привязана ФС.
Из соображений безопасности команда mount доступна для выполнения только с правами суперпользователя. Команда mount может включать дополнительные параметры, такие как:
-f- имитирует монтирование, выполняя все действия, кроме фактического монтирования файловой системы;-v- предоставляет подробный отчёт о выполняемых действиях;-w- монтирует файловую систему с доступом для чтения и записи;-r- монтирует файловую систему только для чтения;-n- монтирует без записи в файл/etc/mtab;-t type- указывает тип монтируемой файловой системы;-a- монтирует все файловые системы, указанные в/etc/fstab;-o list_of_options- применяет список опций к файловой системе, где опции разделены запятыми, подробнее об этом см. вman mount.
Подробное описание опций команды mount доступно в руководстве man mount.
Если у команды не указаны опции, mount попытается определить их по файлу /etc/fstab.
Примеры команд монтирования:
- Монтирование раздела жесткого диска:
mount /dev/hdb3 /mnt
- Монтирование всех ФС NFS, указанных в
/etc/fstab:
mount -vat nfs
Если возникли ошибки при монтировании, можно использовать команду:
mount -vf устройство точка_монтирования
Эта команда выполнит все действия, кроме монтирования, и выдаст подробный отчет о каждом шаге.
Файл /etc/fstab — это конфигурационный файл, который определяет порядок монтирования файловых систем в ОС. Этот файл играет ключевую роль в автоматическом подключении устройств и разделов при загрузке системы, а также упрощает управление монтированием для системных администраторов.
Файл /etc/fstab состоит из строк, каждая из которых описывает отдельную файловую систему или устройство. Рассмотрим типовую структуру файла fstab:
<file system> <mount point> <type> <options> <dump> <pass>
UUID=abcd1234-ef56-7890-abcd-1234567890ab / ext4 defaults 1 1
UUID=abcd1234-ef56-7890-abcd-1234567890ac /home ext4 defaults 1 2
UUID=abcd1234-ef56-7890-abcd-1234567890ad /var xfs defaults 1 2
UUID=abcd1234-ef56-7890-abcd-1234567890ae swap swap defaults 0 0
/dev/cdrom /media/cdrom auto noauto,ro 0 0
Каждая строка включает следующие поля:
<file system>— идентификатор файловой системы, которая должна быть смонтирована. Обычно это UUID (уникальный идентификатор) раздела, но может быть также использован путь к блочному устройству (например, /dev/sda1).
В рассмотренном выше примере строка: UUID=abcd1234-ef56-7890-abcd-1234567890ab, /dev/cdrom.
<mount point>— точка монтирования, то есть каталог, в который будет подключена файловая система.
В рассмотренном выше примере: /, /home, /var, /media/cdrom.
<type>— тип файловой системы, который будет использоваться при монтировании. Это может быть ext4, xfs, btrfs, swap для разделов подкачки, или auto для автоматического определения типа.
В рассмотренном выше примере: ext4, xfs, swap, auto.
<options>— монтировочные опции, которые определяют поведение файловой системы. Наиболее часто используются опции:- defaults — включает стандартный набор опций: rw, suid, dev, exec, auto, nouser, async.
- noauto — файловая система не монтируется автоматически при загрузке.
- ro — монтирование в режиме только для чтения.
В рассмотренном выше примере: defaults, noauto,ro.
<dump>— опция для утилиты dump, которая выполняет резервное копирование файловой системы. Если установлено в 1, резервное копирование включено, 0 — отключено.
В рассмотренном выше примере: 1, 0.
<pass>— определяет порядок проверки файловых систем при загрузке:- 0 — файловая система не будет проверяться.
- 1 — корневая файловая система проверяется первой.
- 2 — другие файловые системы проверяются после корневой.
В рассмотренном выше примере: 1, 2, 0.
Редактирование файла /etc/fstab требует прав суперпользователя. Изменения в этом файле немедленно не применяются, поэтому после редактирования необходимо либо вручную смонтировать файловые системы командой:
mount -a
либо перезагрузить систему для применения настроек.
Чтобы избежать ошибок при редактировании /etc/fstab, рекомендуется тщательно проверять правильность введенных данных, так как ошибки могут привести к тому, что система не сможет загрузиться корректно.
Для получения полной информации о возможных опциях для файла /etc/fstab смотрите справочную страницу по команде man fstab.
Размонтирование
Для отключения файловой системы от Системы используется команда umount. Операция размонтирования может потребоваться для выполнения проверок и восстановления ФС с использованием команды fsck.
В случае проблем с сетью, удаленные ФС также могут быть отключены.
Команда umount имеет следующий формат:
- umount device : mountpoint
- umount -a
- umount -t fstype
Здесь device обозначает физическое устройство, которое нужно отключить, а mountpoint — каталог, к которому оно подключено (можно указать только device или mountpoint). Параметр -a отключает все подключенные ФС, а параметр -t fstype отключает ФС указанного типа.
Команда umount не сможет отключить ФС, если она в данный момент используется. Например, если ФС подключена к /mnt, и вы попытаетесь выполнить следующие команды:
cd /mnt
umount /mnt
Вы получите сообщение об ошибке, так как Система будет считать, что ФС занята. Чтобы успешно отключить /mnt, необходимо сначала выйти из этого каталога, перейдя в другой каталог.
Для принудительного отключения устройства, даже если оно используется, можно применить опцию -f:
umount -f /cdrom
Для безопасного извлечения сменных носителей можно использовать команду eject.
Более подробное описание команды доступно в справочном руководстве man umount.