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

32160
Richie Marquez

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

8

4 ответа на вопрос

12
fretje

От сюда :

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

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

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

12
user1026169

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

qemu-img resize arch.qcow2 50G 

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

image resized 

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

Однако увеличенное пространство будет нераспределенным. Вам нужно будет изменить размер вашего виртуального диска с помощью некоторого инструмента для работы с разделами. Yamaneko 11 лет назад 3
Отличное решение! RckLN 10 лет назад 0
qemu-img версии 1.0 сообщает мне `qemu-img: этот формат изображения не поддерживает изменение размера` HDave 10 лет назад 0
2
firepol

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

qemu-img resize nameofimg.img +30G 

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

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

man qemu-img 

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

0
Peter

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

Если вы находитесь в мониторе 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 диск - на мониторе выглядит нормально, но никак не влияет

Похожие вопросы