我正在使用以下命令创建一个新的虚拟磁盘*:
$ 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
这将分配磁盘大小