Comando lsblk do Linux com Exemplos Práticos

LinuxBeginner
Pratique Agora

Introdução

Neste laboratório, vamos explorar o comando lsblk do Linux, que exibe informações sobre todos os dispositivos de bloco disponíveis no seu sistema. Dispositivos de bloco incluem discos rígidos, SSDs, unidades USB e outras mídias de armazenamento. O comando lsblk apresenta essas informações em um formato claro e em árvore, facilitando a compreensão da relação entre diferentes dispositivos de armazenamento e suas partições.

Compreender os dispositivos de armazenamento é essencial para qualquer pessoa que trabalhe com sistemas Linux. Se você precisa identificar o armazenamento disponível, verificar o tamanho das partições ou confirmar pontos de montagem, o comando lsblk oferece uma maneira rápida e eficiente de reunir essas informações.

Ao final deste laboratório, você será capaz de usar o comando lsblk com várias opções para obter informações detalhadas sobre os dispositivos de armazenamento no seu sistema Linux.

Guia de Referência de Comandos Linux

Uso Básico do Comando lsblk

Nesta etapa, você usará o comando lsblk para exibir informações sobre os dispositivos de bloco disponíveis no seu sistema Linux. Dispositivos de bloco são unidades de armazenamento como discos rígidos, SSDs e unidades USB.

Abra o terminal, caso ele já não esteja aberto. Em seguida, execute o comando básico lsblk:

lsblk

Você deverá ver uma saída semelhante a esta:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0    7:0    0  55.5M  1 loop /snap/core18/2128
loop1    7:1    0  55.4M  1 loop /snap/core18/2284
loop2    7:2    0  43.6M  1 loop /snap/snapd/15534
loop3    7:3    0  61.9M  1 loop /snap/gtk-common-themes/1535
loop4    7:4    0  31.1M  1 loop /snap/snapd/16292
sda      8:0    0   50G  0 disk
├─sda1   8:1    0   49G  0 part /
└─sda2   8:2    0  976M  0 part [SWAP]

Esta saída mostra todos os dispositivos de bloco no seu sistema, com as seguintes colunas:

  • NAME: O nome do dispositivo
  • MAJ:MIN: Números maior (major) e menor (minor) do dispositivo
  • RM: Indicador de removível (1 significa removível, 0 significa não removível)
  • SIZE: O tamanho do dispositivo
  • RO: Indicador de somente leitura (1 significa somente leitura, 0 significa leitura e escrita)
  • TYPE: Tipo do dispositivo (disco, partição, loop, etc.)
  • MOUNTPOINT: Onde o dispositivo está montado (se aplicável)

No exemplo acima, você pode ver:

  • Vários dispositivos loop usados por pacotes snap
  • Um dispositivo de armazenamento principal sda (que é um disco de 50GB)
  • Duas partições no sda: sda1 (montada na raiz /) e sda2 (usada como espaço de troca/swap)

A estrutura em árvore na saída facilita a visualização de quais partições pertencem a quais discos. Por exemplo, você pode ver que tanto sda1 quanto sda2 são partições do disco sda.

Agora que você entendeu a saída básica do comando lsblk, vamos explorar algumas opções úteis nas próximas etapas.

Exibindo Informações Adicionais com o lsblk

Nesta etapa, aprenderemos a usar o comando lsblk com diferentes opções para exibir informações mais detalhadas sobre os dispositivos de bloco.

Usando a Opção -f para Mostrar Informações do Sistema de Arquivos

A opção -f mostra informações do sistema de arquivos, incluindo o tipo de sistema de arquivos, rótulo (label), UUID e ponto de montagem. Isso é particularmente útil quando você precisa identificar dispositivos pelo seu UUID ou verificar quais tipos de sistemas de arquivos estão em uso.

Execute o seguinte comando no seu terminal:

lsblk -f

Você deverá ver uma saída semelhante a esta:

NAME   FSTYPE   LABEL UUID                                 MOUNTPOINT
loop0  squashfs                                            /snap/core18/2128
loop1  squashfs                                            /snap/core18/2284
loop2  squashfs                                            /snap/snapd/15534
loop3  squashfs                                            /snap/gtk-common-themes/1535
loop4  squashfs                                            /snap/snapd/16292
sda
├─sda1 ext4           5fbb8eed-12a3-4b5c-9d67-9594ff4e2d1c /
└─sda2 swap           b409ae25-7589-44eb-a909-b56f1d42c5ab [SWAP]

