QCOW2 уменьшение виртуального размера
Я пытаюсь получить виртуальный размер qcow2
контейнер вниз, чтобы он мог уместиться в открытый вкус с диском 10 ГБ.
root@node-10:~# qemu-img info zztop.qcow
image: zztop.qcow
file format: qcow2
virtual size: 80G (85899345920 bytes)
disk size: 2.6G
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
Я следую инструкциям здесь и заполняю конец диска нулями, затем запускаю qemu-img convert -O qcow2
, В результате qcow2, однако, сохраняет тот же размер диска и виртуальный размер.
Как уменьшить виртуальный размер qcow2, чтобы он мог вместить в себя openstack менее 80 ГБ?
5 ответов
Если вы хотите уменьшить виртуальный размер, вам нужно использовать virt-resize
- Вам нужно конвертировать изображение qcow2 в raw
qemu-img convert -O raw guest.img guest.raw
- Затем измените размер необработанного файла.
qemu-img resize guest.raw 3G
- Затем преобразовать его обратно в qcow2
qemu-img convert -O qcow2 -o compat=0.10 guest.raw guest.img
- Затем запустите гостя и измените размер вашей файловой системы
Улучшен ответ @user370956
Я смог успешно уменьшить свой фактический размер изображения с 5.9G до 3.5G и v. Размер тоже.
- Сделайте резервную копию вашего изображения
cp guest.img quest.backup
- Вам нужно конвертировать изображение qcow2 в raw
qemu-img convert -O raw guest.img guest.raw
- Загрузите живую iso, установленную как
-cdrom
и вашguest.raw
установлен как-drive
qemu-system-x86_64 -machine type=pc,accel=kvm -boot order=d -drive file=guest.raw,format=raw -cdrom ~/Downloads/debian-live-9.6.0-amd64-lxde.iso -m 2G
- Используйте gparted (инструмент gui), чтобы уменьшить раздел внутри гостя. Оставьте свободное место, чтобы система могла загружаться (достаточно 100 МБ). Оставьте оставшееся пространство незанятым. Проверьте файловую систему.
fsck -a
- Затем измените размер необработанного файла.
qemu-img resize guest.raw 3G
- Затем преобразовать его обратно в qcow2
qemu-img convert -O qcow2 guest.raw guest.img
- На этом этапе вы можете изменить размер виртуального образа qcow2, чтобы добавить пространство, и это не повлияет на размер файла изображения. Это может быть необходимо для обеспечения стабильности виртуальной машины.
qemu-img resize guest.img +1G
- Повторите шаги 2,3, чтобы выделить больше места для гостевого корневого раздела, если вы выполнили шаг 6.
Манипулирование только со стороны хоста может привести к повреждению вашей гостевой файловой системы.
Таким образом, чтобы завершить этот ответ, перед любыми изменениями с хоста необходимо изменить размеры разделов хранилища виртуальной машины с помощью таких инструментов, как gparted
изнутри ВМ. Таким образом, общий размер виртуального диска становится меньше требуемого размера виртуального хранилища. После этого вы можете сделать первые 3 шага.
1 - отключить файл подкачки в fstab, если он есть
2 - Подключите gparted к вашей виртуальной машине.
3 - запустить виртуальную машину, загрузиться gparted и изменить размер раздела до меньшего размера
4 - Удалите раздел подкачки и заново создайте его или убедитесь, что все разделы выровнены рядом друг с другом в начале диска. У меня были проблемы со свопом, находящимся в конце диска после сжатия раздела, так что это было исправлением.
5 - выключить ВМ
6 - Найдите файл qcow2 и в том же каталоге выполните "qemu-img create -f qcow2 -o preallocation= метаданные new-disk.qcow2 80G" (где 80G - новый размер диска)
7 - использовать virt-resize - 'virt-resize old-disk.qcow2 new-disk.qcow2'
8 - скопировать новый диск, чтобы исправить имя файла для виртуальной машины, запустить виртуальную машину и повторно включить подкачку, т.е.: 'swapon / dev / sda5'
9 - отредактируйте fstab для добавления подкачки, т. Е. '/ Dev/sda5 swap swap default 0 0'
СДЕЛАННЫЙ.