Skip to main content

Уменьшение размера виртуального диска контейнера

За основу взята следующая статья

Сначала необходимо остановить контейнер и сделать бекап, и проверить что он есть.

Следующие действия не работают с виртуальными дисками на LVM носителями, следует временно перенести их на какой-нибудь диск с файловой системой ext4.

Далее следует зайти в каталог с файлом диска, это может быть к примеру /mnt/usb_hdd/images

Проверка файловой системы:

e2fsck -f vm-100-disk-0.raw

(Имя файла vm-100-disk-0.raw условно, у вас оно может быть другим)

Если утилита выдает следующее:

e2fsck: MMP: fsck being run while checking MMP block
MMP check failed: If you are sure the filesystem is not in use on any node, run:
‘tune2fs -f -E clear_mmp {device}’

следует выполнить следующее:

tune2fs -f -E clear_mmp vm-100-disk-0.raw

После чего должен быть примерно следующий результат:

e2fsck 1.47.0 (5-Feb-2023)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
vm-100-disk-1.raw: 26392/1638400 files (0.2% non-contiguous), 353303/6553600 blocks

Далее следует уменьшить размер структуры файловой системы в файле диска:

resize2fs -M vm-100-disk-0.raw 4G

где 4G - желаемый размер диска

Если объем файлов превышает вводимое значение, то образ диска будет повреждён!

Далее следует обрезать лишнюю часть образа, до размера указанного в предыдущем шаге:

truncate -s 4G vm-100-disk-0.raw

Далее расширяем файловую структуру до размеров виртуального диска:

resize2fs vm-100-disk-0.raw

После следует изменить значение размера образа диска в настройках контейнера:

nano /etc/pve/nodes/pve1/lxc/100.conf

где pve1 - имя ноды Proxmox VE, 100.conf - конфигурация контейнера с id 100.

Изменяем параметр size:

rootfs: local:100/vm-100-disk-0.raw,size=4G

Сохраняем изменения и запускаем контейнер.

Посмотреть изменения можно подключившись к контейнеру по SSH и ввести команду:

df -h