Increase disk space on Ubuntu guest VM – no GUI or GParted

Introduction

I’m writing this article mostly for my future self since I already did this kind of expansion twice in the last year and had to waste a lot of time finding this solution online.

Most of the articles found on Google deal with Ubuntu guest VMs that have some sort of graphical user interface.

Coming from a Windows background and not having experienced a Linux host, I found that a Linux GUI inside a VM (be it VirtualBox, Hyper-V or VMware) is not snappy enough for me. So I went the Ubuntu Server with no GUI way.

My setup

Host OS: Windows 10 Pro.
Virtualization software: VirtualBox.
Guest OS: Ubuntu Server 20.04 LTS.

The install is the default one with no drive encryption since it’s usually a practice VM with no important data.

Install steps

Pre-requests
  • Access to virtualization software
  • Sudo role
  • Cfdisk utility (is usually pre-installed in Ubuntu LTS)
TLDR steps:

Sequentially increase the following:

  1. VDI size: host Virtual Media Manager –> Go to details
  2. Physical Volume –> Go to details:
  3. Volume Group (optional): sudo vgextend <your volume group> <your phisical volume> –> Go to details
  4. Logical Volume: sudo lvresize -l +100%FREE <your logical volume> –> Go to details
  5. Filesystem: sudo resize2fs <your filesystem> –> Go to details
1. Increase VDI size

This step will go according to your virtualization software. Virtualbox has a straight forward GUI (Virtual Media Manager) which helps you do it easily outside the VM:

VDI initial size
VDI Initial size
Virtualbox VDI increased with Virtual Media Manager
VDI increased

From this point forward the steps have to be done inside the VM (be it through the virtualization software interface or a SSH utility).

2. Increase Physical Volume:

This step uses 2 Ubuntu built-in utilities: Cfdisk and pvresize

a. Cfdisk (sudo cfdisk) will automatically detect the increased VDI image and the operations are pretty much straight forward : resize and write to disk.

Cfdisk pre-resize
Cfdisk resize
Cfdisk after-resize
Cfdisk write

b. After you exit the Cfdisk utility you’ll have to use the pvresize command to increase physical volume (in my case: sudo pvresize /dev/sda3).

3. Increase Volume Group (optional)

This is an optional step since in Step 2 (Increase physical volume) you can create a brand new physical volume instead of resizing one of the original ones as I did.

A more detailed tutorial about this can be found in steps 5 and 6 of this article: https://brianchristner.io/how-to-resize-ubuntu-root-partition/

4. Increase Logical Volume

At this point, the command <sudo fdisk -l> should highlight the difference between the physical and logical volume in size:

Physical and logical volume difference

Increasing the logical volume is done by the following command:

sudo lvresize -l +100%FREE <your logical volume>

Logical Volume resize

The result speaks for itself:

Logical volume resize- after
5. Increase Filesystem

The final part of this tutorial is where we make the entire space available to the operating system:

  • sudo resize2fs <your filesystem>
  • Thanks to these pages:

    https://dev.to/schollii/expand-disk-in-virtualbox-ubuntu-18-guest-24eo

    https://brianchristner.io/how-to-resize-ubuntu-root-partition/

    Leave a Reply