The Debian GNU/Linux cloud images can conveniently be used out of the box with the following:
$ wget -O debian.qcow2 https://cloud.debian.org/images/cloud/buster/20201214-484/debian-10-generic-amd64-20201214-484.qcow2
$ virt-sysprep -a debian.qcow2 --run-command 'dpkg-reconfigure --frontend=noninteractive openssh-server' --ssh-inject debian:file:$HOME/.ssh/id_rsa.pub
$ virt-install --connect qemu:///system --boot hd --name debian --memory 1024 --vcpus 1 --cpu host --disk path=$(pwd)/debian.qcow2,bus=virtio,format=qcow2 --os-type=linux --os-variant=debian10 --graphics vnc --noautoconsole
$ virsh --connect qemu:///system domifaddr debian
Name MAC address Protocol Address
-------------------------------------------------------------------------------
vnet0 52:54:00:3e:6f:1a ipv4 192.168.122.84/24
$ ssh debian@192.168.122.84 df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 1.9G 1.3G 481M 73% /
However, 2GB for the root file system may not be enough: virt-resize and virt-rescue should be used to expand it.
The partitions of the Debian GNU/Linux cloud image are as follows:
$ sudo virt-filesystems --long --parts -h -a debian.qcow2
Name Type MBR Size Parent
/dev/sda1 partition - 1,9G /dev/sda
/dev/sda14 partition - 3,0M /dev/sda
/dev/sda15 partition - 124M /dev/sda
When resizing, partitions are shuffled because it is only possible to expand the last partition of the disk. And the partition we want to expand is the first one. Reason why /dev/sda1 is copied to /dev/sda3.
$ qemu-img create -f qcow2 -o preallocation=metadata mydebian.qcow2 5G
Formatting 'mydebian.qcow2', fmt=qcow2 size=5368709120 cluster_size=65536 preallocation=metadata lazy_refcounts=off refcount_bits=16
$ sudo virt-resize --expand /dev/sda1 debian.qcow2 mydebian.qcow2
[ 0.0] Examining debian.qcow2
**********
Summary of changes:
/dev/sda14: This partition will be left alone.
/dev/sda15: This partition will be left alone.
/dev/sda1: This partition will be resized from 1.9G to 4.9G. The
filesystem ext4 on /dev/sda1 will be expanded using the ‘resize2fs’
method.
**********
[ 3.8] Setting up initial partition table on mydebian.qcow2
[ 15.3] Copying /dev/sda14
[ 15.4] Copying /dev/sda15
[ 15.6] Copying /dev/sda1
100% ⟦▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒⟧ --:--
[ 19.2] Expanding /dev/sda1 (now /dev/sda3) using the ‘resize2fs’ method
Resize operation completed with no errors. Before deleting the old disk,
carefully check that the resized disk boots and works correctly.
$ sudo virt-filesystems --long --parts -h -a mydebian.qcow2
Name Type MBR Size Parent
/dev/sda1 partition - 3,0M /dev/sda
/dev/sda2 partition - 124M /dev/sda
/dev/sda3 partition - 4,9G /dev/sda
As a consequence grub no longer knows how to boot the disk:

It needs to be re-installed with virt-rescue as follows:
$ sudo virt-rescue --connect qemu:///system -d mydebian -i
supermin: mounting /proc
supermin: ext2 mini initrd starting up: 5.1.20
Starting /init script ..
...
><rescue> chroot /sysroot
><rescue> grub-install /dev/sda
Installing for i386-pc platform.
Installation finished. No error reported.
><rescue> df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 4.8G 773M 3.8G 17% /
/dev/sda2 124M 262K 124M 1% /boot/efi
/dev 361M 0 361M 0% /dev
shmfs 365M 0 365M 0% /dev/shm
><rescue> exit
virt-rescue: Syncing the disk now before exiting ...
Rebooting.
[ 121.165106] reboot: Restarting system