====== Ubuntu - Extend Your Default LVM Space ======
So, like me, you installed Ubuntu and accepted the installers default selections for lvm and now your operating volume is very small and the Ubuntu installer did not utilize the entire physical drive. There is a ton of space that is not being utilized. And, possibly, your freshly installed cloud application (NextCloud) will soon exceed the allotted space within the first week or so as a result of data uploading or synchronization.
All credit for the concepts and sequences of commands goes to the publishers of the article that you can find by clicking the following link:
[[https://packetpushers.net/ubuntu-extend-your-default-lvm-space/]]
This first example below involves a 1TB physical drive of which Ubuntu's default partitioning only allotted 98GB to the operating volume shown as 'ubuntu--vg-ubuntu--lv' below.
First run df -h
$ df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 791M 1.2M 790M 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 98G 7.0G 86G 8% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda2 2.0G 130M 1.7G 8% /boot
tmpfs 791M 4.0K 791M 1% /run/user/1000
Next run vgdisplay
user@svr1:~$ sudo vgdisplay
[sudo] password for user:
--- Volume group ---
VG Name ubuntu-vg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size <929.00 GiB
PE Size 4.00 MiB
Total PE 237823
Alloc PE / Size 25600 / 100.00 GiB
Free PE / Size 212223 / <829.00 GiB
VG UUID rF3fw2-13h2-kAiL-aeWA-KyDZ-5HQU-GwvKDe
Next run lvdisplay
user@svr1:~$ sudo lvdisplay
--- Logical volume ---
LV Path /dev/ubuntu-vg/ubuntu-lv
LV Name ubuntu-lv
VG Name ubuntu-vg
LV UUID xUUIxr-wnDl-7ZNk-EQpK-gAwb-Wug0-a7JSTb
LV Write Access read/write
LV Creation host, time ubuntu-server, 2023-06-28 23:21:26 +0000
LV Status available
# open 1
LV Size 100.00 GiB
Current LE 25600
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
Switching to root user
user@svr1:~$ sudo su
root@svr1:/home/user# cd
root@svr1:~#
Run the following to extend the LV to the maximum size usable.
root@svr1:~# lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
Size of logical volume ubuntu-vg/ubuntu-lv changed from 100.00 GiB (25600 extents) to <929.00 GiB (237823 extents).
Logical volume ubuntu-vg/ubuntu-lv successfully resized.
root@svr11:~#
Run lvdisplay once more to verify that that the logical volume was successfully resized.
root@svr1:~# lvdisplay
--- Logical volume ---
LV Path /dev/ubuntu-vg/ubuntu-lv
LV Name ubuntu-lv
VG Name ubuntu-vg
LV UUID xUUIxr-wnDl-7ZNk-EQpK-gAwb-Wug0-a7JSTb
LV Write Access read/write
LV Creation host, time ubuntu-server, 2023-06-28 23:21:26 +0000
LV Status available
# open 1
LV Size <929.00 GiB
Current LE 237823
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
root@svr1:~#
At this point you have increased the size of the block volume where your root filesystem resides, but you still need to extend the filesystem on top of it.
First, run df -h to verify your (almost full) root file system, then run resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv to extend your filesystem, and run df -h one more time to make sure you’re successful.
This is a continuation of the above: now extending the file system to utilize the entire resized volume on a 1TB physical drive.
Re-established remote ssh connection and want to again switch to root user.
~$ sudo su
[sudo] password for user:
root@svr1:/home/user# cd
Run df -h to see where we are. Notice that ubuntu--vg-ubuntu--lv is still only 98G. We still need to extend the filesystem to match the resized LV.
root@svr11:~# df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 791M 1.2M 790M 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 98G 7.0G 86G 8% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda2 2.0G 130M 1.7G 8% /boot
tmpfs 791M 4.0K 791M 1% /run/user/1000
Let's check vgdisplay
root@svr1:~# vgdisplay
--- Volume group ---
VG Name ubuntu-vg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size <929.00 GiB
PE Size 4.00 MiB
Total PE 237823
Alloc PE / Size 237823 / <929.00 GiB
Free PE / Size 0 / 0
VG UUID rF3fw2-13h2-kAiL-aeWA-KyDZ-5HQU-GwvKDe
Let's check lvdisplay
root@svr1:~# lvdisplay
--- Logical volume ---
LV Path /dev/ubuntu-vg/ubuntu-lv
LV Name ubuntu-lv
VG Name ubuntu-vg
LV UUID xUUIxr-wnDl-7ZNk-EQpK-gAwb-Wug0-a7JSTb
LV Write Access read/write
LV Creation host, time ubuntu-server, 2023-06-28 23:21:26 +0000
LV Status available
# open 1
LV Size <929.00 GiB
Current LE 237823
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
Now, run the following command to resize the file system to the full size of the resized volume.
root@svr1:~# resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
resize2fs 1.46.5 (30-Dec-2021)
Filesystem at /dev/mapper/ubuntu--vg-ubuntu--lv is mounted on /; on-line resizing required
old_desc_blocks = 13, new_desc_blocks = 117
The filesystem on /dev/mapper/ubuntu--vg-ubuntu--lv is now 243530752 (4k) blocks long.
root@svr1:~#
Run df -h
And notice that 'ubuntu--vg-ubuntu--lv' is now 914G
root@svr1:~# df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 791M 1.2M 790M 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 914G 7.0G 869G 1% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda2 2.0G 130M 1.7G 8% /boot
tmpfs 791M 4.0K 791M 1% /run/user/1000
root@svr1:~#
**End of resizing on the 1TB physical drive. IF EVERYTHING WENT WELL, THEN STOP HERE.**
FOLLOWING IS ANOTHER UNRELATED EXAMPLE OF THE SECOND PART OF THE PROCESS:
Example 2:
Note: The following operations and output involves a 2TB physical drive instead of 1TB (like above). This is a different server where **only the second part of this resizing job is depicted below**, likewise properly finished by extending the file system on top of the block volume that you just extended.
Again, at this point we have increased the size of the block volume where your root filesystem resides, but you still need to extend the filesystem on top of it.
First, run df -h to verify your (almost full) root file system, then run resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv to extend your filesystem, and run df -h one more time to make sure you’re successful.
Here are the new readings for 'svr3' (using a pair of 2TB Drives on a hardware RAID-1 Array -- which matters not.)
Logical volume ubuntu-vg/ubuntu-lv successfully resized.
root@svr3:~# lvdisplay
--- Logical volume ---
LV Path /dev/ubuntu-vg/ubuntu-lv
LV Name ubuntu-lv
VG Name ubuntu-vg
LV UUID 0FjNEm-jrLm-tYWv-AzHT-TZmm-l9bx-aVWpyR
LV Write Access read/write
LV Creation host, time ubuntu-server, 2023-06-18 18:42:52 +0000
LV Status available
# open 1
LV Size <1.82 TiB
Current LE 476287
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
root@svr3:~# df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 1.6G 1.2M 1.6G 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 98G 12G 82G 13% /
tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda2 2.0G 253M 1.6G 14% /boot
tmpfs 1.6G 4.0K 1.6G 1% /run/user/1000
Now, run the following command to extend your filesystem.
root@svr3:~# resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
Results
resize2fs 1.46.5 (30-Dec-2021)
Filesystem at /dev/mapper/ubuntu--vg-ubuntu--lv is mounted on /; on-line resizing required
old_desc_blocks = 13, new_desc_blocks = 233
The filesystem on /dev/mapper/ubuntu--vg-ubuntu--lv is now 487717888 (4k) blocks long.
Run df -h again.
root@svr3:~# df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 1.6G 1.2M 1.6G 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 1.8T 12G 1.8T 1% /
tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda2 2.0G 253M 1.6G 14% /boot
tmpfs 1.6G 4.0K 1.6G 1% /run/user/1000
root@nc3:~#
Run vgdisplay again
root@svr3:~# vgdisplay
--- Volume group ---
VG Name ubuntu-vg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size <1.82 TiB
PE Size 4.00 MiB
Total PE 476287
Alloc PE / Size 476287 / <1.82 TiB
Free PE / Size 0 / 0
VG UUID bK42QC-L9pu-bEiA-ndU0-j3v7-3XWU-tAO6R5
Run lvdisplay again
root@svr3:~# lvdisplay
--- Logical volume ---
LV Path /dev/ubuntu-vg/ubuntu-lv
LV Name ubuntu-lv
VG Name ubuntu-vg
LV UUID 0FjNEm-jrLm-tYWv-AzHT-TZmm-l9bx-aVWpyR
LV Write Access read/write
LV Creation host, time ubuntu-server, 2023-06-18 18:42:52 +0000
LV Status available
# open 1
LV Size <1.82 TiB
Current LE 476287
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
root@svr3:~#
VG Size and LV Size are both <1.82 TiB
I believe we're done here.