Comando lsblk: struttura di dischi e partizioni e verifica dell'UUID
Il comando lsblk mostra ad albero i dischi e le partizioni collegati a un server e i loro punti di montaggio, e permette di vedere in un colpo solo la dimensione dei dischi, il tipo di file system e perfino l'UUID. Eseguendo lsblk su un server AlmaLinux 9, i dispositivi loop creati dai pacchetti snap sono comparsi prima del disco, quindi li abbiamo filtrati con -e 7. Poi abbiamo verificato con -f il file system xfs e l'UUID della partizione root.
Le dimensioni dei dischi e gli UUID nell'output qui sotto sono valori di esempio.
1️⃣ Leggere l'output di base del comando lsblk
Su un server con programmi installati tramite snap, lsblk senza opzioni elenca prima del disco una fila di dispositivi loop montati, uno per ogni versione di pacchetto; per questo si indica con -e il numero di dispositivo dei loop, 7, per escluderli.
lsblk -e 7NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme0n1 259:0 0 80G 0 disk
├─nvme0n1p1 259:1 0 1M 0 part
├─nvme0n1p2 259:2 0 200M 0 part /boot/efi
├─nvme0n1p3 259:3 0 1G 0 part /boot
└─nvme0n1p4 259:4 0 78.8G 0 part /nvme0n1 nella colonna NAME è il disco. Le partizioni in cui è diviso questo disco sono quelle da nvme0n1p1 a nvme0n1p4, collegate sotto con [├─] e [└─]. È come il tabellone dei piani all'ingresso di un edificio, che sotto il nome dell'edificio indica cosa c'è a ogni piano.
Nella colonna TYPE i dischi compaiono come [disk] e le partizioni come [part], mentre la colonna MOUNTPOINTS indica la cartella in cui è montata ciascuna partizione. Sul server verificato, la partizione root nvme0n1p4 era montata su / e nvme0n1p3 su /boot. nvme0n1p1, da 1M, è una partizione di avvio BIOS usata per avviare da un disco GPT, quindi non ha un punto di montaggio.
MAJ:MIN sono i numeri major e minor che il kernel assegna a un dispositivo; i dispositivi loop hanno 7 e il disco NVMe verificato aveva 259. RM indica con 1 o 0 se il dispositivo è rimovibile, RO se è di sola lettura.
È facile leggere SIZE come spazio libero, ma SIZE è la dimensione totale del disco o della partizione. Lo spazio libero di un file system si controlla nella colonna FSAVAIL, che compare aggiungendo -f.
Nel diagramma qui sotto puoi confrontare passo per passo come cambiano le righe e le colonne dell'output a seconda dell'opzione.
2️⃣ lsblk -f: verificare file system e UUID
L'output di base non mostra il tipo di file system, quindi il formato con cui è stata formattata una partizione si verifica con -f. -f mostra otto colonne: NAME, FSTYPE, FSVER, LABEL, UUID, FSAVAIL, FSUSE% e MOUNTPOINTS.
lsblk -f -e 7NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
nvme0n1
├─nvme0n1p1
├─nvme0n1p2 vfat FAT16 5A1E-3B7C 192.1M 4% /boot/efi
├─nvme0n1p3 xfs 6d2f0c4e-8b1a-4f3d-a7e2-9c5b1d0e4f28 691.4M 28% /boot
└─nvme0n1p4 xfs 2b9e7f41-c3d6-4a85-b0f1-7e4a2c9d6b13 68.5G 13% /All'esecuzione, le partizioni root e /boot erano xfs, e /boot/efi era vfat nella versione FAT16. Il disco nvme0n1 e nvme0n1p1 non hanno file system, quindi sono rimasti vuoti. L'UUID è un numero univoco assegnato a ogni file system e si usa in /etc/fstab per indicare la partizione da montare tramite UUID invece che tramite nome del dispositivo.
Per verificare le informazioni del file system con la massima precisione si usa il comando blkid.
FSAVAIL e FSUSE% sono lo spazio libero e la percentuale di utilizzo di un file system montato. Le partizioni non montate non mostrano valori. Comando df mostra solo la dimensione e l'utilizzo dei file system montati. lsblk mostra anche la struttura di dischi e partizioni, che siano montati o no.
3️⃣ lsblk -o per scegliere le colonne e -b per i byte
Se scrivi dopo -o i nomi delle colonne separati da virgole, compaiono solo quelle colonne, in quell'ordine. I nomi di colonna disponibili sono nell'elenco alla fine di [lsblk --help].
lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT -e 7NAME SIZE FSTYPE MOUNTPOINT
nvme0n1 80G
├─nvme0n1p1 1M
├─nvme0n1p2 200M vfat /boot/efi
├─nvme0n1p3 1G xfs /boot
└─nvme0n1p4 78.8G xfs /MOUNTPOINT mostra un solo punto di montaggio, mentre MOUNTPOINTS li mostra tutti quando lo stesso file system è montato in più punti. Per aggiungere una sola colonna dopo quelle di base, metti + davanti al nome della colonna, come in [-o +UUID].
-b mostra le dimensioni come numeri interi in byte. Per confrontare a occhio sono più leggibili le unità di base, quindi -b è adatto agli script che calcolano o confrontano dimensioni.
lsblk -b -o NAME,SIZE -e 7NAME SIZE
nvme0n1 85899345920
├─nvme0n1p1 1048576
├─nvme0n1p2 209715200
├─nvme0n1p3 1073741824
└─nvme0n1p4 84613774848G e M nell'output di base sono unità di 1.024, quindi il disco da 80G compare come 85.899.345.920 byte.
4️⃣ lsblk -d per l'elenco dei dischi e -p per i percorsi completi
Su un server con più dischi le righe di partizione si mescolano e rendono difficile leggere l'elenco dei dischi, quindi con -d si tolgono le partizioni e si mostrano solo le righe dei dischi.
lsblk -d -e 7NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme0n1 259:0 0 80G 0 disk Nell'output è rimasta solo la riga del disco nvme0n1, e le quattro righe di partizione sotto non sono comparse.
Con -p viene aggiunto /dev/ davanti ai nomi dei dispositivi, che compaiono come percorsi completi. Questi percorsi si possono passare così come sono ad altri comandi, come mount.
lsblk -p -e 7NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
/dev/nvme0n1 259:0 0 80G 0 disk
├─/dev/nvme0n1p1 259:1 0 1M 0 part
├─/dev/nvme0n1p2 259:2 0 200M 0 part /boot/efi
├─/dev/nvme0n1p3 259:3 0 1G 0 part /boot
└─/dev/nvme0n1p4 259:4 0 78.8G 0 part /Solo la colonna NAME passa ai percorsi completi, da /dev/nvme0n1 a /dev/nvme0n1p4, mentre le altre colonne restano come nell'output di base.
Se passi come argomento il percorso di un dispositivo, vengono mostrati solo quel dispositivo e le sue partizioni; se passi il percorso di una partizione, compare solo la riga di quella partizione.
lsblk /dev/nvme0n1p4NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme0n1p4 259:4 0 78.8G 0 part /Nell'output compare solo la riga di nvme0n1p4, senza la riga del disco né i segni di diramazione. Passando il percorso di un dispositivo inesistente è comparso l'errore [not a block device] e il codice di uscita era 32.
5️⃣ Output e opzioni del comando lsblk per gli script
Viene la tentazione di ritagliare l'output di base negli script, ma la composizione delle colonne dell'output di base e di -f può cambiare in futuro; negli script quindi si indicano le colonne direttamente con -o.
-n toglie la riga di intestazione e mostra solo i valori, quindi è adatto quando serve un solo valore, come il tipo di file system di una partizione.
lsblk -no FSTYPE /dev/nvme0n1p4xfsSenza riga di intestazione compare una sola parola, xfs, il tipo di file system della partizione root, quindi puoi salvarla direttamente in una variabile di shell.
-P mostra ogni colonna su una riga nella forma [nome=”valore”]. In util-linux 2.37 su AlmaLinux 9 basta aggiungere -P perché i nomi cambino e si leggano facilmente come variabili di shell, per esempio MAJ:MIN in MAJ_MIN e FSUSE% in FSUSE_PCT.
lsblk -P -o NAME,FSTYPE,MOUNTPOINT /dev/nvme0n1p4NAME="nvme0n1p4" FSTYPE="xfs" MOUNTPOINT="/"Le tre colonne indicate compaiono su una riga nell'ordine NAME, FSTYPE, MOUNTPOINT. Tutti i valori sono tra virgolette doppie.
-J mostra l'output in JSON. Senza -d, le partizioni finiscono nell'array children sotto il disco. Usato insieme a -b, solo size diventa un numero, mentre le altre colonne di dimensione come FSAVAIL restano stringhe.
lsblk -J -d -o NAME,SIZE,TYPE -e 7{
"blockdevices": [
{
"name": "nvme0n1",
"size": "80G",
"type": "disk"
}
]
}Con -d, l'array blockdevices contiene solo il disco e l'array children non compare.
🔲 Opzioni del comando lsblk
| Opzione | Copia | Descrizione |
|---|---|---|
| -e, --exclude | Esclude i dispositivi con il numero major indicato. Con 7 vengono esclusi i dispositivi loop. | |
| -f, --fs | Mostra il tipo di file system, l'UUID, lo spazio libero e la percentuale di utilizzo. | |
| -o, --output | Mostra in ordine solo le colonne indicate separate da virgole. | |
| -b, --bytes | Mostra la colonna SIZE come numeri interi in byte. | |
| -d, --nodeps | Toglie le righe di partizione e mostra solo le righe dei dischi. | |
| -p, --paths | Mostra i nomi dei dispositivi come percorsi completi che iniziano con /dev/. | |
| -n, --noheadings | Toglie la riga di intestazione e mostra solo i valori. | |
| -P, --pairs | Mostra nomi di colonna e valori a coppie su una riga. | |
| -J, --json | Mostra l'output in formato JSON. | |
| -a, --all | Mostra anche i dispositivi vuoti di dimensione 0. |
| Opzione | Copia | Descrizione |
|---|---|---|
| -I, --include | Mostra solo i dispositivi con il numero major indicato. | |
| -l, --list | Mostra l'output in formato elenco invece che ad albero. | |
| -r, --raw | Mostra l'output in formato raw, senza allineare le colonne. | |
| -i, --ascii | Mostra le linee dell'albero con caratteri ASCII. | |
| -s, --inverse | Inverte le dipendenze e mostra i dischi sotto le partizioni. | |
| -S, --scsi | Mostra solo le informazioni sui dispositivi SCSI. | |
| -t, --topology | Mostra informazioni di topologia come la dimensione del settore e lo scheduler di I/O. | |
| -m, --perms | Mostra proprietario, gruppo e permessi dei dispositivi. | |
| -x, --sort | Ordina in base alla colonna indicata e mostra l'output in formato elenco. | |
| -O, --output-all | Mostra tutte le colonne disponibili. |
🔲 Simulatore del comando lsblk
Nel simulatore qui sotto puoi digitare tu i comandi visti finora e controllare come cambia l'output con ogni opzione.
🔢 FAQ & contenuti consigliati
Linux · Swap
Configurare la memoria swap (Swap Memory)
Come creare la memoria swap come partizione o come file con i comandi mkswap e swapon.
Linux · Disco
Comando dd su Linux
Uso di base, opzioni ed esempi del comando dd, usato per clonare dischi e partizioni o creare file immagine.
Disco · Concetto
Cos'è un settore del disco?
Spiega la struttura di base di un disco rigido e cos'è un settore del disco, cioè la suddivisione del supporto di memorizzazione in unità di dimensione fissa.
ℹ️ Informativa sull'affiliazione
I contenuti di questo sito includono link di affiliazione. Se un visitatore acquista un prodotto o un servizio tramite uno di questi link, il sito riceve una commissione dal venditore. In questo processo l'importo pagato dall'acquirente (durante le promozioni l'importo scende↓) non aumenta. Prezzi, sconti e disponibilità indicati si riferiscono al momento della stesura e possono differire da quelli reali: prima di acquistare verifica sempre presso il venditore. I prodotti vengono scelti e valutati secondo criteri propri, e le commissioni non influiscono sull'ordine di presentazione né sul contenuto delle valutazioni.