10 comandi fdisk per gestire le partizioni del disco di Linux
fdisk sta per “disco fisso o disco di formato”) è un’utilità di manipolazione del disco basata sulla riga di comando più comunemente usata per i sistemi Linux/Unix. Con l’aiuto del comando fdisk è possibile visualizzare, creare, ridimensionare, cancellare, cambiare, copiare e spostare partizioni su un disco rigido utilizzando la sua interfaccia testuale facile da usare.
Questo strumento è molto utile in termini di creazione di spazio per nuove partizioni, organizzazione dello spazio per nuove unità, riorganizzazione di una vecchia unità e copia o spostamento di dati su nuovi dischi. Permette di creare un massimo di quattro nuove partizioni primarie e un numero di partizioni logiche (estese), in base alle dimensioni del disco rigido che avete nel vostro sistema.
Questo articolo spiega 10 comandi base fdisk per gestire una tabella delle partizioni nei sistemi basati su Linux. Devi essere utente root per eseguire il comando fdisk, altrimenti otterrai un errore “comando non trovato”.
Visualizza tutte le partizioni del disco in Linux
Il seguente comando base elenca tutte le partizioni del disco esistenti sul tuo sistema. L’argomento ‘-l’ sta per (listing all partitions) è usato con il comando fdisk per visualizzare tutte le partizioni disponibili su Linux. Le partizioni sono visualizzate dal nome del loro dispositivo. Per esempio: /dev/sda, /dev/sdb o /dev/sdc.
# fdisk -lDisk /dev/sda: 637.8 GB, 637802643456 bytes255 heads, 63 sectors/track, 77541 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System/dev/sda1 * 1 13 104391 83 Linux/dev/sda2 14 2624 20972857+ 83 Linux/dev/sda3 2625 4582 15727635 83 Linux/dev/sda4 4583 77541 586043167+ 5 Extended/dev/sda5 4583 5887 10482381 83 Linux/dev/sda6 5888 7192 10482381 83 Linux/dev/sda7 7193 7845 5245191 83 Linux/dev/sda8 7846 8367 4192933+ 82 Linux swap / Solaris/dev/sda9 8368 77541 555640123+ 8e Linux LVM
Visualizza partizioni specifiche del disco in Linux
Per visualizzare tutte le partizioni di un disco rigido specifico utilizzare l’opzione ‘-l’ con il nome del dispositivo. Per esempio, il seguente comando visualizzerà tutte le partizioni del disco del dispositivo /dev/sda. Se hai nomi di dispositivi diversi, scrivi semplicemente il nome del dispositivo come /dev/sdb o /dev/sdc.
# fdisk -l /dev/sdaDisk /dev/sda: 637.8 GB, 637802643456 bytes255 heads, 63 sectors/track, 77541 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System/dev/sda1 * 1 13 104391 83 Linux/dev/sda2 14 2624 20972857+ 83 Linux/dev/sda3 2625 4582 15727635 83 Linux/dev/sda4 4583 77541 586043167+ 5 Extended/dev/sda5 4583 5887 10482381 83 Linux/dev/sda6 5888 7192 10482381 83 Linux/dev/sda7 7193 7845 5245191 83 Linux/dev/sda8 7846 8367 4192933+ 82 Linux swap / Solaris/dev/sda9 8368 77541 555640123+ 8e Linux LVM
Verifica tutti i comandi disponibili per fdisk
Se volete visualizzare tutti i comandi disponibili per fdisk. Usate semplicemente il seguente comando menzionando il nome del disco rigido come /dev/sda come mostrato qui sotto. Il seguente comando vi darà un output simile a quello che segue.
Digitate ‘m’ per vedere la lista di tutti i comandi disponibili di fdisk che possono essere usati sul disco rigido /dev/sda. Dopo aver inserito ‘m’ sullo schermo, vedrete tutte le opzioni disponibili per fdisk che possono essere usate sul dispositivo /dev/sda.
# fdisk /dev/sdaWARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u').Command (m for help): mCommand action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition l list known partition types m print this menu n add a new partition o create a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partition's system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only)Command (m for help):
Stampa di tutte le tabelle delle partizioni in Linux
Per stampare tutte le tabelle delle partizioni del disco rigido, è necessario essere in modalità comando del disco rigido specifico, diciamo /dev/sda.
# fdisk /dev/sda
Dalla modalità comando, inserire ‘p’ invece di ‘m’ come abbiamo fatto prima. Inserendo ‘p’, verrà stampata la specifica tabella delle partizioni di /dev/sda.
Command (m for help): pDisk /dev/sda: 637.8 GB, 637802643456 bytes255 heads, 63 sectors/track, 77541 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System/dev/sda1 * 1 13 104391 83 Linux/dev/sda2 14 2624 20972857+ 83 Linux/dev/sda3 2625 4582 15727635 83 Linux/dev/sda4 4583 77541 586043167+ 5 Extended/dev/sda5 4583 5887 10482381 83 Linux/dev/sda6 5888 7192 10482381 83 Linux/dev/sda7 7193 7845 5245191 83 Linux/dev/sda8 7846 8367 4192933+ 82 Linux swap / Solaris/dev/sda9 8368 77541 555640123+ 8e Linux LVMCommand (m for help):
Come cancellare una partizione in Linux
Se volete cancellare una specifica partizione (cioè /dev/sda9) da uno specifico disco rigido come /dev/sda. Devi essere in modalità comando fdisk per farlo.
# fdisk /dev/sda
Poi, inserisci ‘d’ per eliminare qualsiasi nome di partizione dal sistema. Quando inserisco ‘d’, mi chiederà di inserire il numero della partizione che voglio eliminare dal disco rigido /dev/sda. Supponiamo che io inserisca il numero ‘4’ qui, allora cancellerà la partizione numero ‘4’ (cioè /dev/sda4) del disco e mostrerà lo spazio libero nella tabella delle partizioni. Inserite ‘w’ per scrivere la tabella sul disco e uscire dopo aver apportato nuove modifiche alla tabella delle partizioni. Le nuove modifiche avranno luogo solo dopo il prossimo riavvio del sistema. Questo può essere facilmente compreso dall’output sottostante.
Attenzione: fate attenzione, mentre eseguite questo passo, perché usando l’opzione ‘d’ cancellerete completamente la partizione dal sistema e potreste perdere tutti i dati nella partizione.
Come creare una nuova partizione in Linux
Se avete spazio libero su uno dei vostri dispositivi, ad esempio /dev/sda, e volete creare una nuova partizione sotto di esso. Allora devi essere nella modalità di comando fdisk di /dev/sda. Digitate il seguente comando per entrare nella modalità di comando del disco rigido specifico.
# fdisk /dev/sda
Dopo essere entrati nella modalità di comando, ora premete il comando “n” per creare una nuova partizione sotto /dev/sda con dimensioni specifiche. Questo può essere dimostrato con l’aiuto del seguente output.
Mentre si crea una nuova partizione, vi chiederà due opzioni: creazione di una partizione “estesa” o “primaria”. Premete ‘e’ per la partizione estesa e ‘p’ per la partizione primaria. Poi ti chiederà di inserire i seguenti due input.
- Numero del primo cilindro della partizione da creare.
- Numero dell’ultimo cilindro della partizione da creare (Ultimo cilindro, +cilindri o +size).
Puoi inserire la dimensione del cilindro aggiungendo “+5000M” nell’ultimo cilindro. Qui, ‘+’ significa aggiunta e 5000M significa dimensione della nuova partizione (cioè 5000MB). Si prega di tenere a mente che dopo aver creato una nuova partizione, si dovrebbe eseguire il comando ‘w’ per alterare e salvare le nuove modifiche alla tabella delle partizioni e infine riavviare il sistema per verificare la partizione appena creata.
Command (m for help): wThe partition table has been altered!Calling ioctl() to re-read partition table.WARNING: Re-reading the partition table failed with error 16: Device or resource busy.The kernel still uses the old table. The new table will be used atthe next reboot or after you run partprobe(8) or kpartx(8)Syncing disks.
Come formattare una partizione in Linux
Dopo aver creato la nuova partizione, non saltare di formattare la partizione appena creata utilizzando il comando ‘mkfs’. Digita il seguente comando nel terminale per formattare una partizione. Qui /dev/sda4 è la mia partizione appena creata.
# mkfs.ext4 /dev/sda4
Come controllare la dimensione di una partizione in Linux
Dopo aver formattato una nuova partizione, controllate la dimensione della partizione usando la bandiera ‘s’ (visualizza la dimensione in blocchi) con il comando fdisk. In questo modo è possibile controllare la dimensione di qualsiasi dispositivo specifico.
# fdisk -s /dev/sda25194304
Come sistemare l’ordine della tabella delle partizioni
Se si è cancellata una partizione logica e la si è ricreata di nuovo, si potrebbe notare il problema della “partizione fuori ordine” o un messaggio di errore come “Le voci della tabella delle partizioni non sono in ordine sul disco”.
Per esempio, quando tre partizioni logiche come (sda4, sda5 e sda6) vengono eliminate e viene creata una nuova partizione, ci si potrebbe aspettare che il nome della nuova partizione sia sda4. Ma il sistema la creerebbe come sda5. Questo accade perché, dopo che la partizione è stata cancellata, la partizione sda7 è stata spostata come sda4 e lo spazio libero si sposta alla fine.
Per risolvere questi problemi di ordine delle partizioni, e assegnare sda4 alla partizione appena creata, emettete la ‘x’ per entrare in una sezione di funzionalità extra e poi inserite il comando ‘f’ di esperto per fissare l’ordine della tabella delle partizioni come mostrato di seguito.
# fdisk /dev/sdaWARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u').Command (m for help): xExpert command (m for help): fDone.Expert command (m for help): wThe partition table has been altered!Calling ioctl() to re-read partition table.WARNING: Re-reading the partition table failed with error 16: Device or resource busy.The kernel still uses the old table. The new table will be used atthe next reboot or after you run partprobe(8) or kpartx(8)Syncing disks.
Dopo aver eseguito il comando ‘f’, non dimenticare di eseguire il comando ‘w’ per salvare e uscire dalla modalità di comando fdisk. Una volta fissato l’ordine della tabella delle partizioni, non si riceveranno più messaggi di errore.
Come disabilitare il flag di avvio (*) di una partizione
Di default, il comando fdisk mostra il simbolo del flag di avvio (cioè ‘*’) su ogni partizione. Se volete abilitare o disabilitare il flag di avvio su una specifica partizione, eseguite i seguenti passi.
# fdisk /dev/sda
Premete il comando ‘p’ per visualizzare la tabella delle partizioni correnti, vedrete che c’è un flag di avvio (simbolo asterisco (*) in colore arancione) sul disco /dev/sda1 come mostrato di seguito.
Poi inserite il comando ‘a’ per disabilitare il boot flag, poi inserite il numero della partizione ‘1’ come (cioè /dev/sda1) nel mio caso. Questo disabiliterà il flag di avvio sulla partizione /dev/sda1. Questo rimuoverà il flag asterisco (*).
Command (m for help): aPartition number (1-9): 1Command (m for help): pDisk /dev/sda: 637.8 GB, 637802643456 bytes255 heads, 63 sectors/track, 77541 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System/dev/sda1 1 13 104391 83 Linux/dev/sda2 14 2624 20972857+ 83 Linux/dev/sda3 2625 4582 15727635 83 Linux/dev/sda4 4583 77541 586043167+ 5 Extended/dev/sda5 4583 5887 10482381 83 Linux/dev/sda6 5888 7192 10482381 83 Linux/dev/sda7 7193 7845 5245191 83 Linux/dev/sda8 7846 8367 4192933+ 82 Linux swap / Solaris/dev/sda9 8368 77541 555640123+ 8e Linux LVMCommand (m for help):
Ho fatto del mio meglio per includere quasi tutti i comandi base di fdisk, ma fdisk contiene ancora una varietà di altri comandi esperti che potete usare inserendo ‘x’. Per informazioni più dettagliate, controlla il comando ‘man fdisk’ dal terminale. Se mi sono perso qualche comando importante, per favore condividilo con me nella sezione dei commenti.
Leggi anche :
- 12 comandi “df” per controllare lo spazio su disco in Linux
- 10 utili comandi “du” per trovare l’utilizzo del disco di file e directory