From 1a65c973425117b59cef8b4fa60b464b9aaebf59 Mon Sep 17 00:00:00 2001 From: lukas Date: Fri, 8 May 2026 09:35:01 +0000 Subject: [PATCH] docs: update gofurther/resize --- gofurther/resize.md | 106 ++++++++++++++++++++++++++++++++++++-------- 1 file changed, 88 insertions(+), 18 deletions(-) diff --git a/gofurther/resize.md b/gofurther/resize.md index e15d8bc..bee3c90 100644 --- a/gofurther/resize.md +++ b/gofurther/resize.md @@ -2,59 +2,129 @@ title: Resize an existing virtual disk description: published: true -date: 2026-05-08T09:03:28.700Z +date: 2026-05-08T09:34:59.946Z tags: editor: markdown dateCreated: 2021-11-13T11:41:29.087Z --- -# Resize a disk +# Resize a virtual disk ## Background A virtual machine's disk may have to be resized, typically due to lack of space. This page explains how to do so. -## Usage for Linux guests -> In-place expansion is not supported. A new disk of the desired size has to be created. +## Preparation + +### Shut down virtual machine + +> Please ensure that the virtual machine using the virtual disk to be resized is turned off +{.is-warning} + +Let's assume that you wish to increase the size of the virtual machine called *guest*. + +- List virtual machines running on your host + +``` +# virsh list --all + +Id Name State +---------------------------------------------------- + 1 guest running +``` + +- Shutdown the *guest* virtual machine + +``` +# virsh shutdown guest +``` + +- Ensure that the virtual machine is fully shut off + +``` +# virsh list --all + +Id Name State +---------------------------------------------------- + 1 guest shut off +``` + +It is now safe to proceed to the next step + +### Backup existing disk + +It is advisable to make a backup first. + +- Navigate to the correct directory + +``` +# cd /var/lib/libvirt/images +``` + +- Make a copy of the virtual disk image + +``` +# cp guest.img backup_guest.img +``` + +## Linux guests + + +> In-place expansion is not supported. A new disk of the desired size has to be created, and then swap with the former disk. {.is-info} -* Navigate to the location that contains the existing image +- Navigate to the location that contains the existing image ``` -cd /var/lib/libvirt/images +# cd /var/lib/libvirt/images ``` -* Create a new blank disk image of the desired size - -Use the following command to create a disk of 20 GB called `guest_20G.img`. +- Create a new blank 20 GB disk called `guest_20G.img` ``` -qemu-img create -f raw guest_20G.img 20G +# qemu-img create -f raw guest_20G.img 20G ``` -* Identify the filesystem layout of the existing disk `guest.img` +- Identify the filesystem layout of the existing disk `guest.img`, which is ext4-based ``` -# virt-filesystems -a -l -h guest.img +# virt-filesystems -a guest.img -l -h Name Type VFS Label Size Parent -/dev/vda1 filesystem vfat EFI 133935104 - -/dev/vda2 filesystem ext4 boot 366869504 - -/dev/vda3 filesystem ext4 root 9933475840 - +/dev/vda1 filesystem vfat EFI 1.3G - +/dev/vda2 filesystem ext4 boot 3.6G - +/dev/vda3 filesystem ext4 root 10G - ``` -One can tell that the root partition is located under `/dev/vda3`. This is the one that will need to be expanded. +- Another output for a btrfs-based filesystem -* Copy the formet old data to the new disk and expand the root partition of the said disk +``` +# virt-filesystems -a bazzite-desktop.img -l -h +Name Type VFS Label Size Parent +/dev/sda1 filesystem vfat - 599M - +/dev/sda2 filesystem ext4 bazzite_xboot 1.9G - +/dev/sda3 filesystem btrfs bazzite 37G - +btrfsvol:/dev/sda3/root filesystem btrfs bazzite - - +btrfsvol:/dev/sda3/home filesystem btrfs bazzite - - +btrfsvol:/dev/sda3/var filesystem btrfs bazzite - - +``` + +Thanks to the label on the ext4-based based image, one can tell that the root partition is `/dev/vda3`. This is the one that will need to be expanded. For the btrfs example, the root partition `/dev/sda3`as shown by `btrfsvol:/dev/sda3/root` + +* Copy the former old data to the new disk and expand the root partition of the said disk > This command is capable of expanding different kinds of filesystems, including `ext4` and `btrfs` {.is-info} +The command takes the new empty disk as last argument. + +> Data could be erased if you mix argument! +{.is-warning} ``` # virt-resize --expand /dev/vda3 guest.img guest_20G.img ``` -* Review the changes +* Review changes ``` [ 0.0] Examining guest_20G.img