Descrição de blkid
O comando blkid é uma abreviação para block identification ou, em português, identificação de bloco(ou dispositivos de bloco/block devices).
No post anterior falamos mais ou menos sobre blocos. Mas para resumi, sabemos que HDs, SSDs, DVDs, CDs etc.. são block devices.
No lugar de blkid é recomendado usar outras ferramenta como “lsblk -f” ou “findmnt”. Por quê?
lsblk
- Disponibiliza mais informações.
- Temos um controle melhor da forma como o texto/resultado aparece na tela
- é mais fácil de ser usado em scripts
- não requer privilégio root para exibir informações já atualizadas
blkid
- Ler informações diretamente do dispositivo e para usuários comuns, sem permissões, retorna apenas resultados que já estavam armazenados em cache/memória
- blkid é mais destinada para testar a funcionalidade da biblioteca
- blkid tem seu uso mais direcionado a serviços do sistemas e para testar a funcionalidade da biblioteca libblkid.
Obs.: Apensar das recomendações acima, particularmente, gosto muito de usar blkid 🙂
Opções de blkid
- -g ou garbage-collect = realiza uma limpeza do cache para excluir dispositivos que não existem mais.
- -i ou info = Exibe informações sobre limites de leitura e escrita. O termo leitura e escrita geralmente é representado como I/O ou Inpunt/Output
- -k ou list-filesystems = Exibe todos os Tipos de Sistemas de Arquivos e RAID.
- -n ou match-types = Sonda/busca apenas Dispositivos de acordo com o tipo que especificamos aqui. É útil apenas quando usado com “probe”. Exemplo: blkid probe match-types vfat,ext3,ext4 /dev/sda1
- -o ou output = o resultado exibido na tela irá ser de acordo com o valor que inserirmos para output. Exemplo: “blkid -o list” Exibirá o resultado de blkid de forma bem mais legível ou de fácil leitura. Os valores que “blkid output” pode receber são:
full
value
list
device
udev
export - -p ou probe = faz uma leitura de baixo-nível não lendo o cache mas sim, diretamente, os dispositivos.
- -U ou uuid = exibe o dispositivo que tem o uuid especificado. Exemplo, “sudo blkid -U 060e460d-9ae2-41ac-bb4f-473c8438c0ba”
Praticando com blkid
- Exibindo o resultado de forma mais amigável
elder@ubuntu:~$ sudo blkid -o list device fs_type label mount point UUID --------------------------------------------------------------------------------------------------------- /dev/sda1 ext4 hdPrincipal / 060e460d-9ae2-41ac-bb4f-473c8438c0ba /dev/sdb1 ext4 /home/elder/Backups 520c9a6d-58aa-4a81-afd2-4fb40c12a63e /dev/sdb2 (não montado) /dev/sdc1 ext4 /home/elder/CoisaAntiga 24970a98-37a0-49e9-bd5e-c784bb8c107c
- Usando blkid sem sudo. Isso retornará apenas o que tiver armazenado em cache
elder@ubuntu:~$ blkid /dev/sda1: LABEL="hdPrincipal" UUID="060e460d-9ae2-41ac-bb4f-473c8438c0ba" TYPE="ext4" PARTUUID="3f4e49e0-01" /dev/sdb1: UUID="520c9a6d-58aa-4a81-afd2-4fb40c12a63e" TYPE="ext4" PARTUUID="8a3102fb-01" /dev/sdc1: UUID="24970a98-37a0-49e9-bd5e-c784bb8c107c" TYPE="ext4" PARTUUID="3dc64e3a-01"
- Usando blkid com sudo
elder@ubuntu:~$ sudo blkid /dev/sda1: LABEL="hdPrincipal" UUID="060e460d-9ae2-41ac-bb4f-473c8438c0ba" TYPE="ext4" PARTUUID="3f4e49e0-01" /dev/sdb1: UUID="520c9a6d-58aa-4a81-afd2-4fb40c12a63e" TYPE="ext4" PARTUUID="8a3102fb-01" /dev/sdc1: UUID="24970a98-37a0-49e9-bd5e-c784bb8c107c" TYPE="ext4" PARTUUID="3dc64e3a-01" /dev/sdb2: PARTUUID="8a3102fb-02"
Trouxe informações que não estavam no passo acima.
- Trazendo para a tela informações sobre topologia de leitura e escrita
elder@ubuntu:~$ sudo blkid --probe -i /dev/sdb1 /dev/sdb1: UUID="520c9a6d-58aa-4a81-afd2-4fb40c12a63e" VERSION="1.0" TYPE="ext4" USAGE="filesystem" MINIMUM_IO_SIZE="512" PHYSICAL_SECTOR_SIZE="512" LOGICAL_SECTOR_SIZE="512" PART_ENTRY_SCHEME="dos" PART_ENTRY_UUID="8a3102fb-01" PART_ENTRY_TYPE="0x83" PART_ENTRY_NUMBER="1" PART_ENTRY_OFFSET="2048" PART_ENTRY_SIZE="51200" PART_ENTRY_DISK="8:16"
- Exibindo os sistemas arquivos
elder@ubuntu:~$ sudo blkid -k linux_raid_member swap xfs xfs_external_log exfs ext4dev ext4 ext3 ext2 jbd reiserfs reiser4 nss btrfs ubifs bfs VMFS befs nilfs2 exfat f2fs
Obs.: O valor acima foi resumido.
- Mostrando apenas os dispositivos
elder@ubuntu:~$ sudo blkid -o device /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdb2
- Exibindo valores de forma que facilite a importação para dentro do ambiente udev
elder@ubuntu:~$ sudo blkid -o udev ID_FS_LABEL=hdPrincipal ID_FS_LABEL_ENC=hdPrincipal ID_FS_UUID=060e460d-9ae2-41ac-bb4f-473c8438c0ba ID_FS_UUID_ENC=060e460d-9ae2-41ac-bb4f-473c8438c0ba ID_FS_TYPE=ext4 ID_FS_PARTUUID=3f4e49e0-01 ID_FS_UUID=520c9a6d-58aa-4a81-afd2-4fb40c12a63e ID_FS_UUID_ENC=520c9a6d-58aa-4a81-afd2-4fb40c12a63e ID_FS_TYPE=ext4 ID_FS_PARTUUID=8a3102fb-01 ID_FS_UUID=24970a98-37a0-49e9-bd5e-c784bb8c107c ID_FS_UUID_ENC=24970a98-37a0-49e9-bd5e-c784bb8c107c ID_FS_TYPE=ext4 ID_FS_PARTUUID=3dc64e3a-01 ID_FS_PARTUUID=8a3102fb-02
- Se quiser pegar valores e usar no sistema ou em scripts, use o comando abaixo
elder@ubuntu:~$ sudo blkid -o export DEVNAME=/dev/sda1 LABEL=hdPrincipal UUID=060e460d-9ae2-41ac-bb4f-473c8438c0ba TYPE=ext4 PARTUUID=3f4e49e0-01 DEVNAME=/dev/sdb1 UUID=520c9a6d-58aa-4a81-afd2-4fb40c12a63e TYPE=ext4 PARTUUID=8a3102fb-01 DEVNAME=/dev/sdc1 UUID=24970a98-37a0-49e9-bd5e-c784bb8c107c TYPE=ext4 PARTUUID=3dc64e3a-01 DEVNAME=/dev/sdb2 PARTUUID=8a3102fb-02
- Mostre o dispositivo que é identificado pelo UUID 520c9a6d-58aa-4a81-afd2-4fb40c12a63e
elder@ubuntu:~$ sudo blkid -U 520c9a6d-58aa-4a81-afd2-4fb40c12a63e /dev/sdb1
- Remover dispositivos do cache que não mais existem
elder@ubuntu:~$ sudo blkid -g
Conclusão
Como mencionado acima, é recomendado usar o comando “lsblk -f” ao no lugar de blkid. Mas não podemos negar que alguns resultados de blkid são bem legais. Em contra partida, algumas informações são um tanto quanto obscuras. Mas sempre uso “sudo blkid -o list”.