- Home »

Как создавать разделы и форматировать устройства хранения в Linux
Когда ты в первый раз настраиваешь сервер или подключаешь новый диск, неизбежно сталкиваешься с необходимостью создания разделов и форматирования устройств хранения. Это фундаментальный навык для любого, кто работает с Linux-серверами. Без понимания этих процессов можно легко угробить данные или создать неэффективную файловую систему, которая будет тормозить всю систему.
Эта статья поможет тебе разобраться с инструментами разбиения дисков, выбрать подходящие файловые системы и научиться делать всё правильно с первого раза. Мы рассмотрим как классические утилиты вроде fdisk, так и современные решения, плюс разберём типичные сценарии, с которыми сталкиваешься на практике.
Как это работает: основы дисковой подсистемы Linux
В Linux всё является файлом, и диски не исключение. Физические диски представлены как устройства в /dev/
: /dev/sda
, /dev/nvme0n1
, /dev/vdb
и так далее. Разделы обозначаются цифрами: /dev/sda1
, /dev/sda2
.
Существует два основных стандарта разбиения дисков:
- MBR (Master Boot Record) — старый формат, ограничение в 2TB и максимум 4 первичных раздела
- GPT (GUID Partition Table) — современный стандарт, поддерживает диски до 8 ZB и практически неограниченное количество разделов
Для серверов почти всегда используется GPT, особенно если диск больше 2TB или планируется много разделов.
Определяем устройства и их состояние
Перед началом работы нужно понять, что у нас есть в системе. Для этого используем несколько команд:
# Список всех блочных устройств
lsblk
# Информация о дисках и разделах
fdisk -l
# Подробная информация о дисках
parted -l
# Информация о файловых системах
df -h
# Просмотр UUID и типов файловых систем
blkid
Команда lsblk
особенно удобна — она показывает древовидную структуру всех устройств, включая точки монтирования.
Создание разделов: fdisk vs parted vs gdisk
Есть несколько инструментов для создания разделов, у каждого свои плюсы и минусы:
Утилита | Поддержка MBR | Поддержка GPT | Удобство | Рекомендации |
---|---|---|---|---|
fdisk | Да | Да (с версии 2.23) | Средне | Универсальный выбор |
parted | Да | Да | Высокое | Для скриптов и сложных задач |
gdisk | Нет | Да | Высокое | Только для GPT |
Практика: создаём разделы на новом диске
Допустим, у нас есть новый диск /dev/sdb
размером 100GB, и нужно создать на нём несколько разделов. Воспользуемся fdisk:
# Запускаем fdisk для работы с диском
fdisk /dev/sdb
# Внутри fdisk:
# g - создать новую GPT таблицу разделов
# n - создать новый раздел
# p - показать текущие разделы
# w - записать изменения
# q - выйти без сохранения
# Создаём первый раздел 20GB
Command: g # создаём GPT таблицу
Command: n # новый раздел
Partition number: 1
First sector: (нажимаем Enter для значения по умолчанию)
Last sector: +20G
# Создаём второй раздел на оставшееся место
Command: n
Partition number: 2
First sector: (Enter)
Last sector: (Enter - используем всё оставшееся место)
# Сохраняем изменения
Command: w
Альтернативный способ через parted — более подходящий для автоматизации:
# Создаём GPT таблицу
parted /dev/sdb mklabel gpt
# Создаём первый раздел
parted /dev/sdb mkpart primary 1MiB 20GiB
# Создаём второй раздел
parted /dev/sdb mkpart primary 20GiB 100%
# Проверяем результат
parted /dev/sdb print
Форматирование: выбираем файловую систему
После создания разделов их нужно отформатировать. Выбор файловой системы зависит от задач:
ФС | Применение | Плюсы | Минусы |
---|---|---|---|
ext4 | Универсальное | Стабильная, быстрая | Нет сжатия, snapshots |
xfs | Большие файлы | Масштабируемая | Нельзя уменьшить |
btrfs | Современные задачи | Snapshots, сжатие | Менее стабильна |
zfs | Критичные данные | Самовосстановление | Много RAM |
Для большинства серверных задач ext4 и xfs — оптимальный выбор.
# Форматируем в ext4
mkfs.ext4 /dev/sdb1
# Форматируем в xfs
mkfs.xfs /dev/sdb2
# Создаём swap
mkswap /dev/sdb3
# Проверяем созданные файловые системы
blkid /dev/sdb1 /dev/sdb2
Продвинутые опции форматирования
При форматировании можно настроить различные параметры для оптимизации под конкретные задачи:
# ext4 с оптимизацией под большие файлы
mkfs.ext4 -T largefile -m 1 /dev/sdb1
# xfs с увеличенным размером allocation group
mkfs.xfs -d agcount=8 /dev/sdb2
# Создание файловой системы с меткой
mkfs.ext4 -L "data-storage" /dev/sdb1
# Резервирование меньшего процента для root (по умолчанию 5%)
mkfs.ext4 -m 1 /dev/sdb1
Монтирование и автоматическое подключение
После форматирования раздел нужно смонтировать:
# Создаём точку монтирования
mkdir -p /mnt/data
# Монтируем временно
mount /dev/sdb1 /mnt/data
# Проверяем
df -h /mnt/data
# Для постоянного монтирования редактируем /etc/fstab
echo "UUID=$(blkid -s UUID -o value /dev/sdb1) /mnt/data ext4 defaults 0 2" >> /etc/fstab
# Проверяем корректность fstab
mount -a
Лучше использовать UUID вместо имён устройств, так как они могут изменяться при перезагрузке.
Скрипт для автоматизации
Вот пример скрипта для автоматического создания и форматирования раздела:
#!/bin/bash
DEVICE="/dev/sdb"
MOUNT_POINT="/mnt/data"
LABEL="data-storage"
# Проверяем, что устройство существует
if [ ! -b "$DEVICE" ]; then
echo "Устройство $DEVICE не найдено"
exit 1
fi
# Создаём GPT таблицу и раздел
parted -s $DEVICE mklabel gpt
parted -s $DEVICE mkpart primary 1MiB 100%
# Ждём, пока система обновит информацию о разделах
sleep 2
# Форматируем
mkfs.ext4 -L "$LABEL" "${DEVICE}1"
# Создаём точку монтирования
mkdir -p "$MOUNT_POINT"
# Получаем UUID
UUID=$(blkid -s UUID -o value "${DEVICE}1")
# Добавляем в fstab
echo "UUID=$UUID $MOUNT_POINT ext4 defaults 0 2" >> /etc/fstab
# Монтируем
mount "$MOUNT_POINT"
echo "Раздел успешно создан и смонтирован в $MOUNT_POINT"
Работа с LVM
LVM (Logical Volume Manager) добавляет гибкости в управление дисками. Особенно полезно для серверов, где может понадобиться изменять размеры разделов:
# Создаём физический том
pvcreate /dev/sdb1
# Создаём группу томов
vgcreate vg_data /dev/sdb1
# Создаём логический том
lvcreate -L 50G -n lv_data vg_data
# Форматируем
mkfs.ext4 /dev/vg_data/lv_data
# Увеличиваем размер логического тома
lvextend -L +20G /dev/vg_data/lv_data
# Расширяем файловую систему
resize2fs /dev/vg_data/lv_data
Мониторинг и диагностика
Полезные команды для мониторинга дисковой подсистемы:
# Информация о производительности дисков
iostat -x 1
# Использование места на дисках
df -h
# Анализ использования места в директории
du -sh /*
# Проверка файловой системы
fsck -f /dev/sdb1
# Информация о SMART статусе диска
smartctl -a /dev/sda
Типичные ошибки и их решение
Ошибка “device busy” при попытке создать разделы:
# Проверяем, не смонтирован ли диск
umount /dev/sdb1
# Убеждаемся, что никто не использует диск
lsof /dev/sdb1
# Принудительно обновляем таблицу разделов
partprobe /dev/sdb
Потеря данных при неправильном указании устройства:
- Всегда дважды проверяй имя устройства перед выполнением команд
- Используй
lsblk
для подтверждения - Создавай бэкапы перед работой с разделами
Интеграция с облачными платформами
При работе с VPS или выделенными серверами часто приходится подключать дополнительные диски. Многие провайдеры предоставляют возможность “горячего” подключения дисков:
# Пересканируем SCSI устройства для обнаружения новых дисков
echo "- - -" > /sys/class/scsi_host/host0/scan
# Или используем команду rescan
echo 1 > /sys/class/scsi_device/2:0:0:0/device/rescan
Автоматизация с помощью cloud-init
Для автоматизации настройки дисков при развёртывании серверов можно использовать cloud-init:
#cloud-config
disk_setup:
/dev/sdb:
table_type: gpt
layout: True
overwrite: False
fs_setup:
- filesystem: ext4
device: /dev/sdb1
partition: auto
mounts:
- ["/dev/sdb1", "/mnt/data", "ext4", "defaults", "0", "2"]
Заключение и рекомендации
Умение правильно создавать разделы и форматировать диски — это основа работы с Linux-серверами. Вот ключевые моменты, которые стоит запомнить:
- Планируй заранее: продумай структуру разделов перед началом работы
- Используй GPT для современных систем и дисков больше 2TB
- Выбирай файловую систему в зависимости от задач: ext4 для универсальности, xfs для больших файлов
- Автоматизируй процессы с помощью скриптов и инструментов вроде parted
- Используй LVM когда нужна гибкость в управлении дисками
- Мониторь состояние дисков с помощью SMART и iostat
Эти навыки пригодятся тебе при настройке новых серверов, расширении существующих систем или миграции данных. Главное — всегда проверяй команды дважды и делай бэкапы перед серьёзными изменениями.
Полезные ссылки для дальнейшего изучения:
В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.
Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.