Gestione dischi in Linux: partizioni, formattazione e montaggio
Per usare un nuovo disco in Linux occorre identificare il dispositivo, creare le partizioni, formattare la partizione con un file system e montarla in una directory. Le operazioni di scrittura di questa guida riguardano esclusivamente un disco di laboratorio dedicato, senza dati da conservare: il nome /dev/sdb è un esempio e non prova che il dispositivo sia quello corretto.
Verificare il disco e preparare il recupero
Procuratevi un backup recuperabile, l'accesso alla console e gli strumenti necessari: lsblk, fdisk, blkid, findmnt e mount provengono normalmente da util-linux; ext4 richiede e2fsprogs, mentre XFS richiede xfsprogs e il supporto del kernel. I nomi dei pacchetti e le opzioni disponibili dipendono dalla distribuzione. Iniziate dalle interrogazioni seguenti, che non modificano le partizioni.
lsblk -o NAME,SIZE,MODEL,SERIAL,TYPE,FSTYPE,MOUNTPOINTS
findmnt
sudo fdisk -l
Confrontate capacità, modello, numero di serie e collegamento con il disco previsto. Esaminate le partizioni e i relativi file system, i volumi LVM (Logical Volume Manager), l'eventuale crittografia e i punti di montaggio. Un punto di montaggio vuoto nell'elenco, da solo, non dimostra che il disco sia inutilizzato: potrebbe contenere swap, un volume RAID o dati non montati. Se non riconoscete il dispositivo o è in uso, fermatevi.
Conservate i dati necessari e una copia della tabella delle partizioni su un altro supporto, verificando la procedura di recupero. Il backup della sola tabella non protegge il contenuto dalla formattazione. Sostituite dispositivi e percorsi di esempio soltanto dopo queste verifiche. Per distinguere i diversi livelli, potete consultare la guida in inglese a dischi, partizioni e file system.
Riconoscere dischi, partizioni e file system
Nel caso dei dispositivi con nomi sd, /dev/sda e /dev/sdb indicano il dispositivo intero; /dev/sda1 indica una sua partizione. Questi nomi possono riferirsi anche a SSD o dischi virtuali, non soltanto a dischi rigidi. Il comando seguente mostra i nodi corrispondenti a quel modello di nome, senza identificare tutti i dispositivi di archiviazione.
ls -l /dev/sd*
Questo è un esempio storico dell'output, non l'inventario del vostro sistema:
brw-rw----. 1 root disk 8, 0 Oct 16 13:12 /dev/sda
brw-rw----. 1 root disk 8, 1 Oct 16 13:12 /dev/sda1
brw-rw----. 1 root disk 8, 2 Oct 16 13:12 /dev/sda2
brw-rw----. 1 root disk 8, 16 Oct 16 13:12 /dev/sdb
brw-rw----. 1 root disk 8, 32 Oct 16 13:12 /dev/sdc
Dischi NVMe, altri dispositivi virtuali e volumi logici hanno convenzioni diverse: usate l'inventario iniziale per riconoscerli. Se una vecchia versione di lsblk non supporta MOUNTPOINTS, selezionate MOUNTPOINT e confrontate anche l'elenco di findmnt; la colonna singolare non mostra necessariamente tutti i montaggi. La documentazione di lsblk descrive questa differenza.
df -Tmostra il tipo dei file system montati, non le partizioni prive di montaggio.sudo blkidriconosce i metadati disponibili sui dispositivi a blocchi, compresi tipo e identificatori. Non costituisce una garanzia di riconoscimento di ogni tecnologia di archiviazione.
Creare le partizioni con fdisk
Le schermate dell'articolo originale illustravano fdisk 2.23.2 con una tabella MBR/DOS. Qui le cinque immagini sono schemi didattici in italiano, non nuove schermate di un'esecuzione. La procedura distingue la scelta della tabella, la definizione delle partizioni e la scrittura sul disco.
MBR significa Master Boot Record; GPT significa GUID Partition Table. L'attuale fdisk supporta entrambe le tabelle. Creare una nuova GPT con g sostituisce la tabella esistente: non è una conversione che preserva automaticamente i dati. Non usate questa procedura su un disco da conservare.
- Aprite soltanto il disco appena verificato. fdisk lavora sulla tabella del disco intero; la formattazione successiva riguarderà invece una sua partizione.
sudo fdisk /dev/sdb
- Leggete la guida e scegliete la tabella. Digitate
mper vedere i comandi della versione installata. Su un disco nuovo e vuoto, se avete scelto GPT, digitategprima di aggiungere le partizioni. Non ripetetegdopo averle definite. Per uscire senza scrivere le modifiche pendenti usateq.
- Definite la prima partizione con
n. Verificate il numero proposto e il primo settore disponibile; i valori predefiniti rispettano normalmente l'allineamento individuato dal programma. Per il limite finale potete indicare una dimensione, ad esempio+4G, se lo spazio lo consente. Accettare il valore finale predefinito occupa lo spazio libero disponibile proposto da fdisk. Scegliete una dimensione minore se volete una seconda partizione. Con MBR possono apparire anche domande sul tipo primario o esteso, assenti nella procedura GPT.
- Controllate il piano con
p. Verificate di nuovo disco, tabella, estremi e dimensioni. Se serve una seconda partizione e avete lasciato spazio libero, ripeteten, poip. Non copiate i numeri di settore delle vecchie schermate: dipendono dal disco. In caso di dubbio,qannulla le modifiche non ancora scritte.
- Scrivete solo dopo l'ultimo controllo.
wsalva la tabella sul disco ed esce; dopo la scritturaqnon può ripristinare lo stato precedente. Ripetete le interrogazioni inizialilsblkesudo fdisk -l: devono mostrare la partizione prevista, per esempio/dev/sdb1. Se il kernel segnala che la tabella non può essere riletta, fermatevi e risolvete l'uso del dispositivo prima di formattare. Non proseguite usando una vecchia vista delle partizioni.
Con settori logici da 512 byte, MBR ha un limite di indirizzamento di circa 2 TiB, cioè 2.199.023.255.552 byte. Su un disco da 4 TiB una tabella DOS non permette quindi di descrivere tutto lo spazio. Il limite dipende dalla dimensione dei settori: non è un limite generale di Linux o di fdisk. Per un nuovo disco vuoto scegliete una tabella adatta, normalmente GPT, all'inizio del lavoro.
Il seguente messaggio storico illustra il risultato di g; il GUID visualizzato è soltanto un esempio. Non eseguite il comando su un disco con dati per eliminare un avviso di capacità.
Command (m for help): g
Created a new GPT disklabel (GUID: F13C6D0D-1E30-4448-B015-A61F3AE9EA48).
Formattare con ext4 oppure XFS
Il partizionamento definisce i confini; la formattazione crea il file system all'interno della partizione. Ricontrollate nome, dimensione, assenza di utilizzo e assenza di dati da conservare. Scegliete una sola delle due alternative seguenti: eseguirle entrambe sostituirebbe il primo file system.
Per ext4 usate il comando fornito da e2fsprogs:
sudo mkfs.ext4 /dev/sdb1
In alternativa, per XFS usate il comando fornito da xfsprogs:
sudo mkfs.xfs /dev/sdb1
Il comando deve terminare senza errori; controllate poi il tipo effettivo con sudo blkid /dev/sdb1. Se lo strumento rileva un file system esistente, non aggiungete opzioni di forzatura per aggirare l'avviso: ricontrollate il dispositivo e i dati. I manuali di mke2fs e mkfs.ext4 e di mkfs.xfs descrivono le rispettive opzioni.
Montare e smontare la partizione
Il montaggio rende il file system accessibile sotto una directory, detta punto di montaggio. Preparate una directory vuota dedicata al laboratorio; non usate /home o un'altra directory operativa. Montare sopra file esistenti li nasconde finché il file system resta montato, senza cancellarli.
sudo mkdir -p /mnt/disk-lab
findmnt --mountpoint /mnt/disk-lab
mkdir -p può lasciare intatta una directory già esistente: controllate separatamente che sia vuota, compresi i file nascosti, e che il percorso non rimandi altrove tramite un collegamento simbolico. Se findmnt --mountpoint trova già un montaggio, fermatevi. L'assenza di risultati può anche corrispondere a un errore: leggete eventuali messaggi, senza interpretarla automaticamente come prova che tutto sia pronto.
Dopo aver verificato la partizione formattata e la directory, montate il dispositivo:
sudo mount /dev/sdb1 /mnt/disk-lab
Controllate con findmnt --mountpoint /mnt/disk-lab che origine e destinazione siano quelle previste; df -T /mnt/disk-lab deve riportare il tipo scelto. La possibilità per un utente di scrivere dipende anche dai permessi della directory nel file system montato. Per altri casi consultate la guida in inglese al montaggio e allo spazio disponibile.
Prima di smontare chiudete i file e spostate fuori dalla directory i terminali che la stanno usando. Qui usiamo il punto di montaggio; non occorre ripetere lo smontaggio indicando anche il dispositivo.
sudo umount /mnt/disk-lab
Se compare un errore di dispositivo occupato, individuate e chiudete l'utilizzo responsabile; non ricorrete a uno smontaggio forzato o differito come passaggio ordinario del laboratorio. Uno smontaggio riuscito rimuove il collegamento alla directory, non elimina la partizione.
Impostare il montaggio persistente in fstab
/etc/fstab contiene le associazioni che gli strumenti di montaggio possono usare anche all'avvio. Prima di modificarlo, salvate una copia con un nome nuovo e conservate l'accesso alla console. Apritelo con un editor e privilegi amministrativi, mantenendo tutte le voci estranee a questo disco.
Questa riga illustra una configurazione per XFS. È contenuto del file, non un comando da eseguire nel terminale:
/dev/sdb1 /mnt/disk-lab xfs defaults 0 0
I sei campi sono origine, punto di montaggio, tipo, opzioni, frequenza per dump e ordine per fsck. I due zeri disabilitano i rispettivi controlli di dump e fsck della voce; non garantiscono l'integrità dei dati. Se avete scelto ext4, adattate il tipo e l'ultimo campo alla politica di controllo della distribuzione: per un file system dati ext4 viene normalmente usato 2. Non cambiate le impostazioni della radice per imitare questo esempio. Il manuale di fstab spiega i campi.
Prima di provare la voce, eseguite sudo findmnt --verify --verbose e fermatevi in caso di errori. Nei sistemi con systemd eseguite poi sudo systemctl daemon-reload. Con il file system di laboratorio smontato, il comando seguente legge la voce di fstab per questa destinazione:
sudo mount /mnt/disk-lab
Passare solo il punto di montaggio è essenziale per verificare la voce: fornire sia dispositivo sia directory può invece montare il file system indipendentemente da quella configurazione. sudo mount -a tenta più voci di fstab, tralascia quelle con noauto e non è una prova completa del prossimo avvio; valutate tutte le voci prima di usarlo. La prova mirata evita di attivare involontariamente altri montaggi.
Usare l'UUID del file system
L'ordine di rilevamento, l'aggiunta di un disco o un cambiamento dei collegamenti può modificare nomi come /dev/sdb1. Per un montaggio persistente è preferibile usare l'UUID (Universally Unique Identifier) del file system. È un identificatore nei metadati, non il numero di serie del disco: una riformattazione può cambiarlo e una clonazione può duplicarlo. È distinto da PARTUUID, che identifica una partizione, e dagli identificatori di LVM.
Leggete gli identificatori effettivi con blkid:
sudo blkid
Questo output storico serve solo a riconoscere i campi. Nessuno degli identificatori seguenti è un valore da copiare sul vostro sistema:
/dev/sda1: UUID="69d9add5-2153-4bc2-ad99-1560fb205c4b" TYPE="ext4" PARTUUID="aa61ba4b-01"
/dev/sda2: UUID="PuMuNg-5YHg-qikJ-tc10-iPIM-7W1q-4fUqyc" TYPE="LVM2_member" PARTUUID="aa61ba4b-02"
/dev/mapper/cl-root: UUID="79c8cfcb-c9e2-4243-8cf2-cf10eab57c40" TYPE="xfs"
/dev/mapper/cl-swap: UUID="b69a5fc3-98db-4a27-b3d4-a7ef76244ad1" TYPE="swap"
/dev/mapper/cl-home: UUID="fd372a6b-ee76-41d6-b7e6-6e6a7cf8193b" TYPE="xfs"
/dev/sdb1: UUID="fd95c93f-03fc-418a-a6db-c26b921ec93b" TYPE="xfs" PARTUUID="e5f55ef6-01"
Nell'esempio la riga /dev/sdb1 contiene TYPE="xfs" e un UUID del file system. La riga LVM2_member descrive invece un contenitore LVM, non un file system XFS da montare direttamente. Verificate TYPE e UUID sul dispositivo realmente formattato, quindi sostituite la precedente voce basata sul nome con una voce di questo tipo:
UUID=fd95c93f-03fc-418a-a6db-c26b921ec93b /mnt/disk-lab xfs defaults 0 0
Inserite l'UUID reale e il tipo corretto. Non conservate entrambe le righe per lo stesso punto di montaggio. Per interpretare i metadati consultate il manuale di blkid; la guida in inglese alla preparazione di un disco aggiuntivo approfondisce la configurazione.
Verificare la configurazione prima del riavvio
Controllate che non vi siano UUID duplicati o più voci per la stessa destinazione. Per provare la nuova voce UUID, smontate prima il file system di laboratorio con il comando già mostrato, dopo aver chiuso gli utilizzi attivi. Un file system già montato non permette di dimostrare che una nuova voce fstab sia corretta.
La sequenza seguente è per un sistema con systemd: && impedisce di proseguire se il comando precedente fallisce. Su un sistema che non usa systemd omettete la riga systemctl daemon-reload, mantenendo la concatenazione dei controlli rimanenti.
sudo findmnt --verify --verbose &&
sudo systemctl daemon-reload &&
sudo mount /mnt/disk-lab &&
findmnt --mountpoint /mnt/disk-lab &&
df -T /mnt/disk-lab
La verifica di findmnt deve riuscire senza problemi da correggere. Dopo il montaggio, confrontate l'origine effettiva con la partizione attesa, il punto /mnt/disk-lab e il tipo in df -T. Non basta vedere uno spazio disponibile: occorre accertarsi che appartenga proprio al file system desiderato. I manuali di findmnt e di mount descrivono i controlli e la selezione delle voci.
Se una verifica fallisce, non riavviate: leggete l'errore e ripristinate soltanto la voce modificata usando il backup, preservando eventuali altre modifiche successive. Riformattare un dispositivo con dati non risolve un errore di montaggio. Dopo le verifiche, programmate il riavvio con una console di recupero disponibile e ricontrollate il montaggio; se l'avvio fallisce, correggete la voce dal sistema di recupero. Il successo di un montaggio manuale non garantisce da solo il comportamento all'avvio.









