План разметки диска и swap [102.1]

Рейтинг: 67.6% · 8 голосов
Полный курс LPIC-1 (экзамены 101-500 и 102-500): архитектура, загрузка, пакеты, команды и текст, ФС и права, шелл-скрипты, пользователи, сервисы, сеть, безопасность. Debian и RHEL.
Ответить
Аватара пользователя
Sergey_Sysadmin
Сообщения: 134
Зарегистрирован: 11 май 2026, 05:31

План разметки диска и swap [102.1]

Сообщение Sergey_Sysadmin »

Оглавление курса (41)
  1. Введение в LPIC-1 и как устроен путь администратора
  2. Железо, устройства и модули ядра [101.1]
  3. Загрузка системы: от BIOS до systemd [101.2]
  4. systemd, цели и уровни выполнения [101.3]
  5. План разметки диска и swap [102.1] (вы здесь)
  6. Загрузчик GRUB 2 [102.2]
  7. Разделяемые библиотеки [102.3]
  8. Управление пакетами в Debian: dpkg и apt [102.4]
  9. Управление пакетами RPM, DNF и Zypper [102.5]
  10. Linux как гость виртуализации [102.6]
  11. Командная строка Bash [103.1]
  12. Обработка текста фильтрами [103.2]
  13. Базовое управление файлами [103.3]
  14. Потоки, конвейеры и перенаправление [103.4]
  15. Процессы: создание, мониторинг, сигналы [103.5]
  16. Приоритеты выполнения процессов [103.6]
  17. Регулярные выражения [103.7]
  18. Редактор vi и vim [103.8]
  19. Разделы и создание файловых систем [104.1]
  20. Целостность и обслуживание ФС [104.2]
  21. Монтирование файловых систем [104.3]
  22. Урок 21. Права доступа и владение: rwx, chmod, umask и специальные биты
  23. Жёсткие и символические ссылки
  24. FHS и поиск файлов в системе [104.7]
  25. Окружение и кастомизация оболочки [105.1]
  26. Урок 25. Написание простых bash-скриптов [105.2]
  27. Графика, рабочие столы и доступность
  28. Учётные записи пользователей и групп
  29. Автоматизация задач: cron, at, таймеры [107.2]
  30. Локализация и интернационализация [107.3]
  31. Системное время и синхронизация [108.1]
  32. Системное логирование [108.2]
  33. Основы почтового агента (MTA) [108.3]
  34. Печать и CUPS [108.4]
  35. Основы интернет-протоколов [109.1]
  36. Постоянная конфигурация сети [109.2]
  37. Диагностика сети [109.3]
  38. DNS на стороне клиента [109.4]
  39. Задачи администрирования безопасности [110.1]
  40. Настройка безопасности хоста [110.2]
  41. Шифрование данных: SSH и GnuPG [110.3]
Урок 4. План разметки диска и swap [102.1]

Перед установкой системы администратор решает задачу, цена ошибки в которой растянута на годы: как нарезать диск. Поделишь неудачно - и через полгода /var с логами упрётся в потолок и положит сервис, а свободные 200 ГБ будут болтаться в /home, до которых не дотянуться. В этом уроке разберём, какие каталоги имеет смысл выносить в отдельные разделы, как считать swap и крутить swappiness, чем GPT отличается от MBR на уровне планирования и зачем поверх всего этого городить LVM.

Изображение

Как это работает

Файловая система Linux - это одно дерево от корня /. Физически разные куски этого дерева могут лежать на разных разделах или дисках, и место их стыковки называется точкой монтирования. Когда вы выделяете /var в отдельный раздел, переполнение логов уже не съест место под /, потому что это физически разные контейнеры. В этом и смысл вынесения: изоляция роста, разные параметры монтирования (например noexec на /tmp), разные ФС под разные нагрузки.

Что обычно выносят. /boot - небольшой раздел (1-2 ГБ) с ядрами и initramfs; нужен, если корень на LVM, RAID или шифровании, которые загрузчик не умеет читать напрямую. EFI System Partition (ESP) - обязательный на UEFI раздел в FAT32 размером 512 МБ - 1 ГБ, монтируется в /boot/efi или /efi, там лежат загрузчики. /home - данные пользователей, удобно держать отдельно, чтобы переустановка системы их не трогала. /var - логи, кэши, базы, очереди почты, контейнеры; главный кандидат на вынос на сервере. /tmp - временные файлы; на современных системах часто это tmpfs в оперативке, отдельный дисковый раздел уже не обязателен.

Swap - это место, куда ядро вытесняет редко используемые страницы памяти, когда RAM под давлением. Это не замена памяти, а страховка от OOM-killer и условие для hibernate (suspend-to-disk), которому нужен swap не меньше объёма RAM. Параметр vm.swappiness (0-200, по умолчанию 60) задаёт, насколько охотно ядро вытесняет анонимные страницы в swap вместо вытеснения файлового кэша. Низкое значение - дольше держим процессы в RAM; на серверах БД часто ставят 10, на десктопах 60 норм.

MBR против GPT - это два формата таблицы разделов. MBR - легаси из эпохи BIOS: максимум 4 первичных раздела (обходится одним extended с логическими внутри) и потолок диска 2 ТБ. GPT - современный стандарт, идёт в паре с UEFI: до 128 разделов из коробки, диски в десятки ТБ, дублирующая таблица в конце диска для надёжности. В 2026 году новые системы это почти всегда GPT+UEFI; MBR встречается на старом железе и в виртуалках с BIOS-загрузкой.

