Comando lsblk: struttura di dischi e partizioni e verifica dell'UUID

Ambiente di testFamiglia RHELAlmaLinux 9.8account root
Comandi per dischi · mountlsblkPosizione/usr/bin/lsblk

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 7
NAME        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.

🧭 Output di lsblk per opzione: dischi e partizioni
Diagramma esplicativo
⚙️ Opzione
$ lsblk -f -d -p -e 7
Nome del dispositivo
Dimensione
File system
Punto di montaggio
/dev/nvme0n1
80G
├─/dev/nvme0n1p1
1M
├─/dev/nvme0n1p2
200M
vfat, 5A1E-…
/boot/efi
├─/dev/nvme0n1p3
1G
xfs, 6d2f…
/boot
└─/dev/nvme0n1p4
78.8G
xfs, 2b9e…
/
🖥️ Cosa viene stampato a schermo
1 riga di disco e 4 di partizione, 7 colonne di base (da NAME a MOUNTPOINTS)
1 riga di disco e 4 di partizione, 8 colonne di file system (FSTYPE, UUID, FSAVAIL ecc.)
Solo 1 riga di disco, 7 colonne di base
1 riga di disco e 4 di partizione, nomi che iniziano con /dev/
Senza opzioni, le partizioni si diramano sotto il disco. Compaiono anche la dimensione e il punto di montaggio.
-f mostra, al posto della dimensione, il tipo di file system, l'UUID e lo spazio libero. Il disco nvme0n1 e nvme0n1p1, che non ha file system, restano vuoti.
-d toglie le righe di partizione e mostra solo la riga del disco.
Con -p viene aggiunto /dev/ davanti ai nomi dei dispositivi, così puoi passare i percorsi mostrati direttamente ad altri comandi.

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 7
NAME        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 7
NAME         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 7
NAME               SIZE
nvme0n1     85899345920
├─nvme0n1p1     1048576
├─nvme0n1p2   209715200
├─nvme0n1p3  1073741824
└─nvme0n1p4 84613774848

G 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 7
NAME    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 7
NAME             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/nvme0n1p4
NAME      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/nvme0n1p4
xfs

Senza 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/nvme0n1p4
NAME="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

OpzioneCopiaDescrizione
-e, --excludeEsclude i dispositivi con il numero major indicato. Con 7 vengono esclusi i dispositivi loop.
-f, --fsMostra il tipo di file system, l'UUID, lo spazio libero e la percentuale di utilizzo.
-o, --outputMostra in ordine solo le colonne indicate separate da virgole.
-b, --bytesMostra la colonna SIZE come numeri interi in byte.
-d, --nodepsToglie le righe di partizione e mostra solo le righe dei dischi.
-p, --pathsMostra i nomi dei dispositivi come percorsi completi che iniziano con /dev/.
-n, --noheadingsToglie la riga di intestazione e mostra solo i valori.
-P, --pairsMostra nomi di colonna e valori a coppie su una riga.
-J, --jsonMostra l'output in formato JSON.
-a, --allMostra anche i dispositivi vuoti di dimensione 0.
OpzioneCopiaDescrizione
-I, --includeMostra solo i dispositivi con il numero major indicato.
-l, --listMostra l'output in formato elenco invece che ad albero.
-r, --rawMostra l'output in formato raw, senza allineare le colonne.
-i, --asciiMostra le linee dell'albero con caratteri ASCII.
-s, --inverseInverte le dipendenze e mostra i dischi sotto le partizioni.
-S, --scsiMostra solo le informazioni sui dispositivi SCSI.
-t, --topologyMostra informazioni di topologia come la dimensione del settore e lo scheduler di I/O.
-m, --permsMostra proprietario, gruppo e permessi dei dispositivi.
-x, --sortOrdina in base alla colonna indicata e mostra l'output in formato elenco.
-O, --output-allMostra 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.

Simulatore del comando lsblkutil-linux 2.37.4
[root@server work]#
Con i tasti ↑↓ richiami i comandi digitati prima.

🔢 FAQ & contenuti consigliati

Eseguendo -f con un account normale, UUID e FSAVAIL sono comparsi come con l'account root. lsblk legge le informazioni di sysfs e udev. Quando le informazioni di udev non sono disponibili deve leggere direttamente il dispositivo, e per questo servono i permessi di root.

Subito dopo aver aggiunto o sostituito un dispositivo, udev potrebbe non aver ancora raccolto tutte le informazioni; esegui quindi udevadm settle e poi di nuovo lsblk.

-a mostra anche i dispositivi vuoti di dimensione 0, quindi si usa per controllare se manca qualche dispositivo nell'output di base. Sullo stesso server, aggiungendo -a è comparsa una riga in più: un dispositivo loop da 0B senza nulla collegato.

ℹ️ 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.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Dimostra di essere umano: 3   +   3   =