Comando lsblk: estrutura de discos e partições e verificação do UUID

Ambiente de testeFamília RHELAlmaLinux 9.8conta root
Comandos de disco · montagemlsblkLocalização/usr/bin/lsblk

O comando lsblk mostra em forma de árvore os discos e partições conectados a um servidor e seus pontos de montagem, e permite ver de uma vez o tamanho dos discos, o tipo de sistema de arquivos e até o UUID. Ao executar o lsblk em um servidor AlmaLinux 9, os dispositivos loop criados pelos pacotes snap apareceram antes do disco, então os filtramos com -e 7. Em seguida, verificamos com -f o sistema de arquivos xfs e o UUID da partição raiz.

Os tamanhos de disco e os UUIDs da saída abaixo são valores de exemplo.

1️⃣ Como ler a saída básica do comando lsblk

Em um servidor com programas instalados via snap, ao executar o lsblk sem opções aparece antes do disco uma fila de dispositivos loop montados, um para cada versão de pacote; por isso, indique com -e o número de dispositivo dos loop, 7, para excluí-los.

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 na coluna NAME é o disco. As partições em que esse disco é dividido são as de nvme0n1p1 a nvme0n1p4, ligadas abaixo dele com [├─] e [└─]. É como o painel de andares na entrada de um prédio, que mostra, abaixo do nome do prédio, o que há em cada andar.

Na coluna TYPE, os discos aparecem como [disk] e as partições como [part], e a coluna MOUNTPOINTS indica a pasta em que cada partição está montada. No servidor verificado, a partição raiz nvme0n1p4 estava montada em / e a nvme0n1p3 em /boot. A nvme0n1p1, de 1M, é uma partição de boot BIOS usada para inicializar a partir de um disco GPT, por isso não tem ponto de montagem.

MAJ:MIN são os números maior e menor que o kernel atribui a um dispositivo; os dispositivos loop têm 7 e o disco NVMe verificado tinha 259. RM indica com 1 ou 0 se o dispositivo é removível, e RO se é somente leitura.

É fácil ler SIZE como espaço livre, mas SIZE é o tamanho total do disco ou da partição. O espaço livre de um sistema de arquivos é verificado na coluna FSAVAIL, que aparece ao adicionar -f.

No diagrama abaixo você pode comparar, passo a passo, como as linhas e colunas da saída mudam conforme a opção.

🧭 Saída do lsblk por opção: discos e partições
Diagrama explicativo
⚙️ Opção
$ lsblk -f -d -p -e 7
Nome do dispositivo
Tamanho
Sistema de arquivos
Ponto de montagem
/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…
/
🖥️ O que aparece na tela
1 linha de disco e 4 de partição, 7 colunas padrão (de NAME a MOUNTPOINTS)
1 linha de disco e 4 de partição, 8 colunas de sistema de arquivos (FSTYPE, UUID, FSAVAIL etc.)
Só 1 linha de disco, 7 colunas padrão
1 linha de disco e 4 de partição, nomes começando com /dev/
Sem opções, as partições se ramificam abaixo do disco. O tamanho e o ponto de montagem também aparecem.
-f mostra, no lugar do tamanho, o tipo de sistema de arquivos, o UUID e o espaço livre. O disco nvme0n1 e a nvme0n1p1, que não tem sistema de arquivos, ficam em branco.
-d tira as linhas de partição e mostra só a linha do disco.
Com -p, /dev/ é adicionado antes dos nomes de dispositivo, então você pode passar os caminhos exibidos diretamente para outros comandos.

2️⃣ lsblk -f: verificar sistemas de arquivos e UUIDs

A saída básica não mostra o tipo de sistema de arquivos, então o formato com que uma partição foi formatada é verificado com -f. -f mostra oito colunas: 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% /

Na execução, as partições raiz e /boot eram xfs, e /boot/efi era vfat na versão FAT16. O disco nvme0n1 e a nvme0n1p1 não têm sistema de arquivos, por isso ficaram em branco. O UUID é um número único dado a cada sistema de arquivos e é usado no /etc/fstab para indicar a partição a montar pelo UUID em vez do nome do dispositivo.