LVM (Logical Volume Manager) - прослойка между физическими дисками и файловыми системами. Физические тома (PV) объединяются в группу (VG), из которой нарезаются логические тома (LV) под точки монтирования. Гибкость в том, что LV можно увеличивать на лету (lvextend плюс resize2fs/xfs_growfs), переносить между дисками и снапшотить, не привязываясь к жёстким границам разделов. Минус - чуть сложнее восстановление при сбое, поэтому /boot обычно держат вне LVM.

Команды и примеры

Посмотреть текущую разметку и тип таблицы:

Код: Выделить всё

lsblk -f                 # дерево блочных устройств, ФС, метки, UUID
parted -l                # таблица разделов и тип (gpt/msdos=MBR)
blkid                    # UUID и типы ФС - их и пишут в /etc/fstab
swapon --show            # активные swap-устройства и их приоритет
free -h                  # сколько RAM и swap занято
Создать GPT-разметку (универсально для обоих семейств):

Код: Выделить всё

parted /dev/sdb mklabel gpt
parted -a optimal /dev/sdb mkpart ESP fat32 1MiB 513MiB
parted /dev/sdb set 1 esp on
parted -a optimal /dev/sdb mkpart primary 513MiB 100%
Работа со swap. Файл swap (удобно, когда раздела нет):

Код: Выделить всё

fallocate -l 4G /swapfile      # либо dd, если ФС не поддерживает fallocate
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab
Swappiness - проверить и задать постоянно:

Код: Выделить всё

cat /proc/sys/vm/swappiness        # текущее значение
sysctl vm.swappiness=10            # до перезагрузки
echo 'vm.swappiness = 10' > /etc/sysctl.d/99-swappiness.conf  # навсегда
LVM-разметка одинакова в Debian/Ubuntu и RHEL/Fedora, различаются только пакеты:

Код: Выделить всё

# Debian 13 / Ubuntu 24.04:  apt install lvm2
# RHEL 10 / Fedora 41+:      dnf install lvm2

pvcreate /dev/sdb2
vgcreate vg_data /dev/sdb2
lvcreate -L 20G -n lv_var vg_data
mkfs.xfs /dev/vg_data/lv_var       # RHEL по умолчанию xfs; Debian чаще ext4
Расширение тома без размонтирования (типовая задача сервера):

Код: Выделить всё

lvextend -L +10G /dev/vg_data/lv_var
xfs_growfs /var          # для xfs - только рост, по точке монтирования
resize2fs /dev/vg_data/lv_var   # для ext4 - можно указывать устройство
Частые грабли
  • Слишком маленький /boot. При накоплении ядер обновление падает с No space left. Закладывайте 1-2 ГБ и чистите старые ядра (apt autoremove либо dnf remove old kernels).
  • Отдельный жёсткий /usr ломает раннюю загрузку - бинарники нужны уже в initramfs. В 2026 /usr почти всегда часть корня (usr-merge), не выносите его руками.
  • Забыли esp-флаг на ESP или сделали его не в FAT32 - UEFI его не увидит и система не загрузится.
  • swap-файл с правами не 600 - swapon ругается на небезопасные права (мир может читать вытесненную память).
  • swappiness=0 не отключает swap полностью; ядро всё равно вытеснит при крайнем давлении. Чтобы выключить - swapoff и убрать строку из fstab.
  • Прописали раздел в fstab по имени /dev/sdb1 - после добавления диска порядок устройств плавает. Используйте UUID из blkid.
  • Корень на LVM или LUKS без отдельного /boot - загрузчик не дотянется до ядра.
Мини-лаба
  • На тестовом стенде подключите второй диск (или создайте файл-образ через losetup) и разметьте его в GPT через parted.
  • Нарежьте два раздела: один под LVM, второй оставьте под swap.
  • Соберите PV-VG-LV, создайте LV на 1 ГБ, отформатируйте в ext4 и смонтируйте в /mnt/test.
  • Расширьте LV на 500 МБ командой lvextend и проверьте, что resize2fs увеличил ФС без размонтирования.
  • Создайте swap-файл на 512 МБ, активируйте его и убедитесь через swapon --show, что он виден.
  • Поменяйте vm.swappiness на 10 через sysctl.d и проверьте после reboot, что значение сохранилось.
  • Пропишите LV и swap в /etc/fstab по UUID и выполните mount -a без ошибок.
Контрольные вопросы
  • Чем отличается ESP от /boot и почему на UEFI-системе нужны оба?
  • Какой максимум первичных разделов у MBR и как обходят это ограничение?
  • Что делает параметр vm.swappiness и в какую сторону его крутят на сервере БД?
  • Какие три уровня абстракции вводит LVM и за счёт чего достигается гибкость?
  • Почему /boot обычно держат вне LVM и вне шифрования?
  • Какие права обязательны для swap-файла и почему swapon их проверяет?
👍4 ❤️2 🔥 😄 🤔1
Аватара пользователя
wireguardgeek
Сообщения: 1
Зарегистрирован: 11 май 2026, 18:03

Re: План разметки диска и swap [102.1]

Сообщение wireguardgeek »

А если поставил swap-файл вместо раздела - hibernate вообще заработает? Где-то читал что с файлом проблемы с resume.
👍1 ❤️1 🔥 😄 🤔
Аватара пользователя
alcatraz
Сообщения: 1
Зарегистрирован: 19 май 2026, 21:40

Re: План разметки диска и swap [102.1]

Сообщение alcatraz »

На сервере с 128 ГБ RAM реально нужен swap или можно вообще без него? Боюсь что OOM-killer без него злее.
👍 ❤️1 🔥1 😄 🤔
Ответить
← Предыдущая глава
systemd, цели и уровни выполнения [101.3]
Следующая глава →
Загрузчик GRUB 2 [102.2]

Все главы курса «LPIC-1: администратор Linux (101 + 102)»

Поделиться темой: ✈ Telegram VK

Вернуться в «LPIC-1: администратор Linux»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость