Работа с дисками: fdisk, parted, LVM, mount, fstab
TIP
Эта статья — часть серии Linux administration, посвящённой самостоятельному администрированию Linux, Self-Hosting и DevOps. Управление дисками — фундаментальная часть администрирования. Независимо от того, добавляете ли вы SSD к домашнему серверу или настраиваете хранилище в облаке, понимание разделов, файловых систем и монтирования критически важно.
📌 О чём эта статья?
Когда вы добавляете новый диск, расширяете корневую файловую систему или настраиваете отказоустойчивое хранилище, вам нужно уметь:
- Создавать и управлять разделами
- Форматировать диски
- Монтировать и автоматически подключать файловые системы
- Использовать LVM для гибкого управления пространством
В этой статье мы разберём:
- Как использовать
fdiskиpartedдля разметки дисков - Что такое LVM и зачем он нужен
- Как монтировать диски вручную и автоматически через
fstab - Практические примеры: добавление диска, расширение LV, настройка
/homeна отдельном разделе
WARNING
Операции с дисками могут привести к потере данных. Всегда делайте бэкап перед изменениями.
🧩 Основы: как Linux видит диски?
В отличие от Windows, где дискам присваиваются буквы (например, C:, D:), в Linux все файловые системы монтируются в единое дерево каталогов, начиная с корневого каталога /
В Linux диски представлены как устройства в /dev/:
/dev/sda,/dev/sdb— SATA/SCSI/USB диски/dev/nvme0n1— NVMe SSD/dev/vda— виртуальные диски (KVM, cloud)
Разделы:
/dev/sda1,/dev/sda2— разделы на диске/dev/nvme0n1p1— раздел на NVMe
INFO
Используйте
lsblkилиfdisk -lдля просмотра всех дисков и разделов.
🔧 fdisk — классический инструмент разметки
fdisk — это классическая программа для разметки жесткого диска в Linux. Она позволяет выполнять низкоуровневые операции с дисковыми устройствами, такие как создание, изменение и удаление разделов.
🔹 Просмотр диска
sudo fdisk -l /dev/sda🔹 Интерактивный режим
sudo fdisk /dev/sdaКоманды внутри fdisk:
p— показать текущие разделыn— создать новый разделd— удалитьt— изменить тип раздела (например,8e— Linux LVM)w— записать изменения и выйтиq— выйти без сохранения
WARNING
wприменяет изменения навсегда. Будьте осторожны!
🛠️ parted — современная альтернатива с поддержкой GPT
parted — это более современный редактор разделов, который позволяет задавать размеры разделов, а не только начало и конец диапазона блоков. GParted (GNOME Partition Manager) — это графический интерфейс для parted и других команд управления файловыми системами.
Info
partedработает с GPT (GUID Partition Table), что необходимо для дисков > 2 ТБ.- Изменения, внесенные с помощью
parted, применяются немедленно, в отличие отfdisk, где их нужно подтверждать.
🔹 Просмотр
sudo parted /dev/sda print🔹 Создание раздела
sudo parted /dev/sda mklabel gpt
sudo parted /dev/sda mkpart primary ext4 0% 100%🔹 Изменение размера
sudo parted /dev/sda resizepart 1 50GBINFO
partedподдерживает точные размеры и работает напрямую с GPT.
Источник: GNU Parted Manual
💾 Форматирование: создание файловой системы
После создания раздела его нужно отформатировать.
Поддерживаемые ФС:
ext4— стандарт для Linuxxfs— высокая производительностьbtrfs— продвинутые функции (снапшоты, сжатие)swap— раздел подкачки
Команды:
sudo mkfs.ext4 /dev/sda1
sudo mkfs.xfs /dev/sda1
sudo mkswap /dev/sda2
sudo swapon /dev/sda2TIP
Всегда проверяйте, что делаете:
lsblkиblkidпомогут избежать ошибок.
🔌 mount — ручное монтирование
mount подключает файловую систему к определённой точке в иерархии.
🔹 Основные команды
sudo mkdir /mnt/data
sudo mount /dev/sda1 /mnt/data🔹 Просмотр смонтированных ФС
mount # Все смонтированные
mount | grep sda # Только sda
findmnt /mnt/data # Где смонтировано🔹 Отмонтирование
sudo umount /mnt/dataWARNING
Не отключайте диск, пока он используется (
umount: target is busy).
📂 /etc/fstab — автоматическое монтирование при загрузке
Файл /etc/fstab определяет, какие файловые системы монтировать при старте.
🔹 Формат строки:
<устройство> <точка_монтирования> <тип_ФС> <опции> <dump> <pass>
Пример:
# <file system> <mount point> <type> <options> <dump> <pass>
UUID=1234-5678 /boot vfat defaults,noatime 0 2
/dev/sda1 /data ext4 defaults,noatime 0 0
/dev/sdb1 /backup xfs defaults,noatime,barrier=1 0 0
tmpfs /tmp tmpfs defaults,noatime,size=2G 0 0🔹 Объяснение полей
| Поле | Описание |
|---|---|
| Устройство | Можно использовать UUID, LABEL, /dev/sdX |
| Точка монтирования | Директория, должна существовать |
| Тип ФС | ext4, xfs, btrfs, swap и др. |
| Опции | defaults, noatime, ro, noexec и др. |
dump | Резерв: 0 — не резервировать |
pass | Порядок проверки fsck: 0 — не проверять, 1 — корень, 2 — остальные |
INFO
Используйте
UUIDвместо/dev/sdX— порядок дисков может меняться.
Получить UUID:blkidилиlsblk -f
🔄 LVM — Logical Volume Manager
LVM — это дополнительный уровень абстракции над аппаратными средствами, который позволяет объединять несколько дисков в один логический диск, а затем разбивать его так, как необходимо. Это обеспечивает большую гибкость в управлении дисковым пространством.
- Назначение: более гибкое и эффективное управление дисковым пространством, позволяющее увеличивать, уменьшать и перемещать логические тома без необходимости переформатирования всего диска.
- Уровни абстракции LVM:
- Физические тома (PV - Physical Volume): это разделы или целые неразмеченные диски, которые LVM может использовать. Создаются командой
pvcreate. - Группы томов (VG - Volume Group): физические тома объединяются в группу, создавая единый пул дискового пространства. Создаются командой
vgcreate. - Логические тома (LV - Logical Volume): это разделы внутри группы томов, которые можно отформатировать в любую файловую систему и использовать как обычные разделы. Создаются командой
lvcreate.
- Физические тома (PV - Physical Volume): это разделы или целые неразмеченные диски, которые LVM может использовать. Создаются командой
- Совместимость с загрузчиками: GRUB2 нормально загружается с LVM, но устаревший GRUB требует создания отдельного раздела
/bootза пределами LVM. - Пример использования: объединение нескольких небольших дисков в один диск большего размера, расширение дискового пространства виртуального сервера.
LVM — это гибкая система управления дисками, позволяющая:
- Объединять несколько дисков в один пул
- Создавать логические тома (LV) произвольного размера
- Изменять размер томов “на лету”
- Делать снапшоты
🔹 Архитектура LVM
Физические диски (PV) → Группа томов (VG) → Логические тома (LV)
🔹 Шаг 1: Создание Physical Volume (PV)
sudo pvcreate /dev/sdb /dev/sdcПроверка:
sudo pvs
sudo pvdisplay🔹 Шаг 2: Создание Volume Group (VG)
sudo vgcreate vg_data /dev/sdb /dev/sdcПроверка:
sudo vgs
sudo vgdisplay🔹 Шаг 3: Создание Logical Volume (LV)
sudo lvcreate -L 50G -n lv_home vg_dataФорматирование и монтирование:
sudo mkfs.ext4 /dev/vg_data/lv_home
sudo mkdir /home_new
sudo mount /dev/vg_data/lv_home /home_new🔹 Расширение логического тома
# Увеличить на 10 ГБ
sudo lvextend -L +10G /dev/vg_data/lv_home
# Расширить ФС (для ext4)
sudo resize2fs /dev/vg_data/lv_home
# Для xfs
sudo xfs_growfs /mount/point🔹 Снапшоты (Snapshot)
Создание снапшота:
sudo lvcreate -L 10G -s -n snap_home /dev/vg_data/lv_homeПолезно для:
- Бэкапа “на лету”
- Тестирования изменений
INFO
Снапшоты требуют свободного места в VG.
🧪 Практические примеры
Пример 1: Добавление нового диска для /home
# 1. Создать раздел
sudo fdisk /dev/sdb
# 2. Форматировать
sudo mkfs.ext4 /dev/sdb1
# 3. Создать точку монтирования
sudo mkdir /mnt/newhome
sudo mount /dev/sdb1 /mnt/newhome
# 4. Скопировать данные
sudo rsync -avxHAX /home/ /mnt/newhome/
# 5. Обновить /etc/fstab
echo "UUID=$(blkid -s UUID -o value /dev/sdb1) /home ext4 defaults,noatime 0 2" | sudo tee -a /etc/fstab
# 6. Перемонтировать
sudo umount /mnt/newhome
sudo mount /homeПример 2: Расширение корневого раздела с LVM
# Добавить новый диск
sudo pvcreate /dev/sdd
sudo vgextend vg_root /dev/sdd
# Увеличить LV
sudo lvextend -l +100%FREE /dev/vg_root/lv_root
# Расширить ФС
sudo resize2fs /dev/vg_root/lv_root⚠️ Лучшие практики
WARNING
Следуйте этим правилам, чтобы избежать катастроф.
- Используйте
UUIDвfstab, а не/dev/sdX. - Всегда проверяйте
fstabперед перезагрузкой:sudo mount -o remount / - Не монтируйте
noautoв критичные точки (/,/boot). - Используйте
noatimeдля производительности. - LVM — отличный выбор для гибкости, но требует понимания.
- Тестируйте
fstabв live-среде, если боитесь потерять доступ.
📊 Полезные команды диагностики
lsblk # Древовидный вывод всех блочных устройств
blkid # UUID и типы ФС
df -h # Свободное место
mount # Смонтированные ФС
sudo fdisk -l # Список дисков
sudo pvs / vgs / lvs # Состояние LVM
systemctl daemon-reload # После изменения fstab (иногда требуется)✅ Заключение
Теперь вы можете:
- Размечать диски с
fdiskиparted - Форматировать и монтировать файловые системы
- Автоматизировать монтирование через
fstab - Использовать LVM для гибкого управления дисками
- Диагностировать и исправлять проблемы с дисками
QUOTE
“Хороший администратор не боится дисков. Он их понимает.”