Mise à jour : Debian 11.1 / Bullseye
Référence :
Sommaire
$ qemu-img create -f qcow2 disk.qcow2 1G
Formatting 'vdisk.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=1073741824 lazy_refcounts=off refcount_bits=16
Ce fichier est utilisable par qemu comme disque virtuel de taille 1G, son occupation sur le disque est de 196KiB
$ qemu-img info disk.qcow2 |grep size
virtual size: 1 GiB (1073741824 bytes)
disk size: 196 KiB
Il n'est pas reconnu comme disque virtuel 1GiB
par les commandes ls, du
$ ls -ln disk.qcow2
-rw-r--r-- 1 1000 1000 196624 6 déc. 14:53 disk.qcow2
$ du -B K disk.qcow2 # Taille occupation disque en KiB
196K disk.qcow2
$ du -k disk.qcow2 # Taille disque virtuel en KiB
196624 disk.qcow2
$ cat disk.qcow2 |wc -c
196624
$ sudo fdisk -l disk.qcow2 |grep Disque
Disque disk.qcow2: 192 KiB, 196608 octets, 384 secteurs
$ sudo parted disk.qcow2 -s mktable msdos mkpart primary ext2 1K 100% print
......
Number Start End Size Type File system Flags
1 512B 197kB 196kB primary ext2 lba
$ qemu-img info disk.qcow2
image: disk.qcow2
file format: raw
virtual size: 192 KiB (197120 bytes).
disk size: 196 KiB
$ qemu-img convert -f qcow2 -O qcow2 -o preallocation=metadata vdisk.qcow2 vdisk2.qcow2
$ qemu-img create -f qcow2 -o size=1G,preallocation=metadata vdisk_.qcow2
Formatting 'vdisk_.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off preallocation=metadata compression_type=zlib size=1073741824 lazy_refcounts=off refcount_bits=16
Vérification des propriétés du fichiers avec les métadonnées : Il est reconnu comme disque virtuel 1GiB
par qemu et les utilitaires usuels
$ qemu-img info disk2.qcow2 |grep size
virtual size: 1 GiB (1073741824 bytes)
disk size: 324 KiB
$ ls -lnh disk2.qcow2
-rw-r--r-- 1 1000 1000 1,1G 6 déc. 16:01 disk2.qcow2
$ du -B K disk2.qcow2 # Taille occupation disque en KiB
324K disk2.qcow2
$ du -B K --apparent-size disk2.qcow2 # Taille disque virtuel en KiB
1048960K disk2.qcow2
$ cat disk2.qcow2 |wc -c
1074135040
$ sudo fdisk -l disk2.qcow2 |grep Disque
Disque disk2.qcow2: 1 GiB, 1074135040 octets, 2097920 secteurs
$ sudo parted disk2.qcow2 -s mktable msdos mkpart primary ext2 2MiB 100% print
Model: (file)
.....
Number Start End Size Type File system Flags
1 2097kB 1074MB 1072MB primary ext2 lba
$ qemu-img create -f qcow2 -o ? |grep preallocation
preallocation=<str> - Preallocation mode (allowed values: off, metadata, falloc, full)
$ qemu-img create -f qcow2 disk.qcow2 1G
$ qemu-img create -f qcow2 -o size=1G,preallocation=metadata disk.qcow2
$ lsblk disk2.qcow2
lsblk: disk2 : n'est pas un périphérique bloc
$ sudo modinfo -d nbd
Network Block Device
$ sudo modprobe -av nbd
$ ls /dev/nbd*
/dev/nbd0 /dev/nbd1p1 /dev/nbd2 /dev/nbd4 /dev/nbd6
/dev/nbd1 /dev/nbd1p2 /dev/nbd3 /dev/nbd5 /dev/nbd7
$ lsblk -f /dev/nbd?
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINT
$ sudo qemu-nbd -c /dev/nbd0 disk2.qcow2 # option -c ou --connect
$ lsblk -f /dev/nbd?
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINT
nbd0
└─nbd0p1
$ sudo mkfs.ext4 -L nbd0p1 /dev/nbd0p1
$ sudo mount /dev/nbd0p1 /mnt
$ lsblk /dev/nbd0 -o name,label,fstype,size,mountpoint
NAME LABEL FSTYPE SIZE MOUNTPOINT
nbd0 1G
└─nbd0p1 nbd0p1 ext4 1022M /mnt
$ sudo qemu-nbd --disconnect /dev/nbd0 # option -d ou --disconnect
$ sudo modprobe -rv nbd
$ du -h --apparent-size disk.qcow2
5,6G disk.qcow2
$ qemu-img convert -f qcow2 -O qcow2 -c disk.qcow2 disk_compress.qcow2 -p
$ du -h --apparent-size disk_compress.qcow2
2,0G demo3.qcow2
Signification des options :
-f format de départ
-O format de sortie
-c compression
-p progress
$ qemu-img convert -f qcow2 -O raw demo.qcow2 demo.raw -p
$ du -h --apparent-size demo.raw
20G demo.raw
Conversion raw vers qcwo2
$ qemu-img convert -f raw -O qcow2 demo.raw demo2.qcow2 -p
$ du -h --apparent-size demo2.qcow2
5,3G demo2.qcow2
$ qemu-img convert -f raw -O qcow2 -c demo.raw demo3.qcow2 -p -c
$ du -h --apparent-size demo3.qcow2
2,0G demo3.qcow2