A saída agora inclui colunas adicionais:

  • FSTYPE: O tipo de sistema de arquivos (ext4, swap, squashfs, etc.)
  • LABEL: Qualquer rótulo (label) atribuído ao sistema de arquivos
  • UUID: O Identificador Único Universal (Universal Unique Identifier) para o sistema de arquivos

Usando a Opção -m para Mostrar Informações de Proprietário e Permissões do Dispositivo

A opção -m exibe as permissões e informações do proprietário dos dispositivos de bloco. Isso é útil ao solucionar problemas relacionados a permissões.

Execute o seguinte comando:

lsblk -m

Você deverá ver uma saída como esta:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT OWNER GROUP MODE
loop0    7:0    0  55.5M  1 loop /snap/core18/2128 root  disk  brw-rw----
loop1    7:1    0  55.4M  1 loop /snap/core18/2284 root  disk  brw-rw----
loop2    7:2    0  43.6M  1 loop /snap/snapd/15534 root  disk  brw-rw----
loop3    7:3    0  61.9M  1 loop /snap/gtk-common-themes/1535 root  disk  brw-rw----
loop4    7:4    0  31.1M  1 loop /snap/snapd/16292 root  disk  brw-rw----
sda      8:0    0   50G  0 disk            root  disk  brw-rw----
├─sda1   8:1    0   49G  0 part /          root  disk  brw-rw----
└─sda2   8:2    0  976M  0 part [SWAP]     root  disk  brw-rw----

As novas colunas mostram:

  • OWNER: O usuário proprietário do dispositivo (tipicamente root)
  • GROUP: O grupo proprietário do dispositivo (tipicamente disk)
  • MODE: O modo de permissão do dispositivo

Usando a Opção -o para Selecionar Colunas de Saída Específicas

A opção -o permite especificar quais colunas exibir. Isso é útil quando você precisa apenas de certas informações e deseja uma saída mais limpa e focada.

Vamos exibir apenas as colunas de nome (NAME), tamanho (SIZE) e ponto de montagem (MOUNTPOINT):

lsblk -o NAME,SIZE,MOUNTPOINT

A saída será muito mais simples:

NAME    SIZE MOUNTPOINT
loop0  55.5M /snap/core18/2128
loop1  55.4M /snap/core18/2284
loop2  43.6M /snap/snapd/15534
loop3  61.9M /snap/gtk-common-themes/1535
loop4  31.1M /snap/snapd/16292
sda     50G
├─sda1   49G /
└─sda2  976M [SWAP]

Essa saída personalizada facilita a concentração apenas nas informações de que você precisa. Você pode combinar várias opções para obter exatamente os dados desejados no formato que melhor atenda às suas necessidades.

Filtrando Dispositivos de Bloco com o lsblk

Nesta etapa, aprenderemos a limitar a saída do comando lsblk e a exibir informações em diferentes formatos.

Exibindo Apenas Dispositivos de Nível Superior

A opção --nodeps, abreviada como -d, omite dispositivos dependentes, como as partições. Isso é útil quando você deseja uma visão concisa dos dispositivos de bloco de nível superior.

Execute o seguinte comando:

lsblk --nodeps

A saída mostrará os dispositivos de nível superior sem suas árvores de partição. Os nomes e tamanhos dos dispositivos variam entre os sistemas:

NAME MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
vda  253:0    0   40G  0 disk
vdb  253:16   0  100G  0 disk /etc/hosts

Excluindo Dispositivos pelo Número Maior (Major Number)

A opção --exclude, abreviada como -e, aceita uma lista separada por vírgulas de números maiores de dispositivos a serem omitidos. Por exemplo, os dispositivos loop usam o número maior 7, então o seguinte comando os exclui:

lsblk --exclude 7

Este filtro se aplica aos dispositivos de nível superior. Suas partições dependentes ainda podem aparecer na árvore.

Exibindo Caminhos de Dispositivos

A opção --paths exibe os caminhos completos dos dispositivos em vez de apenas seus nomes. Isso é útil quando você precisa fazer referência aos dispositivos em scripts ou comandos.

Execute o seguinte comando:

lsblk --paths

A saída incluirá os caminhos completos dos dispositivos:

NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
/dev/loop0    7:0    0  55.5M  1 loop /snap/core18/2128
/dev/loop1    7:1    0  55.4M  1 loop /snap/core18/2284
/dev/loop2    7:2    0  43.6M  1 loop /snap/snapd/15534
/dev/loop3    7:3    0  61.9M  1 loop /snap/gtk-common-themes/1535
/dev/loop4    7:4    0  31.1M  1 loop /snap/snapd/16292
/dev/sda      8:0    0   50G  0 disk
├─/dev/sda1   8:1    0   49G  0 part /
└─/dev/sda2   8:2    0  976M  0 part [SWAP]

Exibindo a Saída em Formato JSON

A opção --json gera as informações em formato JSON, o que é útil para processamento programático ou ao integrar com outras ferramentas.

Execute o seguinte comando:

lsblk --json

A saída estará no formato JSON:

{
  "blockdevices": [
    {
      "name": "loop0",
      "maj:min": "7:0",
      "rm": false,
      "size": "55.5M",
      "ro": true,
      "type": "loop",
      "mountpoint": "/snap/core18/2128"
    },
    {
      "name": "loop1",
      "maj:min": "7:1",
      "rm": false,
      "size": "55.4M",
      "ro": true,
      "type": "loop",
      "mountpoint": "/snap/core18/2284"
    },
    {
      "name": "loop2",
      "maj:min": "7:2",
      "rm": false,
      "size": "43.6M",
      "ro": true,
      "type": "loop",
      "mountpoint": "/snap/snapd/15534"
    },
    {
      "name": "loop3",
      "maj:min": "7:3",
      "rm": false,
      "size": "61.9M",
      "ro": true,
      "type": "loop",
      "mountpoint": "/snap/gtk-common-themes/1535"
    },
    {
      "name": "loop4",
      "maj:min": "7:4",
      "rm": false,
      "size": "31.1M",
      "ro": true,
      "type": "loop",
      "mountpoint": "/snap/snapd/16292"
    },
    {
      "name": "sda",
      "maj:min": "8:0",
      "rm": false,
      "size": "50G",
      "ro": false,
      "type": "disk",
      "children": [
        {
          "name": "sda1",
          "maj:min": "8:1",
          "rm": false,
          "size": "49G",
          "ro": false,
          "type": "part",
          "mountpoint": "/"
        },
        {
          "name": "sda2",
          "maj:min": "8:2",
          "rm": false,
          "size": "976M",
          "ro": false,
          "type": "part",
          "mountpoint": "[SWAP]"
        }
      ]
    }
  ]
}

Combinando Opções para Controle Preciso

Você pode combinar várias opções para obter exatamente a informação necessária. Por exemplo, para omitir dispositivos dependentes e dispositivos loop enquanto exibe os caminhos completos em formato JSON:

lsblk --nodeps --exclude 7 --paths --json

A saída será uma representação em JSON dos dispositivos de nível superior restantes com seus caminhos completos:

{
  "blockdevices": [
    {
      "name": "/dev/vda",
      "maj:min": "253:0",
      "rm": false,
      "size": "40G",
      "ro": false,
      "type": "disk"
    }
  ]
}

Essas opções de filtragem tornam o comando lsblk extremamente flexível, permitindo obter exatamente as informações necessárias sobre os dispositivos de bloco do seu sistema.

Uso Avançado do lsblk em Cenários Práticos

Nesta etapa, exploraremos cenários práticos onde o comando lsblk se mostra valioso para tarefas de administração de sistemas e resolução de problemas.

Verificando o Uso do Disco e o Espaço Disponível

Para verificar o uso do disco e o espaço disponível, você pode combinar o lsblk com a opção -b (para mostrar os tamanhos em bytes) e selecionar colunas específicas:

lsblk -b -o NAME,SIZE,FSAVAIL,FSUSE%,MOUNTPOINT

A saída mostrará as informações de uso do disco:

NAME     SIZE FSAVAIL FSUSE% MOUNTPOINT
loop0  58195968        0     - /snap/core18/2128
loop1  58130432        0     - /snap/core18/2284
loop2  45719552        0     - /snap/snapd/15534
loop3  64897024        0     - /snap/gtk-common-themes/1535
loop4  32604160        0     - /snap/snapd/16292
sda   53687091200       -     -
├─sda1 52613349376 39128932352  26% /
└─sda2 1023410176        0     - [SWAP]

As colunas mostram:

  • SIZE: O tamanho total em bytes
  • FSAVAIL: Espaço disponível no sistema de arquivos
  • FSUSE%: Percentual do sistema de arquivos utilizado
  • MOUNTPOINT: Onde o dispositivo está montado

