LibVirt:磁盘映像在guest虚拟机中有错误的大小

我正在使用下面的命令*创build一个新的虚拟磁盘:

$ virsh vol-create-as --format=qcow2 guest-disks disk_instid.24_diskid.30 8192M Vol disk_instid.24_diskid.30 created 

“guest-disks”池是一个简单的“dir”types池。 正如你看到的,命令成功了,但是当我试图在新的域中安装一个操作系统时,它只显示为一个兆字节大小的一小部分:

 # fdisk -l /dev/sda Disk /dev/sda: 0 MB, 262144 bytes 1 heads, 1 sectors/track, 512 cylinders, total 512 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/sda doesn't contain a valid partition table 

如你所见,尺寸是完全错误的。 任何想法,为什么这是?

*不要介意数字 – 它是自动创build域的工具的一部分。

好吧,我自己想清楚了。 如果您没有在域XML中指定格式,那么Libvirt预计默认情况下它是“原始”格式,不会随使用情况扩展,但需要完全分配(请参阅dyasny的答案)。 〜200KB是qcow2格式的初始数据结构。

需要做的是这样的:你必须在域xml的“磁盘”部分添加一个“driver”元素,明确提到qcow2格式,如下所示:

 <disk type="file" device="disk"> <driver name="qemu" type="qcow2" /> <source file="/var/lib/virt/guest-disks/disk_instid.24_diskid.30" /> <target dev="sda" /> </disk> 

在此更改之后,域操作系统将按预期方式看到该磁盘。

尝试使用 – --allocation 8192M这将分配磁盘大小