Русский (Russian)

Расширение раздела и файловой системы на Linux VPS

2 min
VPS/VDS-хостинг

После увеличения диска на вашем VPS Linux Infrawire виртуальный диск стал больше, но раздел и файловая система сохранили прежний размер. Расширить нужно и то и другое вручную, на работающей системе, не отмонтируя корень.

Руководство охватывает обычные разделы (ext4 и XFS) и конфигурации с LVM на Ubuntu 24.04, Debian 12, AlmaLinux 9 и Rocky 9.

📋 Требования

  • VPS, диск которого уже увеличен (новый размер виден в lsblk)
  • Доступ по SSH под root (IP и пароль root есть в вашем личном кабинете)
  • Свежая резервная копия важных данных

1. Резервная копия перед работой с разделами

Изменение размера смонтированной файловой системы ext4 или XFS обычное дело, но ошибка в таблице разделов может уничтожить данные. Сначала сохраните самое важное:

Bash
# Архивируем незаменимые данные tar -czf /root/backup-etc.tar.gz /etc rsync -avz /var/www/ USER@BACKUP_HOST:/backups/www/ # Сохраняем таблицу разделов (пригодится для восстановления) sfdisk -d /dev/vda > /root/vda-partition-table.txt

2. Определите диск, раздел и файловую систему

Bash
lsblk -f df -hT /

Типичный вывод: диск vda на 80G, раздел vda1 на 40G, смонтированный в /, файловая система ext4 или xfs. Если корень находится на /dev/mapper/..., используется LVM: см. раздел 5. Диск может называться и sda или nvme0n1 (тогда разделы заканчиваются на p1).

3. Расширьте раздел с помощью growpart

Установите утилиту. В Ubuntu и Debian пакет называется cloud-guest-utils, в AlmaLinux и Rocky cloud-utils-growpart:

Bash
# Ubuntu / Debian apt update && apt install -y cloud-guest-utils # AlmaLinux / Rocky dnf install -y cloud-utils-growpart

Затем расширьте раздел номер 1 диска /dev/vda (обратите внимание на пробел между диском и номером):

Bash
growpart /dev/vda 1

Если в ответе NOCHANGE, раздел уже занимает всё доступное место. В некоторых образах после корневого раздела есть небольшой раздел (например, swap): тогда growpart не сможет расширить корень, и сначала этот раздел нужно удалить или переместить.

Убедитесь, что ядро видит новый размер:

Bash
lsblk /dev/vda # Если всё ещё виден старый размер: partprobe /dev/vda

4. Расширьте файловую систему

Используйте команду, соответствующую типу вашей файловой системы (его показывает lsblk -f).

Для ext4:

Bash
resize2fs /dev/vda1

Для XFS (по умолчанию в AlmaLinux и Rocky). Аргумент это точка монтирования, а не устройство, и XFS можно только увеличивать, но не уменьшать:

Bash
xfs_growfs /

5. Случай LVM: pvresize и lvextend

Если корневой логический том лежит на LVM, добавляется ещё один уровень: раздел, затем физический том, затем логический том, затем файловая система.

Bash
lsblk pvs && vgs && lvs # 1. Расширяем раздел с физическим томом (здесь vda3) growpart /dev/vda 3 # 2. Сообщаем LVM, что физический том стал больше pvresize /dev/vda3 # 3. Расширяем логический том и файловую систему одной командой (-r) lvextend -r -l +100%FREE /dev/mapper/VG_NAME-LV_NAME

Опция -r сама вызывает нужную утилиту (resize2fs или xfs_growfs). Подставьте вместо VG_NAME-LV_NAME значение из вывода lvs, например /dev/ubuntu-vg/ubuntu-lv. Чтобы использовать только часть свободного места, замените -l +100%FREE на -L +10G.

6. Проверьте результат

Bash
df -h / lsblk

Столбец Size в df -h теперь должен соответствовать новому объёму, а lsblk должен показывать раздел на весь диск. Перезагрузка не нужна: приложения продолжают работать всё время.

🛠️ Устранение неполадок

growpart: command not found: пакет не установлен. Установите cloud-guest-utils (apt) или cloud-utils-growpart (dnf).

NOCHANGE: partition 1 could not be grown: либо диск на самом деле не был увеличен (сравните lsblk с заказом), либо сразу за нужным разделом идёт другой. Проверьте через fdisk -l /dev/vda.

resize2fs: Bad magic number in super-block: файловая система, скорее всего, XFS, а не ext4. Выполните lsblk -f и используйте xfs_growfs /.

xfs_growfs: / is not a mounted XFS filesystem: вы указали имя устройства, либо файловая система ext4. Укажите точку монтирования и сначала проверьте тип.

lvextend сообщает об отсутствии свободных экстентов: вы пропустили growpart или pvresize. Выполните pvs и посмотрите столбец PFree.


🎉 Дополнительное место на диске готово к использованию: без перезагрузки, без простоя, и df -h это подтверждает!

Следите за последними предложениями, скидками и специальными акциями.

Смотреть акции

Мы используем файлы cookie

Аналитические cookie улучшают работу сайта. Данные не продаются третьим лицам. Подробнее в политике конфиденциальности.