qemu-img convert source_not_compressed_qcow2.img -O qcow2 -c target_compressed_qcow2.img
Пример
qemu-img convert /home/vm/nfsshare-vmmanager.qcow2 -O qcow2 -c /home/vm/nfsshare-vmmanager_compress.qcow2
Для сжатия образа диска формата qcow2 в среде QEMU-KVM используется команда qemu-img. Она позволяет уменьшить размер файла виртуального жесткого диска путем удаления неиспользуемых блоков памяти.
Шаги по компрессии образа
- Убедитесь, что виртуальная машина выключена. Если образ диска используется запущенной виртуальной машиной, процесс сжатия завершится неудачей.
 - Используйте команду 
qemu-img convert, чтобы создать сжатый образ:sudo qemu-img convert -O qcow2 -c source.qcow2 destination.qcow2Где:source.qcow2: исходный файл образа диска,destination.qcow2: новый сжатый файл образа диска.
Флаг
-cвключает компрессию образа. - После завершения процесса проверяйте размеры файлов командой:ls -lh *.qcow2
 
Дополнительная оптимизация
Чтобы дополнительно освободить пространство внутри виртуальных машин перед сжатием, выполните следующие шаги:
- Запустите виртуальную машину и очистите ненужные файлы.
 - Затем используйте утилиту 
zerofreeилиdd if=/dev/zero of=zerofile bs=1M count=$((disk_size)) && sync && rm zerofile, чтобы заполнить свободные блоки нулями. Это упростит дальнейшую компрессию. 
Таким образом, команды будут выглядеть следующим образом:# Очистка образов вручнуюsudo apt install zerofree # установка инструмента для очистки свободных секторовsudo zerofree /dev/vda1 # замените vda1 на ваш диск# Альтернативный методdd if=/dev/zero of=/tmp/fill bs=1M || truesyncrm /tmp/fill
Затем повторите процедуру сжатия (qemu-img convert) снова.
Итоги
Процесс состоит из двух этапов:
- Подготовьте виртуальную машину, заполнив её пустые области нулями.
 - Выполните преобразование образа с использованием опции сжатия (
-c), что позволит значительно уменьшить итоговый размер файла.