Virtual-Machine

如何在不保留磁碟大小的情況下在 qcow2 映像上創建分區

  • June 7, 2020

我想在 UEFI 模式下安裝 archlinux,所以我從 virt-manager 創建了大小為 20GB 的映像。

然後在啟動到 VM 後,我創建了 2 個名為 fdisk 的分區,其大小為/dev/vda1512MB /dev/vda2,剩下的部分 (19.5~GB)

我將 /dev/vda1 的類型從 fdisk 更改為 EFI,然後使用

mkfs.fat -F32 /dev/vda1

然後我將 /dev/vda2 格式化為 ext4 使用

mkfs.ext4 /dev/vda2

然後我成功地在上面安裝了拱門。的輸出

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 映像上創建分區?

感謝電報上的@siduck76,我找到了答案。

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

引用自:https://unix.stackexchange.com/questions/591418