Para verificar as informações do sistema de arquivos com a maior precisão, use o comando blkid.

FSAVAIL e FSUSE% são o espaço livre e a taxa de uso de um sistema de arquivos montado. Partições não montadas não mostram valores. Comando df mostra só o tamanho e o uso dos sistemas de arquivos montados. O lsblk mostra também a estrutura de discos e partições, estejam montados ou não.

3️⃣ lsblk -o para escolher colunas e -b para bytes

Se você escrever nomes de colunas separados por vírgula depois de -o, só essas colunas aparecem, nessa ordem. Os nomes de coluna disponíveis estão na lista no fim de [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 só um ponto de montagem, enquanto MOUNTPOINTS mostra todos quando o mesmo sistema de arquivos está montado em vários lugares. Para adicionar só uma coluna depois das colunas padrão, coloque + antes do nome da coluna, como em [-o +UUID].

-b mostra os tamanhos como números inteiros em bytes. Para comparar a olho, as unidades padrão são mais fáceis de ler, então -b é adequado para scripts que calculam ou comparam tamanhos.

lsblk -b -o NAME,SIZE -e 7
NAME               SIZE
nvme0n1     85899345920
├─nvme0n1p1     1048576
├─nvme0n1p2   209715200
├─nvme0n1p3  1073741824
└─nvme0n1p4 84613774848

O G e o M da saída básica são unidades de 1.024, então o disco de 80G aparece como 85.899.345.920 bytes.

4️⃣ lsblk -d para a lista de discos e -p para caminhos completos

Em um servidor com vários discos, as linhas de partição se misturam e dificultam a leitura da lista de discos; por isso, use -d para tirar as partições e mostrar só as linhas de disco.

lsblk -d -e 7
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme0n1 259:0    0  80G  0 disk 

Na saída ficou só a linha do disco nvme0n1, e as quatro linhas de partição abaixo dele não apareceram.

Com -p, /dev/ é adicionado antes dos nomes de dispositivo, que aparecem como caminhos completos. Esses caminhos podem ser passados diretamente para outros comandos, como 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 /

Só a coluna NAME muda para caminhos completos, de /dev/nvme0n1 a /dev/nvme0n1p4, e as demais colunas ficam iguais à saída básica.

Se você passar o caminho de um dispositivo como argumento, aparecem só esse dispositivo e as partições abaixo dele; se passar o caminho de uma partição, aparece só a linha dessa partição.

lsblk /dev/nvme0n1p4
NAME      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
nvme0n1p4 259:4    0 78.8G  0 part /

Na saída aparece só a linha da nvme0n1p4, sem a linha do disco nem as marcas de ramificação. Ao passar um caminho de dispositivo que não existe, apareceu o erro [not a block device] e o código de saída foi 32.

5️⃣ Saída e opções do comando lsblk para scripts

É tentador recortar a saída básica em scripts, mas a composição das colunas da saída básica e de -f pode mudar no futuro; por isso, nos scripts, indique você mesmo as colunas com -o.

-n tira a linha de cabeçalho e mostra só os valores, então é adequado quando você precisa de um único valor, como o tipo de sistema de arquivos de uma partição.

lsblk -no FSTYPE /dev/nvme0n1p4
xfs

Sem linha de cabeçalho, aparece só uma palavra, xfs, o tipo de sistema de arquivos da partição raiz, então dá para guardá-la direto em uma variável do shell.

-P mostra cada coluna em uma linha no formato [nome=”valor”]. No util-linux 2.37 do AlmaLinux 9, basta adicionar -P para que os nomes mudem e fiquem fáceis de ler como variáveis do shell, como MAJ:MIN para MAJ_MIN e FSUSE% para FSUSE_PCT.

lsblk -P -o NAME,FSTYPE,MOUNTPOINT /dev/nvme0n1p4
NAME="nvme0n1p4" FSTYPE="xfs" MOUNTPOINT="/"

As três colunas indicadas aparecem em uma linha na ordem NAME, FSTYPE, MOUNTPOINT. Todos os valores ficam entre aspas duplas.

-J mostra a saída em JSON. Sem -d, as partições entram no array children abaixo do disco. Usado junto com -b, só size vira número, e as outras colunas de tamanho, como FSAVAIL, continuam como strings.

lsblk -J -d -o NAME,SIZE,TYPE -e 7
{
   "blockdevices": [
      {
         "name": "nvme0n1",
         "size": "80G",
         "type": "disk"
      }
   ]
}

Com -d, o array blockdevices contém só o disco, e o array children não aparece.

🔲 Opções do comando lsblk

OpçãoCopiarDescrição
-e, --excludeExclui os dispositivos com o número maior indicado. Com 7, os dispositivos loop ficam de fora.
-f, --fsMostra o tipo de sistema de arquivos, o UUID, o espaço livre e a taxa de uso.
-o, --outputMostra, em ordem, só as colunas indicadas separadas por vírgula.
-b, --bytesMostra a coluna SIZE como números inteiros em bytes.
-d, --nodepsTira as linhas de partição e mostra só as linhas de disco.
-p, --pathsMostra os nomes de dispositivo como caminhos completos que começam com /dev/.
-n, --noheadingsTira a linha de cabeçalho e mostra só os valores.
-P, --pairsMostra nomes de coluna e valores em pares em uma linha.
-J, --jsonMostra a saída no formato JSON.
-a, --allMostra também os dispositivos vazios com tamanho 0.
OpçãoCopiarDescrição
-I, --includeMostra só os dispositivos com o número maior indicado.
-l, --listMostra a saída em formato de lista em vez de árvore.
-r, --rawMostra a saída em formato raw, sem alinhar as colunas.
-i, --asciiMostra as linhas da árvore com caracteres ASCII.
-s, --inverseInverte as dependências e mostra os discos abaixo das partições.
-S, --scsiMostra só as informações de dispositivos SCSI.
-t, --topologyMostra informações de topologia, como tamanho de setor e escalonador de E/S.
-m, --permsMostra o proprietário, o grupo e as permissões dos dispositivos.
-x, --sortOrdena pela coluna indicada e mostra a saída em formato de lista.
-O, --output-allMostra todas as colunas disponíveis.

🔲 Simulador do comando lsblk

No simulador abaixo, você pode digitar os comandos vistos até aqui e conferir como a saída muda com cada opção.

Simulador do comando lsblkutil-linux 2.37.4
[root@server work]#
Use as teclas ↑↓ para chamar de volta os comandos digitados antes.

🔢 FAQ & conteúdo recomendado

Ao executar -f com uma conta comum, UUID e FSAVAIL apareceram iguais aos da conta root. O lsblk lê as informações do sysfs e do udev. Quando as informações do udev não estão disponíveis, ele precisa ler o dispositivo diretamente, e para isso precisa de permissões de root.

Logo depois de adicionar ou trocar um dispositivo, o udev pode ainda não ter reunido todas as informações; por isso, execute udevadm settle e depois execute o lsblk de novo.

-a mostra também os dispositivos vazios com tamanho 0, então é usado para verificar se falta algum dispositivo na saída básica. No mesmo servidor, ao adicionar -a apareceu mais uma linha: um dispositivo loop de 0B sem nada conectado.

ℹ️ Aviso de afiliados
O conteúdo deste site contém links de afiliados. Quando um visitante compra um produto ou serviço por meio de um desses links, o site recebe uma comissão do vendedor. O valor que o comprador paga (em promoções, ele diminui ↓) não aumenta por causa disso. Preços, descontos e informações de estoque valem para o momento em que o texto foi escrito e podem ter mudado, por isso confirme com o vendedor antes de comprar. Os produtos são escolhidos e avaliados por critérios próprios, e o recebimento de comissão não influencia a ordem de apresentação nem o conteúdo das avaliações.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Demonstre sua humanidade: 2   +   4   =