LibVirt:客户机内的磁盘映像大小错误

LibVirt:客户机内的磁盘映像大小错误

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

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

“guest-disks” 池是一个简单的“dir”类型池。如您所见,该命令成功,但是当我尝试在新域中安装操作系统时,它仅显示为几分之一兆字节的大小:

# 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

如您所见,尺寸完全错误。知道这是为什么吗?

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

答案1

好的,我自己搞明白了。如果您未在域 XML 中指定格式,Libvirt 默认希望它是“原始”格式,这种格式不会随着使用而扩展,但需要完全分配(请参阅 dyasny 的回答)。~200KB 是 qcow2 格式的初始数据结构。

需要做的事情是:您必须在域 xml 的“磁盘”部分添加一个“驱动程序”元素,明确提及 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>

经过此更改后,域操作系统将能够按预期看到磁盘。

答案2

尝试一下--allocation 8192M 这将分配磁盘大小

相关内容