expandfs


📝 Scopo dello Script

Questo script Bash serve per espandere automaticamente la partizione /dev/sda3 fino a occupare tutto lo spazio disponibile sul disco fisico. Funziona anche se la partizione è montata come root (/), sfruttando le capacità di resize online del filesystem ext4.


📋 Funzionamento Dettagliato

1. Impostazioni iniziali

DEVICE="/dev/sda"
PART_NUM="3"
PART="${DEVICE}${PART_NUM}"

Imposta le variabili:


🔍 2. Controllo dei comandi necessari

command -v parted >/dev/null || { echo "Errore: manca parted"; exit 1; }
command -v resize2fs >/dev/null || { echo "Errore: manca resize2fs"; exit 1; }
command -v findmnt >/dev/null || { echo "Errore: manca findmnt"; exit 1; }

Verifica la presenza dei comandi richiesti:

Se uno manca, lo script esce con errore.


🧱 3. Verifica se la partizione è montata

MOUNTPOINT=$(findmnt -n -o TARGET "$PART" || true)

Trova il punto di mount della partizione (se esiste). Se è montata, lo salva in MOUNTPOINT.


⚠️ 4. Gestione dei casi di partizione montata

if [ -n "$MOUNTPOINT" ]; then
  ...
fi

Se la partizione è montata:


✂️ 5. Espansione della partizione

parted "$DEVICE" ---pretend-input-tty <<EOF
resizepart $PART_NUM 100%
Yes
quit
EOF

Utilizza parted in modalità interattiva per espandere la partizione $PART_NUM fino al 100% dello spazio disponibile.


🔁 6. Rilettura della tabella delle partizioni

partprobe "$DEVICE" || true
sleep 2

Tenta di forzare il kernel a rileggere la tabella delle partizioni modificata. Attende 2 secondi per sicurezza.


🧽 7. Controllo e ridimensionamento del filesystem

A seconda che la partizione sia montata o meno:


8. Fine

echo "[✓] Completato. La partizione e il filesystem sono stati espansi."

Messaggio finale di completamento.


📌 Note Importanti