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
- Atualizando udev
[elder@empresa100 ~]$ sudo udevadm settle
- 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
- 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
- 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.
- 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
- 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----
- 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
- 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
- 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
- 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
One Comment to “Linha de Comando em Linux: lsblk”