Ubuntu LVM-Partition erweitern
Oft kommt es vor, dass eine Linux-VM zu wenig Speicher gegeben wurde bzw. man möchte im Nachhinein den Speicher erweitern. In unserem Fall handelte es sich um einen ESXi 8 Host, der eine Ubuntu 22.04 virtuelle Maschine betreibt.
Diese hatte bei der Erstellung insgesamt 30 Gigabyte Festplatte, verteilt auf die Default-Partitionen.
Wir brauchen jedoch mehr Speicher. Also haben wir als Erstes in unserem Hypervisor den Speicher der Platte von 30 Gigabyte auf 80 erhöht.
Nun haben wir mit folgendem Befehl angeschaut, wie unsere Speicherstruktur aussieht.
sudo lsblk

Hier sehen wir, dass unsere Festplatte in drei Partitionen aufgeteilt wurde. Zusätzlich ist in den neueren Ubuntu-Versionen ein sog. LVM (Logical Volume Manager) installiert. Dieser stellt die / Root Partition zur Verfügung.
Wir müssen also als Erstes die eigentliche Platte vergrößern über unseren Hypervisor (hier sda). Dann müssen wir als Nächstes unserer Root-Partition den neuen zusätzlichen Speicher abgeben. Für Anfänger ist es sicherer, das Ganze über gparted zu machen, da über die CLI sehr schnell viel falsch gemacht werden kann.
Nachdem wir uns über die Struktur im Klaren sind, fahren wir die VM herunter und mounten unser gparted-live-iso-image. Bedenkt, stellt am besten in den Startoptionen ein, dass Ihr direkt ins BIOS wollt.

Startet die VM und bootet von der gparted (CD).
Wählt in gparted eure Partition aus (in unserem Fall sda3) und vergrößert diese entsprechend. Speichert und übernehmt die Änderungen. Danach könnt Ihr die VM wieder herunterfahren.
Nun startet Ihr wieder die VM, jedoch diesmal wieder das eigentliche OS Ubuntu.
Manuell über fdisk geht das ganze so:
sudo fdisk /dev/sda
Dazu müssen in den nächsten Schritten:
1: p für Primäre Partitionen anzeigen (hier die entsprechende Platte auswählen).
2. d für delete um die Platte 3 zu löschen.
3. n für new um die Platte 3 wieder neu anzulegen.
4. WICHTIG Wenn ein Dateisystem erkannt wird, dann nicht löschen, sondern mit n Abbrechen.
5. Abschließend w für write zum speichern.
p
d
3
n
3
n
w
Im nächsten Schritt müssen wir uns die Informationen über das LVM anzeigen. Das geht am besten über diesen Befehl. Danach die Volumengröße neu einlesen mit pvresize. Überprüfen, dass bei vgdisplay Freier Speicherplatz angezeigt wird. Abschließend noch das lvm erweitern mit lvextend und das Dateisystem auf die neue Größe kalibrieren.
partprobe -s
pvresize /dev/sda3
vgdisplay
df -h
lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
resize2fs /dev/ubuntu-vg/ubuntu-lv

In eurem Fall MUSS bei Free PE / Size eine Zahl größer als Null stehen. In unserem Beispiel haben wir die Änderungen bereits durchgeführt und entsprechend gibt es keinen freien Platz mehr auf sda3, welchen wir der LVM zuweisen könnten.
Jetzt sollte die Root-Partition den neuen Speicher genommen haben. Überprüfen Sie das mit folgenden Befehlen.
lsblk
df -h /home/
Falls Ihr wie ich damals ebenfalls lange nach einer Lösung gesucht habt und jetzt erfolgreich wart, würde ich mich über einen Kaffee freuen.
Eine genauere Anleitung findet ihr hier: https://theducks.org/2009/11/expanding-lvm-partitions-in-vmware-on-the-fly/