qemu-img resize disk.qcow2 +10G+ растянуть ФС в госте
qemu-img snapshot -l/-c/-a/-d disk.qcow2снимки (на выключенной ВМ)
Обзор
qemu-img управляет образами дисков виртуальных машин (kvm-libvirt). Самый частый
формат — qcow2: тонкое выделение (растёт по мере записи), снимки, overlay-цепочки.
bash
qemu-img info disk.qcow2 # формат, virtual/actual size, backing-файл
qemu-img info --backing-chain vm.qcow2 # вся цепочка overlay → backing
qemu-img create -f qcow2 disk.qcow2 20G # создать пустой 20 ГБ qcow2
qemu-img check disk.qcow2 # проверить целостность образа
Ключи
8
-f/-F задают формат исходного и backing-образа — почти всегда qcow2;
несовпадение формата с реальным содержимым файла портит образ незаметно, до
первого чтения нужного блока. -O — формат образа назначения при
конвертации, его легко перепутать с -f (формат источника). -b привязывает
overlay к backing-файлу при создании; менять эту привязку потом — уже rebase.
Показать всю цепочку overlay → backing вместо одного файла.
qemu-img info --backing-chain vm.qcow2
-u
rebase: небезопасный режим — сменить backing-ссылку без проверки данных. опасно
qemu-img rebase -u -b "" vm1.qcow2
-p
Показывать индикатор прогресса длительной операции.
qemu-img convert -p -O qcow2 src dst
Ничего не найдено. Попробуй запрос короче.
Рецепты
2
Overlay и конвертация
bash
# overlay поверх «золотого» образа (быстрый клон, только дельта пишется в overlay)
qemu-img create -f qcow2 -F qcow2 -b golden.qcow2 vm1.qcow2
# конвертация форматов
qemu-img convert -O qcow2 disk.raw disk.qcow2 # raw → qcow2
qemu-img convert -O raw disk.qcow2 disk.raw # qcow2 → raw
qemu-img convert -c -O qcow2 src.qcow2 small.qcow2 # -c: сжать при конвертации# изменение размера (потом растянуть ФС внутри — см. filesystems)
qemu-img resize disk.qcow2 +10G
# «сплющить» overlay в самостоятельный образ (вшить backing)
qemu-img convert -O qcow2 vm1.qcow2 vm1-flat.qcow2
# или перецепить overlay на другой backing:
qemu-img rebase -b new-base.qcow2 vm1.qcow2
qemu-img rebase -u -b "" vm1.qcow2 # безопасно «отвязать» (unsafe) — осторожно
Снимки (internal)
bash
qemu-img snapshot -l disk.qcow2 # список внутренних снимков
qemu-img snapshot -c snap1 disk.qcow2 # создать (ВМ должна быть выключена!)
qemu-img snapshot -a snap1 disk.qcow2 # откатиться к снимку
qemu-img snapshot -d snap1 disk.qcow2 # удалить
Для живых ВМ снимки делают через virsh snapshot-* (см. kvm-libvirt), не
qemu-img по работающему образу.
Неполадки
5
СимптомПричина и решение
Образ занимает больше, чем должен
qcow2 не ужимается сам после удаления данных внутри. Сожми: qemu-img convert -O qcow2
disk.qcow2 small.qcow2 (перезапись убирает «дыры»; -c для сжатия).
Backing file has changed / overlay сломался
overlay жёстко привязан к backing-образу. Нельзя менять/удалять/двигать backing, пока
есть overlay. Смотри цепочку: qemu-img info --backing-chain; перецепить — rebase.
Расширил диск, а места в ВМ не прибавилось
qemu-img resize меняет только контейнер. Внутри гостя растяни раздел и ФС
(filesystems / lvm).
Нельзя менять смонтированный/используемый образ
Образ запущенной ВМ не трогай qemu-img'ом — повредишь. Сначала выключи ВМ
(virsh shutdown, см. kvm-libvirt).
Образ «битый» после сбоя
qemu-img check disk.qcow2 (и -r all попытаться починить). Без бэкапа рискованно.
Опасно
Опасно. Не запускай qemu-img над диском работающей ВМ: гипервизор и
qemu-img пишут в файл независимо, и результат — повреждённый образ.
Сначала выключи ВМ (virsh shutdown, см. kvm-libvirt).
qemu-img rebase -u меняет привязку overlay к backing-файлу, не трогая
данные и не проверяя совместимость — это операция для случаев, когда ты
точно знаешь, что новый backing содержит те же данные. Ошибочный rebase -u
делает оверлей нечитаемым без явной ошибки в момент выполнения команды.
qemu-img convert перезаписывает файл назначения целиком без запроса
подтверждения.
См. также
kvm-libvirt — Виртуальные машины на Linux — управление через virsh, сети и хранилища, консоль.
lvm — PV → VG → LV; гибкое управление дисками, расширение и снапшоты.
filesystems — Создание ФС, метки и UUID, проверка fsck, типы ext4/xfs.