Можно ли изменить размер образа диска QEMU?


12

Как видно из названия: возможно ли изменить размер образа диска QEMU в Linux? И если так, что происходит с разделами в нем? Размеры также автоматически изменяются (сомнительно) или за ними следует новый блок неиспользуемого пространства?

Ответы:


12

От сюда :

!!! Сделайте резервную копию образа диска, прежде чем пытаться описать ниже !!!

Если вы используете разреженное необработанное изображение, тогда

dd if=/dev/zero of=hdd.img seek=N obs=1MB count=0"

где hdd.img - это необработанный формат изображения, размер которого вы хотите изменить, а N - новый размер изображения в мегабайтах. Чтобы изменить единицы измерения N, измените obs на что-то другое, например, 1 ГБ для единиц в гигабайтах (1000x1000x1000).

Если вы хотите изменить размер необработанного изображения, но не хотите, чтобы оно стало разреженным (вы действительно хотите, чтобы эти нули были в файле), тогда выполните команду «dd if = / dev / zero of = image seek = S count = NS obs = 1» вместо этого, где N - новый размер, а S - старый размер (в байтах).

Если вы хотите изменить размер изображения qcow2, это еще не поддерживается.

это письмо показывает некоторые эксперименты с изменением размера изображений qcow с помощью шестнадцатеричного редактора.

Насколько мне известно, изменение размера или увеличение изображений в других форматах (VMware, Bochs, cow или cloop) не поддерживается.

На хосте Windows можно изменить размер образа диска в необработанном формате, используя команду «copy». Вы можете использовать qemu-img для преобразования существующего изображения в необработанный формат, если это необходимо. Мы будем использовать временный образ диска в необработанном формате, который будет добавлен в конец существующего образа диска в необработанном формате. Размер этого временного изображения - это размер, на который существующее изображение будет расширено:

qemu-img create -f raw temp.img 300M

Затем вы должны выполнить следующую команду: orig.img - это существующее изображение в необработанном формате, которое вы хотите увеличить, temp.img - это временный файл изображения, созданный ранее, а new.img - изображение с измененным размером:

copy /b orig.img+temp.img new.img

Затем вам нужно будет перераспределить и изменить размер существующих разделов и файловых систем в новом образе. Один из способов сделать это - загрузить gparted в QEMU с помощью gparted livecd iso и нового образа диска.


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

http://qemu-forum.ipi.fi/viewtopic.php?p=12362
http://kev.coolcavemen.com/2007/04/how-to-grow-any-qemu-system-image/
http: / /bryan-murdock.blogspot.com/2007/12/resize-qemukvm-windows-disk-image.html
http://www.larsen-b.com/Article/329.html
http://www.brabbel.net / шр / архив / 174


17

Размер изображения qcow2 можно изменить для увеличения с новой / текущей версией qemu. Например, у меня есть arch.qcow2, который составляет 2G, и я хочу, чтобы он стал 50G, в этом случае я набираю:

qemu-img resize arch.qcow2 50G

тогда Кему говорит мне:

image resized

Вот и все, я только что сделал это сегодня. Redhat на самом деле имеет несколько хороших документов по QEMU:


3
Однако увеличенное пространство будет нераспределенным. Вам нужно будет изменить размер вашего виртуального диска с помощью некоторого инструмента для работы с разделами.
Яманеко

Отличное решение!
RckLN

qemu-img версии 1.0 говорит мнеqemu-img: This image format does not support resize
HDave

3

Краткий ответ на 2017 год: чтобы добавить, например, 30 ГБ к существующему необработанному образу, я просто использовал эту команду:

qemu-img resize nameofimg.img +30G

Это добавляет 30 ГБ к существующему файлу изображения (не нужно создавать новый файл). Затем в гостевой виртуальной машине вы можете легко расширить существующие разделы в Windows 10, например, с помощью «Управление дисками».

Больше информации и опций:

man qemu-img

Смотрите также: qemu wiki> qemu-img


1

Да, ты можешь. И нет, это не изменит разделы или таблицы. Таблица разделов может потребоваться обновить, чтобы иметь полный размер диска, и в конце будет пустое неиспользуемое пространство, если вы увеличите его, и вы порежете раздел и потеряете его или последнюю часть его данных, если вы уменьшите его ,

Если вы находитесь в мониторе qemu (или, вероятно, используете QMP ), и интерфейс поддерживает его (например, virtio-scsi-pci с rbd, который я тестировал здесь), то без перезагрузки виртуальной машины вы можете сделать это:

(qemu) info block -v disk1
disk1 (#block165): rbd:rbd/manjaro (raw)
    Cache mode:       writeback

Images:
image: rbd:rbd/manjaro
file format: raw
virtual size: 4.0G (4294967296 bytes)
[...]

(qemu) block_resize disk1 5120

И poof, изображение изменяется до размера, указанного вами в MiB, и виртуальная машина покажет новый размер.

Я проверил следующее на QEMU 2.7.0:

  • RBD от Ceph - работает, быстро, растет или сжимается
  • Дисковый файл qcow2 - работает, медленнее, растет только
  • файл на сыром диске - работает, быстро, растёт или сжимается
  • сырой LVM диск - на мониторе выглядит нормально, но никак не влияет

Цените таблицу внизу. Это было очень полезно.
cloaked1
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.