Настройка и обслуживание дисков в Linux - базовая задача для каждого системного администратора и DevOps-инженера. От корректной разметки и монтирования зависит стабильность сервера, доступность данных и производительность приложений. Эта статья предоставляет структурированный набор проверенных инструкций для работы с дисками как через командную строку, так и с помощью графических интерфейсов. Вы получите готовые команды для разметки, форматирования, диагностики и мониторинга, которые можно применять сразу, снижая риск ошибок в производственной среде.
Материал охватывает ключевые консольные утилиты fdisk, parted, gdisk, а также графические инструменты GNOME Disks и KDE Partition Manager. Каждый раздел содержит конкретные примеры команд, их вывод и пояснения. Инструкции основаны на практическом опыте и адаптированы для реальных задач администрирования серверов и рабочих станций.
Базовые принципы и подготовка: что нужно знать перед началом работы с дисками
Любая операция с дисками начинается с диагностики текущего состояния системы. Пропуск этого шага - частая причина критических ошибок, таких как случайное форматирование системного раздела или потеря данных. Первое правило: всегда проверяйте, с каким именно диском или разделом вы работаете, и убедитесь, что на нем нет активных критических данных без резервной копии.
Физический диск (например, /dev/sda, /dev/nvme0n1) содержит разделы (/dev/sda1, /dev/sda2), на которых создаются файловые системы (ext4, XFS). Для безопасного управления необходимо четко различать эти уровни. Перед внесением изменений используйте следующие команды для получения полной картины.
Диагностика текущего состояния: lsblk, blkid и df
Команда lsblk -f отображает древовидную структуру всех блочных устройств, их разделов, файловых систем и точек монтирования. Это основной инструмент для визуализации.
NAME FSTYPE LABEL UUID MOUNTPOINT
nvme0n1
├─nvme0n1p1 vfat 5A7B-3F2C /boot/efi
├─nvme0n1p2 ext4 a1b2c3d4-e5f6-7890-1234-567890abcd /
└─nvme0n1p3 swap 9e8f7d6c-5b4a-3210-fedc-ba0987654321 [SWAP]
Команда blkid выводит список всех разделов с их UUID и типами файловых систем. UUID - уникальный идентификатор, который предпочтительнее использовать в конфигурационных файлах (например, /etc/fstab) вместо имен устройств (/dev/sda1), так как он не меняется при переподключении дисков.
/dev/nvme0n1p2: UUID="a1b2c3d4-e5f6-7890-1234-567890abcd" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="12345678-01"
/dev/nvme0n1p1: UUID="5A7B-3F2C" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="12345678-02"
Команда df -h показывает использование дискового пространства на смонтированных файловых системах в удобном для человека формате (гигабайты, мегабайты). Она помогает быстро определить, какие разделы заполнены.
Filesystem Size Used Avail Use% Mounted on
/dev/nvme0n1p2 50G 15G 33G 31% /
Перед выполнением операций по разметке или форматированию убедитесь, что выбранное устройство не содержит несмонтированных, но важных данных. Для этого можно использовать команду mount | grep /dev/sdX или проверить вывод lsblk. Если вы администрируете сервер, эти же команды помогут быстро оценить состояние хранилища, что полезно при мониторинге производительности.
Разметка дисков: консольные утилиты fdisk, parted и gdisk
После идентификации целевого диска наступает этап разметки - создания или изменения разделов. Выбор утилиты зависит от типа таблицы разделов: MBR (Master Boot Record, устаревающий стандарт) или GPT (GUID Partition Table, современный стандарт). GPT поддерживает диски объемом более 2 ТБ и позволяет создавать более 4 основных разделов.
Для работы с MBR традиционно используется fdisk. Для GPT предпочтительнее parted (универсальный) или gdisk (специализированный). parted также поддерживает MBR и удобен для написания скриптов.
fdisk: классический инструмент для работы с таблицей разделов MBR
Запустите утилиту для нужного диска: sudo fdisk /dev/sdb. fdisk работает в интерактивном режиме. Основные команды внутри утилиты:
p- вывести текущую таблицу разделов.n- создать новый раздел. Вам предложат выбрать тип (primary/extended) и указать первый и последний сектор (можно указать размер, например, +10G).t- изменить тип раздела. Для обычного раздела Linux используется тип 83, для swap - 82.w- записать изменения на диск и выйти. Это финальная и необратимая операция.q- выйти без сохранения изменений.
Пример последовательности для создания основного раздела под Linux на всем диске:
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-20971519, default 2048): [Enter]
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-20971519, default 20971519): [Enter]
Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): 83
Command (m for help): w
parted: универсальный и мощный инструмент для GPT и скриптов
Утилита parted более современна и поддерживает оба стандарта. Её можно использовать как интерактивно (sudo parted /dev/sdb), так и в режиме одной команды, что удобно для автоматизации.
Создание GPT таблицы и раздела с помощью одной команды:
sudo parted /dev/sdb mklabel gpt mkpart primary ext4 1MiB 100%
Эта команда создает новую таблицу разделов GPT на /dev/sdb, затем создает основной раздел, занимающий весь диск (от 1 МиБ до 100%), с файловой системой ext4 (это лишь метка, реальное форматирование делается отдельно командой mkfs). Использование 1 MiB в качестве начальной точки обеспечивает выравнивание разделов для оптимальной производительности на SSD и современных HDD.
В интерактивном режиме parted использует команды типа print, mkpart, rm, quit.
gdisk: специализированный инструмент для таблиц разделов GPT
Утилита gdisk (часто устанавливается пакетом gdisk) аналогична fdisk по интерфейсу, но работает только с GPT. Запуск: sudo gdisk /dev/sdb. Команды очень похожи на fdisk: n для создания раздела, p для просмотра, w для записи. gdisk предоставляет более детальный контроль над атрибутами разделов GPT.
После выполнения любой из этих утилит и записи изменений (w) может потребоваться обновить информацию о разделах в ядре командой sudo partprobe /dev/sdb или перезагрузка.
Форматирование и создание файловых систем: команды mkfs и mount
После создания раздела на нем необходимо создать файловую систему. В Linux для этого используется семейство команд mkfs.*. Выбор файловой системы зависит от задач: ext4 - надежный и универсальный выбор для большинства случаев, XFS - хорошо показывает себя с большими файлами и высокой параллельной нагрузкой, Btrfs - предлагает продвинутые функции вроде снапшотов и сжатия.
Создание файловой системы: от ext4 до XFS
Для форматирования раздела /dev/sdb1 в ext4 выполните:
sudo mkfs.ext4 -L data_disk /dev/sdb1
Опция -L задает метку тома, что упрощает его идентификацию. Для создания файловой системы XFS:
sudo mkfs.xfs -f -L fast_volume /dev/sdb1
Ключ -f принудительно форматирует раздел, даже если на нем уже есть файловая система. Выбор между ext4 и XFS часто сводится к специфике нагрузки: XFS может быть предпочтительнее для баз данных или медиахранилищ, в то время как ext4 остается стандартом для корневых и загрузочных разделов.
Монтирование разделов: временное и постоянное (fstab)
Чтобы получить доступ к отформатированному разделу, его необходимо смонтировать в каталог файловой системы. Временное монтирование выполняется командой mount:
sudo mkdir -p /mnt/data
sudo mount /dev/sdb1 /mnt/data
После перезагрузки это монтирование сбросится. Для автоматического монтирования при загрузке нужно добавить запись в файл /etc/fstab. Использование UUID вместо имени устройства предотвращает ошибки, если порядок подключения дисков изменится. Получить UUID можно командой blkid.
Пример строки для /etc/fstab:
UUID=a1b2c3d4-e5f6-7890-1234-567890abcd /mnt/data ext4 defaults,noatime 0 2
Структура строки: устройство (UUID), точка монтирования, тип файловой системы, опции, dump, pass. Опция noatime отключает запись времени последнего доступа к файлу, что может повысить производительность. После редактирования fstab проверьте запись командой sudo mount -a - она смонтирует все, что описано в файле, без перезагрузки.
Графические инструменты: GNOME Disks и KDE Partition Manager для рабочих станций
Хотя командная строка - основной инструмент для серверов, на рабочих станциях или при настройке домашнего NAS визуальные утилиты могут ускорить выполнение простых операций. Они предоставляют интуитивно понятный интерфейс для просмотра структуры дисков, создания и форматирования разделов.
GNOME Disks: простой и интегрированный инструмент для базовых операций
Утилита GNOME Disks (пакет gnome-disk-utility) обычно предустановлена в средах GNOME. Она позволяет:
- Просматривать SMART-атрибуты диска.
- Создавать и удалять разделы с помощью графического мастера.
- Форматировать разделы в различные файловые системы (ext4, NTFS, FAT).
- Настраивать параметры монтирования и редактировать /etc/fstab через интерфейс.
Чтобы создать раздел, выберите диск, нажмите на «плюс» (+), укажите размер, тип и файловую систему. Все изменения применяются после подтверждения. Этот инструмент идеален для быстрой подготовки внешнего USB-накопителя или добавления второго диска на рабочую станцию.
KDE Partition Manager: более мощный инструмент с расширенными функциями
KDE Partition Manager (пакет partitionmanager) предлагает более широкий функционал, чем GNOME Disks. Помимо базовых операций, он поддерживает:
- Изменение размера существующих разделов (при условии, что файловая система это позволяет).
- Копирование и восстановление разделов.
- Работу с шифрованными разделами (LUKS).
- Более детальное управление таблицами разделов.
Интерфейс также визуализирует свободное пространство на диске. KDE Partition Manager подходит для более сложных задач на десктопах, например, для переразметки диска с сохранением данных или настройки шифрования. Однако для серверных развертываний и автоматизации скрипты на основе parted остаются незаменимыми.
Диагностика проблем и мониторинг здоровья дисков
Проактивный мониторинг состояния дисков - критически важная практика для предотвращения потери данных и простоев. Основные инструменты диагностики работают через командную строку и позволяют выявить проблемы до того, как они приведут к сбою.
SMART-мониторинг: предупреждение сбоев с помощью smartctl
Утилита smartctl (из пакета smartmontools) читает данные самодиагностики диска (SMART). Проверка общего состояния здоровья:
sudo smartctl -H /dev/sda
Вывод PASSED означает, что диск считает себя исправным. Для детального анализа всех атрибутов выполните:
sudo smartctl -a /dev/sda
Обращайте внимание на ключевые параметры:
- Reallocated_Sector_Ct - количество переназначенных секторов. Рост этого значения указывает на деградацию поверхности диска.
- Current_Pending_Sector - секторы, которые не могут быть прочитаны и ждут переназначения. Ненулевое значение - тревожный признак.
- Temperature_Celsius - температура диска. Перегрев сокращает срок службы.
Регулярный мониторинг этих атрибутов позволяет планировать замену дисков до их полного выхода из строя.
Восстановление файловой системы: использование fsck
Если система сообщает об ошибках файловой системы (например, после некорректного отключения питания), необходимо выполнить проверку и восстановление с помощью fsck. Важное правило: файловая система должна быть отмонтирована. Для корневой раздел можно проверить при загрузке в режиме recovery или с live-носителя.
Для проверки раздела /dev/sdb1 с файловой системой ext4 выполните:
sudo umount /dev/sdb1 # Убедитесь, что раздел отмонтирован!
sudo fsck.ext4 -f /dev/sdb1
Ключ -f принудительно запускает проверку, даже если файловая система помечена как чистая. Утилита будет задавать вопросы о исправлении ошибок. Для автоматического исправления можно использовать ключ -y, но перед этим, по возможности, создайте резервную копию данных. В сложных случаях повреждения, когда стандартные средства не помогают, может потребоваться использование специализированных инструментов восстановления данных.
Для поиска ошибок, связанных с дисками, в логах ядра используйте команду dmesg | grep -i error или journalctl -k --since="1 hour ago" | grep -i sda.
Практические сценарии для системного администратора и DevOps
Объединим полученные знания в конкретные пошаговые сценарии, которые часто встречаются в работе.
Сценарий 1: Добавление нового диска для данных на сервере.
- Определите новый диск:
lsblk. Пусть это будет /dev/sdb. - Создайте таблицу разделов GPT и один раздел на всем диске:
sudo parted /dev/sdb mklabel gpt mkpart primary xfs 1MiB 100%. - Отформатируйте раздел в XFS:
sudo mkfs.xfs -f /dev/sdb1. - Создайте точку монтирования:
sudo mkdir -p /var/lib/database. - Получите UUID раздела:
sudo blkid /dev/sdb1. - Добавьте строку в /etc/fstab:
UUID=<ваш_uuid> /var/lib/database xfs defaults,noatime 0 0. - Смонтируйте:
sudo mount -a.
Сценарий 2: Быстрая подготовка внешнего SSD для резервных копий на рабочей станции.
- Подключите диск и откройте GNOME Disks или KDE Partition Manager.
- Выберите диск, удалите существующие разделы (при необходимости).
- Создайте новый раздел на всем пространстве, выберите файловую систему ext4.
- Отформатируйте, задайте метку тома (например, «Backup»).
- Смонтируйте диск, скопируйте данные. Для автоматического монтирования в будущем используйте опцию в GUI или добавьте запись в fstab, как показано выше.
Сценарий 3: Регулярный мониторинг здоровья дисков на сервере.
Создайте простой скрипт для проверки SMART-статуса всех дисков и отправки алерта при обнаружении проблем. Пример основы для скрипта:
#!/bin/bash
for disk in /dev/sd[a-z]; do
if [ -e "$disk" ]; then
status=$(sudo smartctl -H "$disk" | grep -E "(PASSED|FAILED)" | awk '{print $NF}')
if [ "$status" = "FAILED" ]; then
echo "CRITICAL: Disk $disk reports SMART failure." | mail -s "Disk Alert" admin@example.com
fi
fi
done
Заключительные рекомендации:
- Всегда проверяйте команды на тестовой системе или виртуальной машине перед выполнением на продакшене.
- Для монтирования в /etc/fstab всегда используйте UUID, а не имена устройств вроде /dev/sda1.
- Ведите документацию по изменениям в конфигурации дисков и файловых систем.
- Помните, что операции с дисками потенциально опасны для данных. Наличие актуальной резервной копии - обязательное условие перед любыми манипуляциями. Для восстановления случайно удаленных файлов с внешних носителей существуют отдельные методики.
Освоив эти инструменты и подходы, вы сможете уверенно управлять дисковым пространством в любых средах - от облачных серверов до домашних NAS. Комбинация консольных утилит для точности и автоматизации и графических инструментов для наглядности покрывает все потребности системного администратора или DevOps-инженера. Для автоматизации более сложных сценариев, таких как оркестрация контейнеров, рассмотрите возможности сервисов на основе ИИ, которые могут помочь в генерации скриптов или конфигураций.