#+title: QCOW2 #+setupfile: ../org-templates/page.org ** Mount qcow2 image Enable NBD on the host: #+begin_src shell sudo modprobe nbd max_part=8 #+end_src Connect qcow2 image as a network block device: #+begin_src shell sudo qemu-nbd --connect=/dev/nbd0 /path/to/image.qcow2 #+end_src Find the VM's partitions: #+begin_src shell sudo fdisk /dev/nbd0 -l #+end_src Mount the partition from the VM: #+begin_src shell sudo mount /dev/nbd0p3 /mnt/point #+end_src To unmount: #+begin_src shell sudo umount /mnt/point sudo qemu-nbd --disconnect /dev/nbd0 sudo rmmod nbd #+end_src ** Resize qcow2 image Install guestfs-tools (required for virt-resize command): #+begin_src shell sudo dnf install -y guestfs-tools sudo apt install -y guestfs-tools libguestfs-tools #+end_src To resize qcow2 images, you'll have to create a new qcow2 image with the size you want, then use ~virt-resize~ on the old qcow2 image to the new one. You'll need to know the root partition within the old qcow2 image. Create a new qcow2 image with the size you want: #+begin_src shell qemu-img create -f qcow2 -o preallocation=metadata newdisk.qcow2 100G #+end_src Now resize the old one to the new one: #+begin_src shell virt-resize --expand /dev/vda3 olddisk.qcow2 newdisk.qcow2 #+end_src Once you boot into the new qcow2 image, you'll probably have to adjust the size of the logical volume if it has LVM: #+begin_src shell sudo lvresize -l +100%FREE /dev/mapper/sysvg-root #+end_src Then resize the XFS root partition within the logical volume: #+begin_src shell sudo xfs_grow /dev/mapper/sysvg-root #+end_src