02. Структура файловой системы Linux
Введение
Файловая система — это способ организации и хранения данных на носителе.
Linux поддерживает множество типов файловых систем, а также имеет свою уникальную иерархию каталогов.
Поддерживаемые файловые системы Linux
Linux отличается гибкостью и способен работать с различными файловыми системами. Их можно разделить на несколько групп.
Классические файловые системы Linux
- ext2 — вторая расширенная файловая система (Extended File System). Старая, без журналирования. Использовалась до начала 2000-х, сейчас практически не применяется.
- ext3 — развитие ext2 с добавлением журналирования (журнал фиксирует изменения перед их применением, что повышает надёжность при сбое питания).
- ext4 — современная версия, поддерживает файловые системы до 1 Эбайта, отдельные файлы до 16 Тбайт, снапшоты, дефрагментацию и быстрый доступ. Является наиболее распространённой в Linux.
Современные Linux-файловые системы
- XFS — высокопроизводительная файловая система от SGI, хорошо подходит для работы с большими файлами и высокими нагрузками. Используется в Red Hat/CentOS.
- Btrfs — новая файловая система с поддержкой снапшотов, контрольных сумм, встроенного RAID, тонкого выделения места. Считается конкурентом ZFS.
- ReiserFS — была популярна в 2000-х за счёт эффективной работы с мелкими файлами, но сейчас практически не используется.
- F2FS (Flash-Friendly File System) — оптимизирована для флеш-накопителей и SSD, активно развивается.
Универсальные и кроссплатформенные файловые системы
- FAT16/FAT32 — старые файловые системы, применяются для флешек, карт памяти. FAT32 имеет ограничения: файл не может быть больше 4 Гбайт.
- exFAT — современная файловая система для флеш-накопителей и карт памяти, поддерживается Windows, Linux, macOS. Нет ограничений по размеру файлов.
- NTFS — основная файловая система Windows, Linux имеет драйверы для чтения и записи (ntfs-3g).
Файловые системы корпоративного уровня
- ZFS — мощная, отказоустойчивая файловая система с поддержкой снапшотов, дедупликации, встроенного RAID, контроля целостности. Используется в серверах и хранилищах.
- OCFS2 (Oracle Cluster File System 2) — кластерная файловая система для одновременного доступа нескольких узлов.
- GFS2 (Global File System 2) — кластерная файловая система от Red Hat.
Виртуальные файловые системы Linux
Эти файловые системы не хранят данные на диске, а отображают состояние ядра и процессов.
- procfs (/proc) — информация о процессах и ядре.
- sysfs (/sys) — информация об устройствах и драйверах.
- tmpfs — файловая система в оперативной памяти.
- devtmpfs (/dev) — устройства, доступные в системе.
Структура файловой системы Linux
Linux использует иерархическую структуру файловой системы, где всё начинается с корневого каталога /. Это дерево каталогов унифицировано благодаря стандарту FHS (Filesystem Hierarchy Standard).
1. Основные каталоги
/— корневой каталог, содержит все остальные каталоги./bin— базовые команды для всех пользователей (ls, cp, mv, cat)./sbin— системные утилиты для администрирования (ifconfig, reboot, fdisk)./boot— файлы, необходимые для загрузки ОС (ядро Linux, initrd, загрузчик GRUB)./dev— файлы устройств (жёсткие диски, флешки, терминалы). Пример:/dev/sda./etc— системные конфигурационные файлы (настройки сети, служб, пользователей)./home— домашние каталоги пользователей. Пример:/home/student./lib,/lib64— системные библиотеки, используемые программами./media— точки монтирования внешних устройств (флешек, CD/DVD)./mnt— временная точка монтирования файловых систем./opt— сторонние приложения и пакеты./proc— виртуальная файловая система с информацией о процессах./root— домашний каталог суперпользователя root./run— данные о текущей сессии (например, PID процессов)./srv— данные предоставляемых сервисов (например, веб-серверов)./sys— информация о ядре и оборудовании./tmp— временные файлы, очищаются после перезагрузки./usr— дополнительные программы и данные./usr/bin— пользовательские приложения./usr/sbin— системные утилиты./usr/share— документация, иконки, локализации.
/var— изменяемые данные: логи, кэш, очереди почты./var/log— журналы работы системы и сервисов./var/tmp— временные файлы, сохраняемые между перезагрузками.
2. Виртуальные каталоги
/procи/sysне содержат файлов на диске — они отображают данные ядра./devдинамически создаётся системой udev и содержит устройства.
3. Пример структуры
/
├── bin
├── boot
├── dev
├── etc
├── home
│ └── user
├── lib
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin
├── srv
├── sys
├── tmp
├── usr
│ ├── bin
│ ├── sbin
│ └── share
└── var
4. Особенности организации
- Все устройства монтируются в дерево каталогов, а не имеют собственных букв (как в Windows: C:, D:).
- Конфигурация всегда хранится в
/etc. - Домашние каталоги пользователей в
/homeупрощают администрирование. - Логи в
/var/logдают администратору возможность анализировать состояние системы.
Значение для администратора
1. Управление конфигурацией
- Все конфигурационные файлы хранятся в
/etc. Администратор может настроить:- сеть (
/etc/network/interfaces,/etc/netplan/), - службы (Apache, Nginx, SSH),
- пользователей и группы (
/etc/passwd,/etc/group,/etc/shadow).
- сеть (
2. Мониторинг и диагностика
- Логи в
/var/logпозволяют отслеживать состояние системы и служб. - В
/procи/sysсодержится информация о процессах, ядре и оборудовании. - Команды
dmesg,cat /proc/cpuinfo,cat /proc/meminfoпомогают диагностировать проблемы.
3. Управление пользователями
- Домашние каталоги пользователей находятся в
/home. - Администратор может ограничивать права доступа и следить за использованием дискового пространства.
- Каталог
/rootиспользуется суперпользователем.
4. Управление устройствами и файловыми системами
- Все устройства отображаются в
/dev. - Временные точки монтирования находятся в
/mntи/media. - Мониторинг и подключение дисков выполняется через команды
mount,umount,lsblk.
5. Безопасность
- Своевременная проверка и настройка прав доступа к каталогам.
- Контроль логов безопасности (
/var/log/auth.log). - Ограничение использования
/tmpи/var/tmpдля предотвращения атак.
6. Автоматизация и резервное копирование
- Использование cron и bash-скриптов для резервного копирования файлов из ключевых каталогов.
- Применение
rsyncдля синхронизации/etc,/home,/var. - Создание снапшотов файловых систем (Btrfs, ZFS).
Заключение
Знание поддерживаемых файловых систем и структуры каталогов Linux — важный навык сетевого администратора. Это позволяет эффективно управлять данными, конфигурацией и безопасностью системы.