LVM Volumes im laufenden Betrieb erweitern und verkleinern — Praxis-Guide
LVM Volumes online erweitern und verkleinern ohne Neustart. Schritt-für-Schritt mit lvextend, lvreduce, resize2fs und praktischen Beispielen für Proxmox und Linux Server.
- Warum LVM? Die Vorteile auf einen Blick
- LVM-Basics: Die drei Schichten verstehen
- LVM erweitern im laufenden Betrieb (Online-Resize)
- LVM verkleinern (mit Downtime)
- Proxmox-spezifische Tipps
- Troubleshooting: Häufige Fehler und Lösungen
- Best Practices: So machst du’s richtig
- Zusammenfassung: Dein Cheat Sheet
- Weiterführende Links
- 🛒 Empfohlene Hardware
- Fazit
Du kennst das Problem: Die /var-Partition ist voll, dein Docker-Host schreit nach mehr Speicher, oder dein Proxmox Homelab braucht dringend zusätzlichen Platz. Zum Glück nutzt du LVM — aber wie erweitert man ein Volume, während das System läuft?
In diesem Guide zeige ich dir, wie du LVM-Volumes online erweitern (ohne Neustart!), sicher verkleinern und dabei häufige Fehler vermeidest. Mit konkreten Befehlen, Proxmox-spezifischen Tipps und echten Praxisbeispielen.
Warum LVM? Die Vorteile auf einen Blick#
Logical Volume Manager (LVM) ist der Standard für flexible Storage-Verwaltung unter Linux. Anders als klassische Partitionen lassen sich LVM-Volumes nachträglich anpassen — perfekt fürs Homelab!
Die wichtigsten Vorteile:
- ✅ Online-Erweiterung: Volumes vergrößern ohne Downtime
- ✅ Flexible Aufteilung: Speicher zwischen Volumes verschieben
- ✅ Snapshots: Backups im laufenden Betrieb
- ✅ Mehrere Disks: Kombiniere physische Laufwerke zu einem Volume
Wann brauchst du Resize?
- 🚨
/varist voll (Docker-Container, Logs) - 🚨 VM-Disk erweitert, aber im Gastsystem nicht sichtbar
- 🚨 Home-Verzeichnis braucht mehr Platz
- 🚨 Falsche Partitionierung bei Installation
LVM-Basics: Die drei Schichten verstehen#
Bevor wir loslegen, musst du die LVM-Architektur verstehen. LVM arbeitet in drei Ebenen:
┌─────────────────────────────────────┐
│ Logical Volume (LV) │ ← Das siehst du: /dev/vg-name/lv-name
│ z.B. /dev/vg-data/var │ Wird gemountet als /var
└─────────────────────────────────────┘
↓
┌─────────────────────────────────────┐
│ Volume Group (VG) │ ← Pool aus einem oder mehreren PVs
│ z.B. vg-data │ Verwaltet den Speicher-Pool
└─────────────────────────────────────┘
↓
┌─────────────────────────────────────┐
│ Physical Volume (PV) │ ← Physische Disk/Partition
│ z.B. /dev/sda5, /dev/sdb1 │ Echte Hardware-Layer
└─────────────────────────────────────┘
Die wichtigsten Begriffe:
Begriff Bedeutung Beispiel
PV (Physical Volume) Physische Disk oder Partition /dev/sda5
VG (Volume Group) Pool aus einem oder mehreren PVs vg-data
PE (Physical Extent) Kleinste Speichereinheit (meist 4 MB) -
Status prüfen:
# Alle drei Ebenen auf einen Blick
pvs # Physical Volumes
vgs # Volume Groups
lvs # Logical Volumes
# Detaillierte Infos
pvdisplay
vgdisplay
lvdisplay
LVM erweitern im laufenden Betrieb (Online-Resize)#
Der Traum: Volume vergrößern, ohne das System herunterzufahren. Mit LVM kein Problem! Der Prozess läuft in drei Schritten:
- Physical Volume erweitern (wenn die Disk größer wurde)
- Logical Volume erweitern
- Filesystem anpassen
Schritt 1: Physical Volume erweitern (nach Disk-Vergrößerung)#
Du hast in Proxmox, VMware oder am RAID-Controller die Disk vergrößert? Dann muss LVM das erstmal mitbekommen.
Variante A: Extended Partition neu anlegen (MBR)
Bei alten MBR-basierten Systemen musst du die Extended Partition neu anlegen, um den zusätzlichen Platz nutzbar zu machen:
# ACHTUNG: Dieser Prozess ist heikel! Backup vorher empfohlen.
fdisk /dev/sda
# In fdisk:
# 1. Extended Partition (meist 2) löschen
Command (m for help): d
Partition number (1-5): 2
# 2. Neue Extended Partition mit Standardwerten anlegen
Command (m for help): n
Select (default p): e
Partition number: 2
First sector: [ENTER für Standard]
Last sector: [ENTER für Standard]
# 3. Neue Logical Partition (5) anlegen
Command (m for help): n
Select (default p): l
First sector: [ENTER für Standard]
Last sector: [ENTER für Standard]
# 4. Partition-Typ auf LVM setzen
Command (m for help): t
Partition number: 5
Hex code: 8e
# 5. Änderungen schreiben
Command (m for help): w
WICHTIG: Dieser Schritt löscht KEINE Daten, aber schreib-Fehler können das System unbootable machen. Backup first!
Partition-Tabelle neu einlesen:
partprobe /dev/sda
# oder bei Fehlern:
partx -u /dev/sda
Physical Volume resizen:
pvresize /dev/sda5
Variante B: GPT-Partition erweitern (moderner Ansatz)
Bei GPT-basierten Systemen (Standard bei UEFI) ist es einfacher:
# Partition automatisch erweitern
growpart /dev/sda 5
# PV resizen
pvresize /dev/sda5
Status prüfen:
pvs
# Sollte jetzt die neue Größe zeigen:
# PV VG Fmt Attr PSize PFree
# /dev/sda5 vg-data lvm2 a-- 100,00g 50,00g
Schritt 2: Logical Volume erweitern#
Jetzt kommt der einfache Teil. Du hast drei Möglichkeiten:
Option 1: Feste Größe hinzufügen
lvextend -L +20G /dev/vg-data/var
Option 2: Kompletten freien Speicher nutzen
lvextend -l +100%FREE /dev/vg-data/var
Option 3: Auf absolute Größe erweitern
lvextend -L 100G /dev/vg-data/var
Schritt 3: Filesystem erweitern#
Das Logical Volume ist größer, aber das Filesystem weiß das noch nicht. Das musst du jetzt anpassen:
Für ext4/ext3 (häufigster Fall):
resize2fs /dev/mapper/vg--data-var
Für XFS:
xfs_growfs /
All-in-One mit lvextend:
# Seit LVM 2.02 gibt's die --resizefs Option
lvextend -l +100%FREE --resizefs /dev/vg-data/var
Prüfen, ob’s geklappt hat:
df -h
# /dev/mapper/vg--data-var sollte jetzt größer sein
Praktisches Beispiel: Docker-Host erweitern#
Dein Docker auf Proxmox läuft voll? So erweiterst du /var im laufenden Betrieb:
# 1. Proxmox: VM-Disk von 50 GB auf 100 GB erweitern (WebUI)
# 2. Im Guest: PV resizen
pvresize /dev/sda5
# 3. LV erweitern (hier: +50 GB)
lvextend -l +100%FREE --resizefs /dev/vg-docker/var
# 4. Prüfen
df -h | grep var
# Filesystem Size Used Avail Use% Mounted on
# /dev/mapper/vg-docker-var 100G 45G 52G 47% /var
Das war’s! Keine Downtime, Docker läuft weiter, Problem gelöst.
LVM verkleinern (mit Downtime)#
Das Verkleinern ist riskanter als Erweitern, weil du Datenverlust riskierst, wenn du dich verrechnet. Backup ist PFLICHT!
Warum verkleinern?
/homeist überdimensioniert,/varbraucht Platz- VM-Disk soll schrumpfen (z.B. vor Migration)
- Storage-Layout optimieren
Sicherer Ablauf zum Verkleinern#
Voraussetzung: Das Filesystem muss unmountet sein. Root-Partitionen können nur von Live-System/Rescue verkleinert werden.
Schritt-für-Schritt:
# 1. Filesystem unmounten
umount /home
# 2. Filesystem-Check (ZWINGEND!)
e2fsck -f /dev/mapper/vg-data-home
# 3. Filesystem verkleinern (ERST das Filesystem!)
resize2fs /dev/mapper/vg-data-home 70G
# 4. Logical Volume verkleinern (DANN das LV!)
lvreduce -L 70G /dev/vg-data-home
# Achtung: -L (absolut), nicht -L - (relativ)!
# 5. Erneuter Check
e2fsck -f /dev/mapper/vg-data-home
# 6. Mounten
mount /home
KRITISCH: Du musst das Filesystem VOR dem LV verkleinern! Umgekehrt würdest du Daten abschneiden.
Speicher zwischen Volumes verschieben#
Klassischer Use-Case: /home hat 100 GB, braucht aber nur 50 GB. /var ist voll.
# 1. Home verkleinern (siehe oben)
umount /home
e2fsck -f /dev/mapper/vg-data-home
resize2fs /dev/mapper/vg-data-home 50G
lvreduce -L 50G /dev/vg-data-home
mount /home
# 2. Prüfen, ob Speicher frei ist
vgs
# VG #PV #LV #SN Attr VSize VFree
# vg-data 1 3 0 wz--n- 200,00g 50,00g
# 3. Var erweitern (online möglich!)
lvextend -L +50G --resizefs /dev/vg-data/var
# 4. Status prüfen
df -h
Pro-Tipp: Du kannst auch erstmal nur das LV verkleinern und den Speicher für später reservieren:
# 10 GB von home nehmen, aber noch nicht zuweisen
lvreduce -L -10G /dev/vg-data-home
# → Diese 10 GB bleiben in der VG als "VFree"
Proxmox-spezifische Tipps#
In Proxmox VMs/CTs läuft LVM oft zweistufig: Host und Guest.
VM-Disk erweitern (Host-Seite)#
In der Proxmox WebUI:
- VM auswählen → Hardware → Hard Disk auswählen
- “Disk Action” → “Resize disk”
- Zusätzliche GB eingeben (z.B. +50)
Oder per CLI:
# Auf dem Proxmox Host
qm resize <VM-ID> scsi0 +50G
Wichtig: Das vergrößert nur die virtuelle Disk! Im Guest musst du noch LVM resizen (siehe oben).
Container (LXC) mit LVM-Thin-Provisioning#
Bei LXC-Containern auf LVM-Thin funktioniert’s ähnlich:
# Auf dem Proxmox Host
pct resize <CT-ID> rootfs +20G
Im Container ist keine weitere Aktion nötig — das Filesystem wird automatisch erweitert.
Proxmox Host selbst erweitern#
Der Proxmox Host nutzt meist pve/root und pve/data:
# Nach Disk-Erweiterung im Hypervisor/RAID
pvresize /dev/sda3
# Freien Speicher anzeigen
vgs pve
# Root-Volume erweitern (für /var/lib/vz)
lvextend -l +100%FREE --resizefs /dev/pve/root
Achtung: pve/data ist ein Thin-Pool, den resized man anders:
lvextend -L +50G /dev/pve/data
Troubleshooting: Häufige Fehler und Lösungen#
Fehler: “Can’t resize online”#
Symptom:
resize2fs: Operation not supported while filesystem is mounted
Ursache: Online-Resize wird nicht unterstützt (z.B. beim Verkleinern).
Lösung:
# Filesystem unmounten
umount /home
# Dann resize2fs ausführen
Fehler: “No space left on device” trotz resize#
Symptom: LV und Filesystem sind größer, aber df -h zeigt alte Größe.
Ursache: Falsche Device-Pfade oder Filesystem nicht resized.
Lösung:
# Prüfe LV-Status
lvdisplay /dev/vg-data/var
# Prüfe Filesystem-Status
df -h | grep var
# Manuell resizen
resize2fs /dev/mapper/vg--data-var
# Notfalls remounten
umount /var && mount /var
Fehler: “Physical volume not found”#
Symptom:
pvresize: Physical volume "/dev/sda5" not found
Ursache: Partition-Tabelle noch nicht neu eingelesen.
Lösung:
partprobe /dev/sda
# oder
partx -u /dev/sda
# Kernel-Log prüfen
dmesg | tail -n 20
Warnung: “–resizefs only works with ext4”#
Symptom:
lvextend: --resizefs is only supported for ext2/ext3/ext4 filesystems
Ursache: Du nutzt XFS, Btrfs oder ein anderes Filesystem.
Lösung:
# Für XFS
lvextend -l +100%FREE /dev/vg-data/var
xfs_growfs /var
# Für Btrfs
lvextend -l +100%FREE /dev/vg-data/var
btrfs filesystem resize max /var
Fehler: “lvreduce: New size would cut into existing data”#
Symptom: Beim Verkleinern meckert LVM.
Ursache: Du versuchst, das LV kleiner zu machen als das Filesystem.
Lösung:
# IMMER erst Filesystem verkleinern!
e2fsck -f /dev/mapper/vg-data-home
resize2fs /dev/mapper/vg-data-home 50G
# DANN das LV
lvreduce -L 50G /dev/vg-data-home
System bootet nicht mehr nach Resize#
Symptom: Nach fdisk-Änderungen bootet System nicht.
Ursache: Partition-Start geändert oder falsche Partition-ID.
Lösung:
# Mit Live-System/Rescue booten
# Partition-Tabelle prüfen
fdisk -l /dev/sda
# LVM aktivieren
vgscan
vgchange -ay
# Filesystem checken
e2fsck -f /dev/mapper/vg-data-root
# Grub neu installieren
mount /dev/mapper/vg-data-root /mnt
grub-install --root-directory=/mnt /dev/sda
Präventiv: Vor riskanten fdisk-Operationen immer Snapshot oder Backup!
Best Practices: So machst du’s richtig#
✅ Vor jeder Operation:
- Backup! Snapshots sind kein Backup-Ersatz.
- Status dokumentieren:
pvs,vgs,lvs→ Textfile - Bei kritischen Systemen: Maintenance Window
✅ Beim Erweitern:
- Erst PV, dann VG, dann LV, dann Filesystem
--resizefsnutzen (spart einen Schritt)- Nach jedem Schritt Status prüfen
✅ Beim Verkleinern:
- Doppelt und dreifach rechnen!
- Filesystem-Check VOR und NACH der Operation
- Filesystem IMMER vor LV verkleinern
- Mindestens 10% Puffer lassen
✅ In Produktion:
- Teste Resize-Prozedur erst in VM
- Monitoring: Checke Alerts nach Resize
- Dokumentiere Änderungen im Runbook
❌ Niemals:
- Root-Partition online verkleinern (geht nicht)
- LV vor Filesystem verkleinern (Datenverlust!)
- Ohne Filesystem-Check resizen
- In Produktions-Primetime rumexperimentieren
Zusammenfassung: Dein Cheat Sheet#
LVM erweitern (Online)#
# 1. Nach Disk-Vergrößerung: PV resizen
pvresize /dev/sda5
# 2. LV erweitern + Filesystem anpassen (ein Befehl!)
lvextend -l +100%FREE --resizefs /dev/vg-data/var
# 3. Status prüfen
df -h
LVM verkleinern (Offline)#
# 1. Unmounten
umount /home
# 2. Filesystem-Check
e2fsck -f /dev/mapper/vg-data-home
# 3. Filesystem verkleinern (ERST!)
resize2fs /dev/mapper/vg-data-home 50G
# 4. LV verkleinern (DANN!)
lvreduce -L 50G /dev/vg-data-home
# 5. Check & Mount
e2fsck -f /dev/mapper/vg-data-home
mount /home
Quick-Commands#
# Alle LVM-Infos auf einen Blick
pvs && vgs && lvs
# Freien Speicher in VG anzeigen
vgs --noheadings -o vg_free <vg-name>
# LV + Filesystem in einem Rutsch erweitern
lvextend -l +100%FREE --resizefs <lv-path>
# Filesystem manuell erweitern
resize2fs <lv-path> # ext4
xfs_growfs <mountpoint> # XFS
Weiterführende Links#
- Proxmox Homelab einrichten — Anfänger-Guide
- Docker auf Proxmox einrichten
- Red Hat: LVM Administration Guide
- ArchWiki: LVM
🛒 Empfohlene Hardware#
- 💾 Samsung 970 EVO Plus NVMe SSD — Schnelle SSD für LVM Volumes
- 💾 WD Red Plus NAS HDD — Zuverlässige HDDs für Storage-Erweiterung
🖥️
Hetzner Cloud
LVM in der Cloud testen? Hetzner Cloud Server lassen sich mit zusätzlichen Volumes erweitern — perfekt zum Üben. Hetzner ausprobieren →
Fazit#
LVM-Resize ist weniger kompliziert, als es auf den ersten Blick scheint. Die goldene Regel: Beim Erweitern von unten nach oben (PV → VG → LV → FS), beim Verkleinern von oben nach unten (FS → LV).
Mit --resizefs sparst du dir einen Schritt und minimierst Fehlerquellen. In Proxmox-Umgebungen ist LVM besonders praktisch, weil du VMs flexibel anpassen kannst, ohne komplizierte Partitionierungs-Tools in der VM zu bemühen.
Wichtigste Takeaways:
- ✅ Online-Erweiterung funktioniert problemlos (keine Downtime!)
- ✅ Verkleinern braucht Unmount und doppelte Vorsicht
- ✅
resize2fs/xfs_growfsnicht vergessen! - ✅ Backup vor riskanten Operationen ist PFLICHT
Jetzt bist du bereit, dein Storage flexibel zu verwalten. Viel Erfolg beim Resizen — und denk dran: Backup first! 🚀
Einige Links auf dieser Seite sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision — für dich ändert sich am Preis nichts. So unterstützt du diesen Blog und ermöglichst weitere kostenlose Tutorials. Danke! 🙏
[« Vorherige]
Home Assistant: Garagentor mit Zigbee-Sensor und Shelly steuern