Identificando Unidades USB

Ao conectar uma unidade USB, você pode usar o lsblk para identificá-la rapidamente procurando por dispositivos removíveis:

lsblk -o NAME,SIZE,TYPE,RM,MOUNTPOINT

Na saída, procure por dispositivos com o valor de RM (removível) igual a 1:

NAME   SIZE TYPE RM MOUNTPOINT
loop0  55.5M loop  0 /snap/core18/2128
loop1  55.4M loop  0 /snap/core18/2284
loop2  43.6M loop  0 /snap/snapd/15534
loop3  61.9M loop  0 /snap/gtk-common-themes/1535
loop4  31.1M loop  0 /snap/snapd/16292
sda     50G disk  0
├─sda1   49G part  0 /
└─sda2  976M part  0 [SWAP]

Se você tivesse uma unidade USB conectada, ela normalmente apareceria como um disco adicional (como sdb) com o valor de RM igual a 1.

Encontrando Números de Série de Dispositivos

Para inventário de hardware ou solução de problemas, pode ser necessário encontrar os números de série dos dispositivos. O comando lsblk pode exibir esta informação:

lsblk -o NAME,SIZE,TYPE,SERIAL

A saída incluirá os números de série para os dispositivos que fornecem essa informação:

NAME   SIZE TYPE SERIAL
loop0  55.5M loop
loop1  55.4M loop
loop2  43.6M loop
loop3  61.9M loop
loop4  31.1M loop
sda     50G disk ABCD1234
├─sda1   49G part
└─sda2  976M part

Note que nem todos os dispositivos informam números de série, e dispositivos virtuais como os dispositivos loop normalmente não possuem números de série.

Analisando Atributos de Desempenho do Disco

Para visualizar os atributos de desempenho do disco, você pode usar a opção --topology ou -t:

lsblk --topology

A saída inclui informações de topologia, como alinhamento e tamanho ideal de E/S (I/O):

NAME   ALIGNMENT MIN-IO OPT-IO PHY-SEC LOG-SEC ROTA SCHED     RQ-SIZE  RA WSAME
loop0          0    512      0     512     512    1 mq-deadline     256 128    0B
loop1          0    512      0     512     512    1 mq-deadline     256 128    0B
loop2          0    512      0     512     512    1 mq-deadline     256 128    0B
loop3          0    512      0     512     512    1 mq-deadline     256 128    0B
loop4          0    512      0     512     512    1 mq-deadline     256 128    0B
sda            0    512      0     512     512    1 mq-deadline     256 128    0B
├─sda1         0    512      0     512     512    1 mq-deadline     256 128    0B
└─sda2         0    512      0     512     512    1 mq-deadline     256 128    0B

Essas informações podem ser úteis para o ajuste de desempenho e solução de problemas relacionados a E/S (I/O).

Estes exemplos práticos demonstram o quão versátil é o comando lsblk para tarefas diárias de administração de sistemas. Ao dominar essas técnicas, você poderá reunir rapidamente informações importantes sobre os dispositivos de armazenamento no seu sistema Linux.

Resumo

Neste laboratório, exploramos o comando lsblk do Linux, uma ferramenta poderosa para listar e exibir informações sobre dispositivos de bloco no seu sistema. Cobrimos vários aspectos importantes do comando:

  • O uso básico do lsblk para exibir uma lista em formato de árvore de todos os dispositivos de bloco
  • Como exibir informações adicionais, incluindo detalhes do sistema de arquivos, proprietário/permissões e seleções de colunas personalizadas
  • Técnicas de filtragem para focar em tipos específicos de dispositivos ou formatos de exibição
  • Cenários de uso avançado para tarefas de administração de sistemas

O comando lsblk é uma ferramenta essencial para administradores de sistemas Linux e usuários que precisam gerenciar dispositivos de armazenamento. Suas opções flexíveis permitem obter rapidamente as informações exatas de que você precisa sobre discos, partições e outros dispositivos de bloco no seu sistema.

Ao dominar o comando lsblk, você poderá com mais eficácia:

  • Identificar e gerenciar dispositivos de armazenamento
  • Monitorar o uso do disco e o espaço disponível
  • Solucionar problemas relacionados ao armazenamento
  • Documentar a configuração de armazenamento do seu sistema

Essas habilidades formam uma base importante para tarefas mais avançadas de administração de sistemas Linux relacionadas ao gerenciamento de armazenamento.

Guia de Referência de Comandos Linux