>_ Sistemi operativi e Linux

Dischi e partizioni su Linux: lsblk, mount e /etc/fstab

Riconoscere dischi e partizioni su Linux, creare una partizione con parted, formattarla, montarla e renderla permanente in /etc/fstab usando gli UUID.

Aggiungere un secondo disco a un computer Linux, o collegare un disco esterno che deve essere sempre disponibile, è un'operazione che spaventa più di quanto meriti. Le fasi sono sempre le stesse: riconoscere il disco, partizionarlo, formattarlo, montarlo e, se serve, renderlo permanente. L'unico vero rischio è sbagliare disco, e per evitarlo basta procedere con ordine.

Riconoscere i dischi

Linux rappresenta ogni disco come un file in /dev. I nomi seguono una logica precisa:

  • /dev/sda, /dev/sdb: dischi SATA, USB e SCSI, in ordine di rilevamento; le partizioni sono sda1, sda2;
  • /dev/nvme0n1: il primo SSD NVMe; le partizioni sono nvme0n1p1, nvme0n1p2;
  • /dev/mmcblk0: schede SD e memorie eMMC, con partizioni mmcblk0p1.

Il comando più chiaro per orientarsi è:

lsblk -f

Mostra l'albero di dischi e partizioni con dimensione, filesystem, etichetta, UUID e punto di montaggio. Prima di qualunque operazione distruttiva conviene lanciarlo, collegare il disco nuovo e lanciarlo di nuovo: la riga che compare è quella giusta. Anche sudo dmesg | tail subito dopo il collegamento conferma il nome assegnato.

Attenzione: le lettere sda, sdb non sono stabili. Possono cambiare da un avvio all'altro se si aggiungono o tolgono dischi. Per questo nelle configurazioni permanenti si usano gli UUID.

Creare una tabella delle partizioni

Su un disco nuovo serve prima una tabella delle partizioni. Lo standard attuale è GPT, che supera i limiti del vecchio MBR su dimensione dei dischi e numero di partizioni. Con parted, supponendo che il disco nuovo sia /dev/sdb:

sudo parted /dev/sdb mklabel gpt
sudo parted -a optimal /dev/sdb mkpart dati ext4 0% 100%

Il primo comando cancella qualsiasi struttura presente sul disco: per questo il controllo con lsblk viene prima. Il secondo crea una partizione che occupa tutto lo spazio, allineata correttamente. Chi preferisce un'interfaccia interattiva può usare fdisk o cfdisk, oppure GParted in ambiente grafico.

Formattare

La partizione creata è ancora vuota: serve un filesystem. Per un disco dati usato solo da Linux, ext4 è una scelta sicura:

sudo mkfs.ext4 -L dati /dev/sdb1

L'opzione -L assegna un'etichetta leggibile. Per un disco da collegare anche a Windows e macOS si usa invece mkfs.exfat.

Montare a mano

Su Linux un disco non ha una lettera: il suo contenuto compare dentro una cartella qualsiasi, il punto di montaggio.

sudo mkdir -p /mnt/dati
sudo mount /dev/sdb1 /mnt/dati
df -h /mnt/dati

Per smontarlo si usa sudo umount /mnt/dati. Se il sistema risponde «target is busy», qualche programma ha ancora un file aperto o un terminale si trova dentro quella cartella; lsof +f -- /mnt/dati mostra chi la sta usando.

Un dettaglio che confonde spesso: se monti un disco sopra una cartella che contiene già dei file, quei file non spariscono ma restano nascosti finché il disco non viene smontato.

Rendere il montaggio permanente

Il montaggio manuale dura fino al riavvio. Per renderlo automatico si aggiunge una riga a /etc/fstab. Prima si ricava l'UUID:

sudo blkid /dev/sdb1

Poi si aggiunge una riga di questo tipo:

UUID=3f2a1c9e-...  /mnt/dati  ext4  defaults,nofail  0  2

I sei campi indicano: il dispositivo, il punto di montaggio, il tipo di filesystem, le opzioni, un campo storico per il programma dump che oggi si lascia a 0, e l'ordine del controllo all'avvio (1 per la radice, 2 per gli altri dischi, 0 per nessun controllo).

Opzione Significato
defaults impostazioni standard di lettura e scrittura
nofail l'avvio prosegue anche se il disco manca
noatime non aggiorna l'ora di ultimo accesso, meno scritture
ro sola lettura
x-systemd.automount monta al primo accesso invece che all'avvio

Verificare prima di riavviare

Un errore in /etc/fstab può bloccare l'avvio e lasciarti in una shell di emergenza. Prima di riavviare, verifica sempre:

sudo systemctl daemon-reload
sudo mount -a
sudo findmnt --verify

mount -a prova a montare tutto ciò che è elencato e non ancora montato: se segnala un errore, va corretto subito. findmnt --verify controlla la sintassi del file. Nel mio lavoro aggiungo nofail a ogni disco che non sia indispensabile all'avvio: un disco esterno scollegato non deve mai impedire al computer di partire.

Permessi sul nuovo disco

Un filesystem ext4 appena creato appartiene a root. Per renderlo scrivibile dal tuo utente:

sudo chown -R $USER:$USER /mnt/dati

Con exFAT e FAT32 invece i permessi Linux non esistono: proprietario e permessi si impostano al montaggio con le opzioni uid=, gid= e umask=.

In sintesi

  • lsblk -f prima e dopo il collegamento identifica con certezza il disco giusto.
  • Le fasi sono sempre: tabella GPT, partizione, filesystem, montaggio.
  • I nomi come sdb possono cambiare; in /etc/fstab si usano gli UUID.
  • nofail evita che un disco assente blocchi l'avvio.
  • Dopo ogni modifica a /etc/fstab, mount -a e findmnt --verify prima di riavviare.
MM
Marco Marzaduri

Marco Marzaduri si occupa di cybersecurity, informatica forense e sviluppo web. Laureato in informatica e in psicologia, unisce l'analisi tecnica alla comprensione del fattore umano.

Leggi anche