Eseguire un resize online di /root su Linux, con LVM e Ext4

Premessa/Disclaimer: da un po' di tempo a questa parte sto "coltivando" una cartella chiamata "Appunti di informatica" sul mio Mac. In questa cartella raccolgo appunti sui più svariati argomenti e mini-guide per ricordarmi "come si fa" qualcosa, man mano che mi ritrovo ad affrontarle. Gli argomenti spaziano dalla gestione sistemistica in ambito Windows-Linux-OSX, allo sviluppo software su iOS e PHP, con qualche variazione sul tema. Le mini-guide saranno spesso brevi e molto pratiche, soprattutto perchè non ho molto tempo per abbellirle e renderle accattivanti per il pubblico, se vi servono dettagli non esitate a contattarmi.

Oggi ho scaricato un virtual appliance chiamato Turnkey Linux. Macchina virtuale già pronta per essere installata su cluster VMWare,  stack LAMP già installato e configurato.
Problema: il disco principale ha, di default, 20 gb, che per le mie necessità non sono sufficienti.
Ho deciso di espandere la partizione / (root) a 50GB.

Breve guida di come ho risolto (per la cronaca: filesystem Ext4 su LVM)

Parte fisica
/dev/sda1 <— 1gb, boot
/dev/sda2 <- 19gb, root, con LVM

Parte logica (LVM)
/dev/mapper/turnkey-boot
/dev/mapper/turnkey-root

Per farlo:

- spegnere la macchina, ingrandire il disco virtuale di quanto desiderato (esempio 50GB).
- fare fdisk /dev/sda
- eliminare la partizione sda2 RICORDANDO ESATTAMENTE IL CILINDRO DI PARTENZA (START)
- ricreare subito sda2 con lo stesso cilindro di partenza (altrimenti la macchina non partirà) ma con ultimo cilindro al max spazio disponibile
- write delle modifiche
- riavvio
- dare pvresize /dev/sda2 (questo comando estende la partizione fisica allo spazio totale disponibile)
- dare lvextend -l +100%FREE /dev/mapper/turnkey-root (questo comando estende il Logical Volume)
- dare resize2fs /dev/mapper/turnkey-root (questo comando espande il Filesystem)

Enjoy