Linha de Comando em Linux: lsblk

Significado de lsblk

Os comando lsblk é uma abreviação de “list block” ou em português “listar Blocos”

 

O que é Block Device?

Antes de descrevermos o comando lsblk  é bom sabermos o que é um Block Device.

Um Block Device(lê-se bloqui Divaici 🙂 🙂 ) é um dispositivo de onde você pode ler blocos. Como exemplos de block device temos HD, uma partição de HD, um DVD, CD, SSD, cartão sd etc…

Um teclado de computador não é um block device. Podemos receber dados do teclado mas não podemos pesquisar dados de dentro dele. Diferentemente de um teclado, podemos busca dados em um HD;  Podemos pedir para um HD “dê-me o bloco 5433, agora me dê o bloco 7707 e agora o 1807”. Mas não podemos fazer isso com um teclado.

Geralmente temos esses arquivos dentro da pasta /dev nos sistemas Linux.  Se imaginou que /dev vem de device você acertou!!! e device significa dispositivo.

É dentro da pasta /dev onde encontramos diversos block devices ou arquivos que representam dispositivos tais como HD, CD, DVD etc….

Dentro de /dev  no meu computador eu tenho:

[elder@empresa100 ~]$ ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sdb  /dev/sdc  /dev/sdd  /dev/sde  /dev/sde1

 

Cada sistema de arquivos precisa dividir uma partição  em blocos para armazenar partes de um arquivos. Se os blocos em um hd tiver 4096 bytes e você for salvar um arquivo de apenas 5 bytes isso significa que 4091 bytes irão ser perdidos, desperdiçados.

Um HD não pode ler menos de 512 bytes; se precisa ler menos de 512 bytes ele irá ler 512 e descartar o restante, a sobra.

Bom, basta! não iremos estender mais ainda esse assunto sobre blocos, já deu para entendermos um pouco.

O Comando lsblk

 

O comando lsblk apresenta na tela informações informações sobre todos block devices ou apenas aqueles  especificados na frente do comando. Exemplo,

Somente lsblk, conforme abaixo,  exibiria informações de todos os block devices

[elder@empresa100 ~]$ lsblk

Já o formato abaixo exibiria informações apenas dos  dispositivos “/dev/sdb” e “/dev/sde”

[elder@empresa100 ~]$ lsblk  /dev/sdb   /dev/sde

Seguem alguns pontos importantes sobre lsblk

  • lsblk  busca informações dentro dos sistemas de arquivos sysfs, udev e db.
  • Se lsblk não conseguir obter informações de udev e db então ele irá ler Label, UUID e tipos de sistemas de arquivos dos block devices; nesse caso é necessário o uso de sudo.
  • Às vezes o sistema de aruivos udev pode não ter informações sobre dispositivos recém conectados ou modificados, nesses casos é recomendado usar o comando “udevadm settle” antes de executar lsblk.

 

Opções do Comando lsblk

  • -a ou –all = Lista também dispositivos vazios. Por padrão, um dispositivo vazio é ocultado.
  • -b ou –bytes  = exibe a coluna SIZE em bytes ao invés do formato que é mais legível/entendível por nós  meros humanos
  • -d ou –nodeps = Não exibe informações sobre holder devices ou slaves. Vejremos nos exemplos sobre isso.
  • -f ou –fs  = Exibe informações sobre o sistema de arquivos de cada dispositivo.
  • -l ou –list =  exibe informações em formato de lista
  • -m ou –perms =  exibe informações sobre proprietário, grupo e permissões
  • -n ou –noheadings  =  Nâo exibe os cabeçalhos/títulos das colunas.
  • -P ou –pairs = exibe na tela as informações em formato de “chave=valor da chave”. Bom, vendo na prática é melhor para entender 🙂
  • -r ou –raw  = Exibe informações de forma crua, não organizada na tela
  • -s ou –inverse =  printa/exibe na tela as dependências(ramificações) em ordem inversa, contrária.

 

