Ubuntu installiert das Physical Volume bei der Erstinstallation in eine separate (zweite) Partition, da die erste Partition ohne LVM für /boot eingerichtet wird:
root@ubuntu1604lts:~/# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 253:0 0 15G 0 disk
├─vda1 253:1 0 487M 0 part /boot
└─vda2 253:2 0 7,5G 0 part
├─vg00-root 252:0 0 1,9G 0 lvm /
├─vg00-swap 252:1 0 1,9G 0 lvm [SWAP]
├─vg00-tmp 252:3 0 488M 0 lvm /tmp
├─vg00-var 252:4 0 1,9G 0 lvm /var
└─vg00-home 252:5 0 1,5G 0 lvm /home
vdb 253:16 0 20G 0 disk
└─vg01-opt 252:2 0 10G 0 lvm /opt
Hat man bei der Ersteinrichtung zu knapp gedacht, kann es passieren, dass die root-Partition vollläuft:
root@ubuntu1604lts:~/# df -h
Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf
udev 981M 0 981M 0% /dev
tmpfs 201M 3,2M 197M 2% /run
/dev/mapper/vg00-root 1,8G 1,8G 0 100% /
tmpfs 1001M 0 1001M 0% /dev/shm
tmpfs 5,0M 0 5,0M 0% /run/lock
tmpfs 1001M 0 1001M 0% /sys/fs/cgroup
/dev/vda1 464M 106M 331M 25% /boot
/dev/mapper/vg00-tmp 465M 2,3M 434M 1% /tmp
/dev/mapper/vg00-home 1,5G 2,3M 1,4G 1% /home
/dev/mapper/vg01-opt 9,8G 23M 9,2G 1% /opt
/dev/mapper/vg00-var 1,8G 630M 1,1G 37% /var
tmpfs 201M 0 201M 0% /run/user/0
Wenn man jetzt für die VM die Festplatte vergrößert, ändert das leider nichts am Dateisystem, da die Partition und damit das LVM Physical Volume gleich groß geblieben ist:
root@ubuntu1604lts:~/# pvdisplay /dev/vda2
--- Physical volume ---
PV Name /dev/vda2
VG Name vg00
PV Size 7,52 GiB / not usable 3,00 MiB
Allocatable yes (but full)
PE Size 4,00 MiB
Total PE 1925
Free PE 0
Allocated PE 1925
PV UUID ubAhLP-Od1g-7U3V-qj7O-dAws-CLuc-ePRnQ9
Jetzt also der große Moment, die benutzte Partition online zu vergrößern, ohne dass die vorhandenen Daten Schaden nehmen. Dazu eignet sich hervorragend parted (auch ohne GUI = gparted). Dazu kann man den dialoggesteuerten Modus starten und sich erst mal ein paar Informationen anzeigen lassen:
root@ubuntu1604lts:~/# parted
GNU Parted 3.2
/dev/mapper/vg00-var wird verwendet
Willkommen zu GNU Parted! Rufen Sie »help« auf, um eine Liste der verfügbaren Befehle zu erhalten.
(parted) select /dev/vda
/dev/vda wird verwendet
(parted) unit MiB
(parted) print free
Modell: Virtio Blockorientiertes Gerät (virtblk)
Festplatte /dev/vda: 15360MiB
Sektorgröße (logisch/physisch): 512B/512B
Partitionstabelle: msdos
Disk-Flags:
Nummer Anfang Ende Größe Typ Dateisystem Flags
0,03MiB 1,00MiB 0,97MiB Freier Platz
1 1,00MiB 488MiB 487MiB primary ext4 boot
2 488MiB 8191MiB 7703MiB primary LVM
8191MiB 15360MiB 7169MiB Freier Platz
Wenn standardmäßig ein anderes, als die gewünschte Partition verwendet wird, muss man mit select erst in die entsprechende wechseln. Mit unit kann man mit unterschiedlichen Speichergrößen arbeiten. Wer jetzt versucht die Partition mit resizepart zu vergrößern, wird meistens scheitern, weil die Umrechnungen der Anzeige zu ungenau sind, um sie in den Änderungsangaben zu verwenden:
(parted) resizepart
Partitionsnummer? 2
Ende? [8191MiB]? 15360MiB
Fehler: Der Ort 15360MiB ist außerhalb des Geräts /dev/vda.
Also erst einmal die Einheiten auf absolute Werte wie Sektoren einstellen und noch einmal versuchen. Da man sich diese auch so anzeigen lassen kann, kann man sich den Wert prima kopieren:
(parted) unit s
(parted) print free
Modell: Virtio Blockorientiertes Gerät (virtblk)
Festplatte /dev/vda: 31457280s
Sektorgröße (logisch/physisch): 512B/512B
Partitionstabelle: msdos
Disk-Flags:
Nummer Anfang Ende Größe Typ Dateisystem Flags
63s 2047s 1985s Freier Platz
1 2048s 999423s 997376s primary ext4 boot
2 999424s 16775167s 15775744s primary LVM
16775168s 31457279s 14682112s Freier Platz
(parted) resizepart
Partitionsnummer? 2
Ende? [16775167s]? 31457279s
Zeigt man sich dann das Ergebnis mit den vorherigen Einheiten an, erkennt man auch die Vergrößerung und kann das Programm verlassen:
(parted) unit MiB
(parted) print free
Modell: Virtio Blockorientiertes Gerät (virtblk)
Festplatte /dev/vda: 15360MiB
Sektorgröße (logisch/physisch): 512B/512B
Partitionstabelle: msdos
Disk-Flags:
Nummer Anfang Ende Größe Typ Dateisystem Flags
0,03MiB 1,00MiB 0,97MiB Freier Platz
1 1,00MiB 488MiB 487MiB primary ext4 boot
2 488MiB 15360MiB 14872MiB primary LVM
(parted) quit
Informationen: Möglicherweise müssen Sie /etc/fstab anpassen.
Jetzt nur noch das LVM Physical und Logical Volume und das Dateisystem der gewünschten Partition vergrößern und fertig:
root@ubuntu1604lts:~/# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 253:0 0 15G 0 disk
├─vda1 253:1 0 487M 0 part /boot
└─vda2 253:2 0 14,5G 0 part
├─vg00-root 252:0 0 1,9G 0 lvm /
├─vg00-swap 252:1 0 1,9G 0 lvm [SWAP]
├─vg00-tmp 252:3 0 488M 0 lvm /tmp
├─vg00-var 252:4 0 1,9G 0 lvm /var
└─vg00-home 252:5 0 1,5G 0 lvm /home
vdb 253:16 0 20G 0 disk
└─vg01-opt 252:2 0 10G 0 lvm /opt
root@ubuntu1604lts:~/# pvdisplay /dev/vda2
--- Physical volume ---
PV Name /dev/vda2
VG Name vg00
PV Size 7,52 GiB / not usable 2,00 MiB
Allocatable yes (but full)
PE Size 4,00 MiB
Total PE 1925
Free PE 0
Allocated PE 1925
PV UUID ubAhLP-Od1g-7U3V-qj7O-dAws-CLuc-ePRnQ9
root@ubuntu1604lts:~/# pvresize /dev/vda2
Physical volume "/dev/vda2" changed
1 physical volume(s) resized / 0 physical volume(s) not resized
root@ubuntu1604lts:~/# pvdisplay /dev/vda2
--- Physical volume ---
PV Name /dev/vda2
VG Name vg00
PV Size 14,52 GiB / not usable 3,00 MiB
Allocatable yes
PE Size 4,00 MiB
Total PE 3717
Free PE 1792
Allocated PE 1925
PV UUID ubAhLP-Od1g-7U3V-qj7O-dAws-CLuc-ePRnQ9
root@ubuntu1604lts:~/# lvresize -L +5G /dev/vg00/root
Size of logical volume vg00/root changed from 1,86 GiB (476 extents) to 6,86 GiB (1756 extents).
Logical volume root successfully resized.
root@ubuntu1604lts:~/# resize2fs /dev/vg00/root
resize2fs 1.42.13 (17-May-2015)
Dateisystem bei /dev/vg00/root ist auf / eingehängt; Online-Größenänderung ist
erforderlich
old_desc_blocks = 1, new_desc_blocks = 1
Das Dateisystem auf /dev/vg00/root is nun 1798144 (4k) Blöcke lang.
root@ubuntu1604lts:~/# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 253:0 0 15G 0 disk
├─vda1 253:1 0 487M 0 part /boot
└─vda2 253:2 0 14,5G 0 part
├─vg00-root 252:0 0 6,9G 0 lvm /
├─vg00-swap 252:1 0 1,9G 0 lvm [SWAP]
├─vg00-tmp 252:3 0 488M 0 lvm /tmp
├─vg00-var 252:4 0 1,9G 0 lvm /var
└─vg00-home 252:5 0 1,5G 0 lvm /home
vdb 253:16 0 20G 0 disk
└─vg01-opt 252:2 0 10G 0 lvm /opt
root@ubuntu1604lts:~/# df -h
Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf
udev 981M 0 981M 0% /dev
tmpfs 201M 3,2M 197M 2% /run
/dev/mapper/vg00-root 6,8G 1,8G 4,7G 28% /
tmpfs 1001M 0 1001M 0% /dev/shm
tmpfs 5,0M 0 5,0M 0% /run/lock
tmpfs 1001M 0 1001M 0% /sys/fs/cgroup
/dev/vda1 464M 106M 331M 25% /boot
/dev/mapper/vg00-tmp 465M 2,3M 434M 1% /tmp
/dev/mapper/vg00-home 1,5G 2,3M 1,4G 1% /home
/dev/mapper/vg01-opt 9,8G 23M 9,2G 1% /opt
/dev/mapper/vg00-var 1,8G 630M 1,1G 37% /var
tmpfs 201M 0 201M 0% /run/user/0
Ergebnis: root-Partition vergrößert, ohne das System offline zu nehmen und ohne Daten zu verlieren.