我想在 UEFI 模式下安装 archlinux,因此我从 virt-manager 创建了大小为 20GB 的映像。
然后启动虚拟机后,我创建了 2 个名为 fdisk 的分区/dev/vda1
,/dev/vda2
大小为 512MB,剩下的为 (19.5~GB)
我将 /dev/vda1 的类型从 fdisk 更改为 EFI,然后使用
mkfs.fat -F32 /dev/vda1
然后我使用以下命令将 /dev/vda2 格式化为 ext4
mkfs.ext4 /dev/vda2
然后我就成功安装了 arch 。的输出
du -h -d 0 /
对客人给予5.2GB
。但主机上映像的实际磁盘大小为 20GB,与虚拟大小相同
sudo qemu-img info archlinux.qcow2
image: archlinux.qcow2
file format: qcow2
virtual size: 20 GiB (21474836480 bytes)
disk size: 20 GiB
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: true
refcount bits: 16
corrupt: false
我还在 qcow2 映像上安装了 Windows 10,它仅显示预期的 9.73 磁盘大小。我在 Windows 安装过程中没有创建任何额外的 esp 分区,因为我在 BIOS 模式下安装了它并且它使用 seabios 启动
sudo qemu-img info win10.qcow2
[sudo] password for root:
image: win10.qcow2
file format: qcow2
virtual size: 100 GiB (107374182400 bytes)
disk size: 9.73 GiB
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: true
refcount bits: 16
corrupt: false
那么我在这里做错了什么?如何在 qcow2 映像上创建分区而不在磁盘上保留分区大小?
答案1
感谢@siduck76 在 telegram 上的帮助,我找到了答案。
sudo qemu-img convert -O qcow2 archlinux.qcow2 archlinuxComped.qcow2
参考:-https://www.jamescoyle.net/how-to/323-reclaim-disk-space-from-a-sparse-image-file-qcow2-vmdk