Praticando o Comando lsblk

 

  1. Atualizando udev
    [elder@empresa100 ~]$ sudo udevadm settle
    
  2. Exibindo informações de todos os dispositivos em blocos(block devices 🙂 )
    [elder@empresa100 ~]$ lsblk
    NAME                           MAJ:MIN RM    SIZE RO TYPE  MOUNTPOINT
    sr0                             11:0    1   1024M  0 rom   
    sda                              8:0    0     15G  0 disk  
    ├─sda1                           8:1    0    500M  0 part  /boot
    └─sda2                           8:2    0   14,5G  0 part  
      ├─vg_centos65-lv_root (dm-0) 253:0    0     13G  0 lvm   /
      └─vg_centos65-lv_swap (dm-1) 253:1    0    1,5G  0 lvm   [SWAP]
    sdb                              8:16   0      5G  0 disk  
    └─md127                          9:127  0      5G  0 raid1 
    sdc                              8:32   0      8G  0 disk  
    sdd                              8:48   0      1G  0 disk  
    sde                              8:64   0      1G  0 disk  
    └─sde1                           8:65   0 1019,7M  0 part
  3. Exbindo  todos os block devices mas sem as informações ramificadas(holder devices ou slaves)
    [elder@empresa100 ~]$ lsblk -d
    NAME MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sr0   11:0    1 1024M  0 rom  
    sda    8:0    0   15G  0 disk 
    sdb    8:16   0    5G  0 disk 
    sdc    8:32   0    8G  0 disk 
    sdd    8:48   0    1G  0 disk 
    sde    8:64   0    1G  0 disk
  4. Exibindo informações referentes a sistema de arquivos
    [elder@empresa100 ~]$ lsblk -f
    NAME                           FSTYPE LABEL UUID MOUNTPOINT
    sr0                                              
    sda                                              
    ├─sda1                                           /boot
    └─sda2                                           
      ├─vg_centos65-lv_root (dm-0)                   /
      └─vg_centos65-lv_swap (dm-1)                   [SWAP]
    sdb                                              
    └─md127                                          
    sdc                                              
    sdd                                              
    sde                                              
    └─sde1

    opa!! é preciso usar sudo para obtermos as informações necessárias. Então vamos repetir o comando acima

    [elder@empresa100 ~]$ sudo lsblk -f
    NAME    FSTYPE            LABEL      UUID                                   MOUNTPOINT
    sr0                                                                         
    sda                                                                         
    ├─sda1  ext4                         e613f8e6-11d2-4598-891a-f4a020c33925   /boot
    └─sda2  LVM2_member                  guqZaH-W2IG-4v2h-b40I-COBe-997j-xfKpg6 
      ├─vg_centos65-lv_root (dm-0)
            ext4                         48a1a9b3-81a8-4de6-ad12-9b2bf75218d1   /
      └─vg_centos65-lv_swap (dm-1)
            swap                         4f65b38c-beb6-4be1-b9cf-f830ad5e33b6   [SWAP]
    sdb     linux_raid_member centos65:0 72e883a0-dc43-c9ac-4c31-896710eaa96e   
    └─md127                                                                     
    sdc                                                                         
    sdd                                                                         
    sde                                                                         
    └─sde1  ext4                         845c97e1-4702-4cc5-9301-ea96965d491c

    Observe que a coluna FSTYPE foi preenchida com informações abaixo dela como: ext4, LVM, swap.

  5. lsblk exibe as informações em formato de árvore, podemos ver isso nos resultados acima. Iremos usar a opção -l para exibirmos, não em formato de árvore, mas de lista.
    [elder@empresa100 ~]$ lsblk -l
    NAME                       MAJ:MIN RM    SIZE RO TYPE  MOUNTPOINT
    sr0                         11:0    1   1024M  0 rom   
    sda                          8:0    0     15G  0 disk  
    sda1                         8:1    0    500M  0 part  /boot
    sda2                         8:2    0   14,5G  0 part  
    vg_centos65-lv_root (dm-0) 253:0    0     13G  0 lvm   /
    vg_centos65-lv_swap (dm-1) 253:1    0    1,5G  0 lvm   [SWAP]
    sdb                          8:16   0      5G  0 disk  
    md127                        9:127  0      5G  0 raid1 
    sdc                          8:32   0      8G  0 disk  
    sdd                          8:48   0      1G  0 disk  
    sde                          8:64   0      1G  0 disk  
    sde1                         8:65   0 1019,7M  0 part
  6. Exibindo permissões
    [elder@empresa100 ~]$ sudo lsblk -m
    NAME                              SIZE OWNER GROUP MODE
    sr0                              1024M root  cdrom brw-rw----
    sda                                15G root  disk  brw-rw----
    ├─sda1                            500M root  disk  brw-rw----
    └─sda2                           14,5G root  disk  brw-rw----
      ├─vg_centos65-lv_root (dm-0)     13G root  disk  brw-rw----
      └─vg_centos65-lv_swap (dm-1)    1,5G root  disk  brw-rw----
    sdb                                 5G root  disk  brw-rw----
    └─md127                             5G root  disk  brw-rw----
    sdc                                 8G root  disk  brw-rw----
    sdd                                 1G root  disk  brw-rw----
    sde                                 1G root  disk  brw-rw----
    └─sde1                         1019,7M root  disk  brw-rw----

    Exibindo as informações acima em formato de lista

    [elder@empresa100 ~]$ sudo lsblk -ml
    NAME                          SIZE OWNER GROUP MODE
    sr0                          1024M root  cdrom brw-rw----
    sda                            15G root  disk  brw-rw----
    sda1                          500M root  disk  brw-rw----
    sda2                         14,5G root  disk  brw-rw----
    vg_centos65-lv_root (dm-0)     13G root  disk  brw-rw----
    vg_centos65-lv_swap (dm-1)    1,5G root  disk  brw-rw----
    sdb                             5G root  disk  brw-rw----
    md127                           5G root  disk  brw-rw----
    sdc                             8G root  disk  brw-rw----
    sdd                             1G root  disk  brw-rw----
    sde                             1G root  disk  brw-rw----
    sde1                       1019,7M root  disk  brw-rw----
  7. Exibindo informações sobre permissões e proprietário em formato de lista
    [elder@empresa100 ~]$ sudo lsblk -fl
    NAME                       FSTYPE            LABEL      UUID                                   MOUNTPOINT
    sr0                                                                                            
    sda                                                                                            
    sda1                       ext4                         e613f8e6-11d2-4598-891a-f4a020c33925   /boot
    sda2                       LVM2_member                  guqZaH-W2IG-4v2h-b40I-COBe-997j-xfKpg6 
    vg_centos65-lv_root (dm-0) ext4                         48a1a9b3-81a8-4de6-ad12-9b2bf75218d1   /
    vg_centos65-lv_swap (dm-1) swap                         4f65b38c-beb6-4be1-b9cf-f830ad5e33b6   [SWAP]
    sdb                        linux_raid_member centos65:0 72e883a0-dc43-c9ac-4c31-896710eaa96e   
    md127                                                                                          
    sdc                                                                                            
    sdd                                                                                            
    sde                                                                                            
    sde1                       ext4                         845c97e1-4702-4cc5-9301-ea96965d491c
  8. Imprimindo/exibindo as informações na tela com as dependências em ordem inversa
    [elder@empresa100 ~]$ sudo lsblk -s
    NAME                       MAJ:MIN RM    SIZE RO TYPE  MOUNTPOINT
    sr0                         11:0    1   1024M  0 rom   
    sda1                         8:1    0    500M  0 part  /boot
    └─sda                        8:0    0     15G  0 disk  
    sdc                          8:32   0      8G  0 disk  
    sdd                          8:48   0      1G  0 disk  
    sde1                         8:65   0 1019,7M  0 part  
    └─sde                        8:64   0      1G  0 disk  
    vg_centos65-lv_root (dm-0) 253:0    0     13G  0 lvm   /
    └─sda2                       8:2    0   14,5G  0 part  
      └─sda                      8:0    0     15G  0 disk  
    vg_centos65-lv_swap (dm-1) 253:1    0    1,5G  0 lvm   [SWAP]
    └─sda2                       8:2    0   14,5G  0 part  
      └─sda                      8:0    0     15G  0 disk  
    md127                        9:127  0      5G  0 raid1 
    └─sdb                        8:16   0      5G  0 disk
  9. Exibindo informações de diversos block devices
    [elder@empresa100 ~]$ sudo lsblk /dev/sda /dev/sdc  /dev/sde
    NAME                           MAJ:MIN RM    SIZE RO TYPE MOUNTPOINT
    sda                              8:0    0     15G  0 disk 
    ├─sda1                           8:1    0    500M  0 part /boot
    └─sda2                           8:2    0   14,5G  0 part 
      ├─vg_centos65-lv_root (dm-0) 253:0    0     13G  0 lvm  /
      └─vg_centos65-lv_swap (dm-1) 253:1    0    1,5G  0 lvm  [SWAP]
    sdc                              8:32   0      8G  0 disk 
    sde                              8:64   0      1G  0 disk 
    └─sde1
  10. Imprimindo as informações na tela de maneira crua, sem organização
    [elder@empresa100 ~]$ sudo lsblk -r
    NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    sr0 11:0 1 1024M 0 rom 
    sda 8:0 0 15G 0 disk 
    sda1 8:1 0 500M 0 part /boot
    sda2 8:2 0 14,5G 0 part 
    vg_centos65-lv_root 253:0 0 13G 0 lvm /
    vg_centos65-lv_swap 253:1 0 1,5G 0 lvm [SWAP]
    sdb 8:16 0 5G 0 disk 
    md127 9:127 0 5G 0 raid1 
    sdc 8:32 0 8G 0 disk 
    sdd 8:48 0 1G 0 disk 
    sde 8:64 0 1G 0 disk 
    sde1 8:65 0 1019,7M 0 part

Conclusão

 

A ferramenta lsblk é muito útil, principalmente para verificarmos dispositivos recém conectados. Vale ressaltar a importância do uso do comando “sudo udevadm settle” já que lsblk também coleta informações desse local(Sistema de arquivos).

Espero que tenha gostado!

Fontes: linuxintro, a própria man page do comando lsblk

 

 

 

Leitor voraz e um dos administradores do GNU/Linux Brasil no Whatsapp, facebook, youtube e nesse dito site: www.gnulinuxbrasil.com.br

Deixe uma resposta

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