可以调整QEMU磁盘映像的大小吗?


12

就像标题中所说的那样:是否可以在Linux中调整QEMU磁盘映像的大小?如果是这样,其中的分区会发生什么?它们是否也会自动调整大小(可疑),或者在它们之后是否有新的未使用空间块?

Answers:


12

这里

!!! 尝试以下操作之前,请备份磁盘映像!

如果您使用的是稀疏原始图像,请执行

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

其中hdd.img是您要调整大小的原始格式图像,N是您要使图像成为新大小,以兆字节为单位。要更改N的单位,请将obs更改为其他单位,例如1GB单位为GB(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 livecd iso和新磁盘映像在QEMU中引导gparted。


您可能想查看上述其他链接是否无效的其他链接:

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 / wp / archives / 174


17

可以调整qcow2图像的大小以与新版本或当前版本的qemu一起增长。例如,我有一个arch.qcow2那是2G,我希望它变成50G,在这种情况下,我输入:

qemu-img resize arch.qcow2 50G

然后qemu告诉我:

image resized

就是这样,我今天才这样做。redhat实际上在qemu上有一些不错的文档:


3
但是,增加的空间将不会分配。您将需要使用某些分区工具来调整虚拟磁盘的大小。
Yamaneko

优秀,解决方案!
RckLN

qemu-img 1.0版告诉我qemu-img: This image format does not support resize
HDave 2014年

3

2017年的简短答案:要向现有的原始映像添加例如30 GB,我只使用了以下命令:

qemu-img resize nameofimg.img +30G

这将为您现有的图像文件增加30 GB(无需创建新文件)。然后,在来宾VM中,您可以轻松地在Windows 10中扩展现有分区,例如使用“磁盘管理”。

更多信息和选项:

man qemu-img

另请参阅:qemu Wiki> qemu-img


1

是的你可以。不,它不会更改分区或表。分区表可能需要更新以具有完整的磁盘大小,并且如果增大分区表的末尾将有空的未使用空间,并且将其切分并丢失,或者如果缩小则将丢失数据的最后一部分。

如果您在qemu监视器中(或可能使用QMP),并且界面支持它(例如,我在此处测试了带有rbd的virtio-scsi-pci),则无需重新启动VM,您可以执行以下操作:

(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

糟糕的是,将图像调整为您在MiB中指定的大小,然后VM将显示新的大小。

我在qemu 2.7.0上测试了以下内容:

  • Ceph的RBD-工作,快速,增长或收缩
  • qcow2磁盘文件-起作用,速度较慢,仅增长
  • 原始磁盘文件-工作,快速,增长或收缩
  • 原始LVM磁盘-监视器中的显示正常,但无效

欣赏底部的表格。超级有帮助。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.