мета-данные страницы
Различия
Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
| notes:howlinuxworks:vol4 [2026/05/13 16:39] – создано radi0dev | notes:howlinuxworks:vol4 [2026/05/13 17:30] (текущий) – radi0dev | ||
|---|---|---|---|
| Строка 504: | Строка 504: | ||
| </ | </ | ||
| - | ===== 4.2.11 Проверка и восстановление файловых систем | + | ==== 4.2.11 Проверка и восстановление файловых систем ==== |
| Файловые системы Unix требуют периодической проверки на ошибки, | Файловые системы Unix требуют периодической проверки на ошибки, | ||
| Строка 529: | Строка 529: | ||
| При подозрении на серьезные ошибки используйте **fsck -n** для проверки без изменений. Если проблема с суперблоком: | При подозрении на серьезные ошибки используйте **fsck -n** для проверки без изменений. Если проблема с суперблоком: | ||
| - | ==== Проверка ext3 и ext4 ==== | + | === Проверка ext3 и ext4 === |
| Журнал обеспечивает целостность данных, | Журнал обеспечивает целостность данных, | ||
| Строка 539: | Строка 539: | ||
| Повреждённую ФС можно смонтировать в режиме ext2. | Повреждённую ФС можно смонтировать в режиме ext2. | ||
| - | ==== Наихудший случай | + | === Наихудший случай === |
| При серьезных проблемах: | При серьезных проблемах: | ||
| Строка 549: | Строка 549: | ||
| Если резервных копий нет - обратитесь к профессиональным сервисам восстановления данных. | Если резервных копий нет - обратитесь к профессиональным сервисам восстановления данных. | ||
| + | |||
| + | ==== 4.2.12 Файловые системы специального назначения ==== | ||
| + | |||
| + | Не все ФС хранят данные на физических носителях. Многие служат системными интерфейсами, | ||
| + | |||
| + | ^ ФС ^ Точка монтирования ^ Назначение ^ | ||
| + | | **proc** | /proc | Информация о процессах и ядре. Нумерованные каталоги соответствуют PID, /proc/self - текущему процессу. Содержит / | ||
| + | | **sysfs** | /sys | Системная информация устройств (см. глава 3) | | ||
| + | | **tmpfs** | /run и др. | Временное хранилище в памяти и swap. Параметры: | ||
| + | | **squashfs** | /snap и др. | Read-only ФС со сжатым содержимым, | ||
| + | | **overlay** | контейнеры | Объединяет каталоги в составную систему. Применяется в контейнеризации (глава 17) | | ||
| + | |||
| + | |||
| + | ===== 4.3 Область подкачки swap ===== | ||
| + | |||
| + | Раздел диска используется не только для ФС, но и для расширения оперативной памяти. Система виртуальной памяти Linux автоматически перемещает неактивные страницы памяти на диск (подкачка). Область диска для этого называется **swap** (подкачка). | ||
| + | |||
| + | Просмотр использования swap: | ||
| + | |||
| + | <code bash> | ||
| + | $ free | ||
| + | total used free | ||
| + | Swap: 514072 189804 324268 | ||
| + | </ | ||
| + | |||
| + | ==== Раздел диска как область подкачки ==== | ||
| + | |||
| + | ^ Шаг ^ Команда ^ Описание ^ | ||
| + | | 1 | - | Убедиться, | ||
| + | | 2 | mkswap /dev/xxx | Поместить сигнатуру swap на раздел | | ||
| + | | 3 | swapon /dev/xxx | Активировать область в ядре | | ||
| + | |||
| + | Для автоматической активации при загрузке добавьте в /etc/fstab: | ||
| + | |||
| + | < | ||
| + | /dev/sda5 none swap sw 0 0 | ||
| + | </ | ||
| + | |||
| + | Или с UUID: | ||
| + | |||
| + | < | ||
| + | UUID=xxxx-xxxx none swap sw 0 0 | ||
| + | </ | ||
| + | |||
| + | ==== Файл как область подкачки ==== | ||
| + | |||
| + | При необходимости используйте обычный файл вместо раздела: | ||
| + | |||
| + | <code bash> | ||
| + | # dd if=/ | ||
| + | # mkswap swap_file | ||
| + | # swapon swap_file | ||
| + | </ | ||
| + | |||
| + | Для деактивации используйте **swapoff** (требуется свободная память в других областях). | ||
| + | |||
| + | ==== Определение размера области подкачки ==== | ||
| + | |||
| + | Классическое правило: | ||
| + | |||
| + | * **Многопользовательские системы**: | ||
| + | * **Однопользовательские системы**: | ||
| + | * **Серверы с высокой нагрузкой**: | ||
| + | |||
| + | **Частое обращение к swap** вызывает критическое падение производительности (диск медленнее памяти). | ||
| + | |||
| + | **На компьютере общего назначения** swap необходима. Без неё при исчерпании памяти ядро запускает [[glossary: | ||
| + | |||
| + | Подробнее о виртуальной памяти - глава 8. | ||
| + | |||
| + | ===== 4.4 Менеджер логических томов LVM ===== | ||
| + | |||
| + | [[soft: | ||
| + | |||
| + | Прямое управление разделами затруднено при изменении конфигурации после установки. Добавление диска требует переразбиения, | ||
| + | |||
| + | ==== Компоненты LVM ==== | ||
| + | |||
| + | ^ Компонент ^ Описание ^ | ||
| + | | **Physical Volume (PV)** | Физический блочный диск или раздел (/dev/sda1, /dev/sdb и т. д.) | | ||
| + | | **Volume Group (VG)** | Общий пул, созданный из одного или нескольких PV | | ||
| + | | **Logical Volume (LV)** | Виртуальный блочный диск, выделяемый из VG. На LV размещаются ФС или swap | | ||
| + | |||
| + | Логические тома действуют аналогично разделам на физическом диске, но размещение управляет LVM, а не пользователь. | ||
| + | |||
| + | ===== 4.6 Что находится внутри традиционной файловой системы ===== | ||
| + | |||
| + | Традиционная ФС Unix состоит из двух компонентов: | ||
| + | * **Пул блоков данных** - хранилище информации | ||
| + | * **Система БД на основе inode** - управление пулом данных | ||
| + | |||
| + | **inode** - структура данных, | ||
| + | |||
| + | **Каталоги** - тоже inode, содержащие список имен файлов и ссылки на другие inode. | ||
| + | |||
| + | **Пример структуры: | ||
| + | <code bash> | ||
| + | mkdir dir_1 dir_2 | ||
| + | echo a > dir_1/ | ||
| + | echo b > dir_1/ | ||
| + | echo c > dir_1/ | ||
| + | echo d > dir_2/ | ||
| + | ln dir_1/ | ||
| + | </ | ||
| + | |||
| + | **Разрешение пути** (например '' | ||
| + | |||
| + | ^ Шаг ^ Действие ^ | ||
| + | | 1 | Парсинг пути: компоненты '' | ||
| + | | 2 | Переход по корневому inode (2) к данным каталога | | ||
| + | | 3 | Поиск '' | ||
| + | | 4 | Проверка inode 12: это каталог | | ||
| + | | 5 | Переход по inode 12 к его данным каталога | | ||
| + | | 6 | Поиск '' | ||
| + | | 7 | Проверка inode 14: это файл, доступ разрешен | | ||
| + | |||
| + | **Специальные записи каталогов: | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ==== 4.6.1 Сведения о дескрипторе и количество ссылок ==== | ||
| + | |||
| + | Для просмотра дескриптора используйте '' | ||
| + | |||
| + | **Link count** - общее количество записей каталога, | ||
| + | |||
| + | | Операция | Действие | | ||
| + | | Создание файла | Новая запись каталога + новый дескриптор | | ||
| + | | Жесткая ссылка | Вручную созданная запись на существующий дескриптор ('' | ||
| + | | Удаление файла | Удаление ссылки: | ||
| + | |||
| + | При удалении '' | ||
| + | |||
| + | Для каталогов: | ||
| + | |||
| + | ==== 4.6.2 Распределение блоков ==== | ||
| + | |||
| + | **Block bitmap** (битовая карта) - каждый бит = один блок: | ||
| + | * 0 = свободен | ||
| + | * 1 = используется | ||
| + | |||
| + | Проблемы возникают при рассинхронизации дескрипторов и распределения блоков (некорректное выключение). Программа '' | ||
| + | |||
| + | <code bash> | ||
| + | # Проверяет и восстанавливает | ||
| + | fsck /dev/device | ||
| + | </ | ||
| + | |||
| + | Процесс: | ||
| + | |||
| + | ==== 4.6.3 Работа с файловыми системами в пользовательском пространстве ==== | ||
| + | |||
| + | Процессы доступ получают через системные вызовы ядра ('' | ||
| + | |||
| + | Данные доступны в основном для обратной совместимости. Не все ФС имеют inode: | ||
| + | |||
| + | | Файловая система | Жесткие ссылки | Примечание | | ||
| + | | ext4 | Да | Традиционная UNIX ФС | | ||
| + | | VFAT | Нет | '' | ||
| + | | VFS (абстракция) | Условно | Возвращает значения, | ||
| + | |||
| + | Системные вызовы Linux обеспечивают достаточную абстракцию - знать о дескрипторах не обязательно. Поддержка ФС может быть в ядре или пользовательском пространстве (FUSE). | ||