# Resizing/Extending Logical Volumes (LVM) in Proxmox

## What is LVM?

> LVM stands for Logical Volume Management. It is a system of managing logical volumes, or filesystems, that is much more advanced and flexible than the traditional method of partitioning a disk into one or more segments and formatting that partition with a filesystem. - https://wiki.ubuntu.com/Lvm

## WARNING

> Below are the steps I took when I replaced my Proxmox 32GB microSD with a 64GB and cloned the installation from the old card to the new one. Do not attempt these steps without first having a backup as there is a high risk of data loss if the partition changes are unsuccessful

## Extending a LVM Volume

1. Log into the device using LVM, in this example I'll be extending the pve-root and data volumes in Proxmox
2. Run the following commands in terminal
   # login as root if needed (not needed for proxmox)
   sudo su
   # list disks and partitions
   fdisk -l
   # list volume groups
   vgdisplay
   # list logical volumes
   lvdisplay
   # edit partitions with fdisk, change device id as needed
   fdisk /dev/sda
   # print the partition table
   p
   # delete a partition
   d
   # enter the lvm partition number
   3
   # create a new partition
   n
   # enter the new partition number, same as the number deleted
   3
   # press enter to accept the default first sector
   # press enter to accept the default last sector
   # when prompted about removing the LVM signature, enter N
   n
   # set the partition type
   t
   # enter the partition number
   3
   # set the type to Linux LVM
   30
   # write the changes
   w
   # list disks and partitions, noting the size increase
   fdisk -l
   # extend the existing physical volume
   pvresize /dev/sda3
   # extend the pve-root logical volume to 100% available free space
   lvresize -L +8GB /dev/pve/root
   # extend the underlying file system
   resize2fs /dev/mapper/pve-root
   # list logical volumes, noting root is now 8GB larger
   lvdisplay
   # extend the data to 100% available free space
   lvextend -l +100%FREE pve/data
   # list logical volumes, noting data is now over 35GB
   lvdisplay

Further Reading: https://wiki.ubuntu.com/Lvm