Introduction
Problem: After bolstering the storage capacity of a Linux VM within Proxmox or another hypervisor, you’ll discover that the operating system inside the VM doesn’t automatically recognize or utilize this newly added space.
Solution: To harness this additional storage, you need to resize both the partitions and the filesystems within the Linux environment. If you’ve configured your VM with Logical Volume Management (LVM), this entails adjusting the physical volume, the logical volume, and subsequently, the filesystem.
Ensure the Partition Covers the New Space:
To observe the current partitions:
sudo fdisk -lExample Output:
Device Start End Sectors Size Type /dev/sda1 2048 999423 997376 487M EFI System /dev/sda2 999424 20479999 19480576 9.3G Linux filesystemIf, for instance,
/dev/sda2isn’t leveraging the entire disk space, you need to adjust it. Here’s how:Launch the partition tool for the disk:
sudo fdisk /dev/sda- Press
pto display the existing partition layout. - Ensure you note the start sector of the partition you intend to resize.
- Press
dto delete the desired partition, and select its number (like2for/dev/sda2). - Hit
nto create a new partition. Use the exact start sector from earlier and allow the default end sector to encompass all available space. - Press
tto modify the partition type and assign it to8e, denoting Linux LVM. - To apply the changes, press
w.
Example Output:
Command (m for help): n Partition number (2-4, default 2): 2 First sector (999424-49971199, default 999424): 999424 Last sector, +/-sectors or +/-size{K,M,G,T,P} (999424-49971199, default 49971199): Created a new partition 2 of type 'Linux filesystem' and of size 23.3 GiB.- Press
Inform the Kernel About Partition Changes:
sudo partprobeExpand the LVM Physical Volume:
To view the current status:
sudo pvdisplayExample Output:
--- Physical volume --- PV Name /dev/sda2 VG Name ubuntu-vg PV Size 9.30 GiBTo resize the physical volume:
sudo pvresize /dev/sda2Expand the LVM Logical Volume:
sudo lvresize -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lvResize the Filesystem:
sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lvVerify the Changes:
df -hExample Output:
Filesystem Size Used Avail Use% Mounted on /dev/mapper/ubuntu--vg-ubuntu--lv 23G 4.8G 17G 22% /
LVM vs. Logical Volume: What’s the Difference?
LVM (Logical Volume Management) offers a flexible and agile solution for storage management, enabling the seamless management of disk drives and similar storage mechanisms. Under the LVM umbrella, you’ll encounter:
- Physical Volumes (PV): These are your raw storage devices or partitions that store data.
- Volume Groups (VG): Collections of physical volumes, they act as one consolidated storage reservoir.
- Logical Volumes (LV): These lie within a volume group and act as block devices that sustain the filesystem.
In essence, LVM facilitates the amalgamation of several disks (or partitions) into a singular storage pool (VG). From this pool, logical subdivisions (LVs) can be extracted, upon which filesystems are created.
Thus, when we discuss “expanding LVM”, we’re essentially alluding to a series of tasks that incorporate expanding the physical volume (PV), possibly the volume group (VG), followed by the logical volume (LV). Only post these operations is the filesystem itself stretched to occupy the new space.
Endowed with these precise commands and sample outputs, you’re equipped with a clear roadmap of what to anticipate at every juncture. As a precaution, always ensure your data is backed up before initiating any significant modifications to your storage structures.
