Proxmox показывает виртуальной машине диск нужного размера, но саму файловую систему не трогает. Это главная ловушка при расширении LVM: администратор увеличивает диск в GUI, запускает ВМ — а df -h внутри по-прежнему показывает старый размер. Расширение проходит в три независимых шага: увеличение логического тома на хосте, расширение раздела внутри ВМ, расширение файловой системы. Пропустить любой — и место не появится.
Что такое LVM в контексте Proxmox
Proxmox хранит диски виртуальных машин как логические тома LVM (Logical Volume Manager). Каждый диск ВМ — отдельный логический том в группе томов (Volume Group). Это даёт гибкость: размер тома можно менять без остановки физического сервера, без переразметки железа и без копирования данных между дисками.
LVM-хранилище в Proxmox видно в интерфейсе как пул local-lvm (или другое имя, заданное при установке). Физические диски сервера объединены в Volume Group, из которой нарезаются тома для ВМ.
Шаг 1: Увеличить диск ВМ через Proxmox Web GUI
Открыть Web GUI Proxmox → выбрать нужную виртуальную машину → раздел Hardware.
В списке устройств найти нужный диск (например scsi0 или virtio0) → нажать Resize disk.
В поле Size Increment ввести размер, на который нужно увеличить диск. Это дельта, не итоговый размер. Например, если диск был 20 ГБ и нужно сделать 40 ГБ — ввести 20G.
Нажать Resize disk → операция выполняется мгновенно и не требует остановки ВМ.
Proxmox расширяет логический том на хосте. Внутри ВМ операционная система пока ничего не знает об изменении.
Шаг 1 (альтернатива): Увеличить диск через командную строку хоста
Подключиться к хосту Proxmox по SSH или открыть Shell в интерфейсе.
Посмотреть конфигурацию ВМ (где 101 — ID виртуальной машины):
qm config 101
Найти строку с диском, например scsi0: local-lvm:vm-101-disk-0,size=20G.
Увеличить диск командой qm resize:
qm resize 101 scsi0 +20G
Синтаксис: qm resize <VMID> <диск> <+дельта>. Плюс перед размером обязателен — это приращение, а не абсолютное значение.
Проверить что размер изменился:
qm config 101 | grep scsi0
# scsi0: local-lvm:vm-101-disk-0,size=40G
Шаг 2: Расширить раздел внутри виртуальной машины
После увеличения тома в Proxmox — войти в ВМ по SSH или через консоль Proxmox (кнопка Console в интерфейсе).
Проверить текущее состояние диска:
lsblk
Диск будет показывать новый размер (например 40G), но раздел (/dev/sda1 или /dev/vda1) — старый.
Расширить раздел через growpart:
sudo growpart /dev/sda 1
Здесь /dev/sda — диск, 1 — номер раздела. Проверить имена через lsblk до выполнения команды.
Если growpart не установлен:
sudo apt install cloud-guest-utils # Debian/Ubuntu
sudo dnf install cloud-utils-growpart # CentOS/RHEL
Для LVM внутри ВМ (если используется LVM поверх LVM) — дополнительно расширить физический том и логический том:
sudo pvresize /dev/sda1
sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
Шаг 3: Расширить файловую систему
После расширения раздела — файловая система всё ещё видит старый размер. Последний шаг — растянуть её на весь раздел.
ext4:
sudo resize2fs /dev/sda1
Или для LVM-тома:
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
resize2fs умеет работать на примонтированных разделах — перезагрузка не нужна.
xfs:
sudo xfs_growfs /
XFS расширяется только на смонтированной файловой системе. Путь — точка монтирования, не устройство.
Проверить результат:
df -h
Новый размер должен отобразиться немедленно.
Быстрый путь: одна команда для Ubuntu/Debian
На современных Ubuntu-образах (20.04+) с cloud-init всё можно сделать одной командой внутри ВМ после расширения тома в Proxmox:
sudo growpart /dev/sda 1 && sudo resize2fs /dev/sda1
Или если корневой раздел на LVM:
sudo growpart /dev/sda 3 && sudo pvresize /dev/sda3 && sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv && sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
Номера разделов уточнять через lsblk — они отличаются в зависимости от образа.
Уменьшить диск LVM: почему это опасно
Proxmox не позволяет уменьшить диск через GUI — только увеличить. Уменьшение требует ручной работы с LVM и сопряжено с риском потери данных. Перед любыми операциями уменьшения — обязательно снять снимок (snapshot) ВМ в Proxmox или сделать резервную копию через vzdump.
Шпаргалка
| Задача | Команда |
|---|---|
| Увеличить диск ВМ (хост) | qm resize <VMID> <диск> +<размер> |
| Посмотреть конфигурацию ВМ | qm config <VMID> |
| Расширить раздел (внутри ВМ) | sudo growpart /dev/sda 1 |
| Расширить физический том LVM | sudo pvresize /dev/sda1 |
| Расширить логический том LVM | sudo lvextend -l +100%FREE /dev/<vg>/<lv> |
| Расширить файловую систему ext4 | sudo resize2fs /dev/sda1 |
| Расширить файловую систему xfs | sudo xfs_growfs / |
| Проверить результат | df -h |