lsblk e blkid: Inspecionando Dispositivos de Bloco e UUIDs
Qual a diferença entre lsblk e blkid?
Conclusão:
lsblkmostra topologia e tamanhos dos dispositivos;blkidlê UUID, LABEL e tipo de filesystem. Servem para trabalhos diferentes, então você usa ambos.
O primeiro passo em qualquer tarefa de armazenamento é saber exatamente qual dispositivo conecta onde e qual é seu UUID. Errar nisso pode resultar em uma linha ruim no /etc/fstab que deixa o sistema sem inicializar.
lsblk: lista a hierarquia de disco --> partição --> LVM/crypt, além de tamanho e pontos de montagemblkid: lê o UUID / LABEL / TYPE (filesystem) / PARTUUID de cada dispositivo
Qual usar
- Ver a visão geral, capacidade, estado de montagem -->
lsblk/lsblk -f - Obter um único UUID para o
fstab-->blkid -s UUID -o value <dev>
Premissas (ambiente alvo)
- Distro: famílias Ubuntu e RHEL (comandos vêm com
util-linux) - Uma varredura completa pode requerer root (
sudo)
Como listo dispositivos de bloco com lsblk?
Conclusão: Execute
lsblksem argumentos para obter uma árvore de todos os dispositivos de bloco. A colunaTYPEdistingue disk / part / lvm / crypt.
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 100G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 99G 0 part / sdb 8:16 1 14.5G 0 disk └─sdb1 8:17 1 14.5G 0 part /media/usb nvme0n1 259:0 0 476.9G 0 disk └─nvme0n1p1 259:1 0 476.9G 0 part /data
O que as colunas principais significam:
NAME: nome do dispositivo (indentação em árvore mostra pai/filho)RM:1se removível (pen drives, etc.)SIZE: capacidadeRO:1se somente leituraTYPE:disk/part/lvm/crypt/rom/loopMOUNTPOINTS: alvo de montagem (vazio se não montado)
lsblk só lê sysfs / udev, então um usuário normal pode executá-lo (não precisa de root).
Opções úteis
$ lsblk -p # caminhos completos (ex: /dev/sda1) $ lsblk -d # somente discos, colapsar particoes $ lsblk -b # tamanhos em bytes (para scripts) $ lsblk -J # saida JSON (facil de encadear com jq)
Como vejo UUIDs e filesystems com lsblk -f?
Conclusão:
lsblk -fmostra tipo de filesystem, LABEL, UUID e uso em uma única árvore. Para verificações do dia a dia, isso geralmente é suficiente.
$ lsblk -f
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS sda ├─sda1 ext4 1.0 boot 6e1f...-a2c1 812M 12% /boot └─sda2 ext4 1.0 9b3d...-77e0 61.2G 35% / nvme0n1 └─nvme0n1p1 xfs data c4a8...-1f93 410G 8% /data
-f (--fs) usa libblkid internamente e incorpora os mesmos dados que blkid reporta na árvore. Ver tipo de FS, UUID e espaço livre de relance faz desta sua opção padrão de uso.
Para imprimir somente as colunas desejadas, use -o:
$ lsblk -o NAME,SIZE,FSTYPE,UUID,MOUNTPOINT
Liste os nomes de colunas disponíveis na seção COLUMNS de lsblk --help, ou use lsblk -O (todas as colunas).
Como verifico UUID, LABEL e tipo com blkid?
Conclusão:
blkidé a ferramenta dedicada para atributos de filesystem. Combine-se-o valuepara extrair apenas o UUID.
Execute sem argumentos para enumerar atributos dos dispositivos conhecidos.
$ sudo blkid
/dev/sda1: LABEL="boot" UUID="6e1f...-a2c1" TYPE="ext4" PARTUUID="2b1c...-01" /dev/sda2: UUID="9b3d...-77e0" TYPE="ext4" PARTUUID="2b1c...-02" /dev/nvme0n1p1: LABEL="data" UUID="c4a8...-1f93" TYPE="xfs" PARTUUID="8f0a...-01"
Passe um dispositivo para inspecionar somente ele:
$ sudo blkid /dev/sda2
Extrair somente o UUID (para scripts)
Para copiar no fstab ou para scripts, você quer somente o valor. Use -s (nome do atributo) e -o value (somente valor).
$ sudo blkid -s UUID -o value /dev/sda2
9b3d...-77e0
blkid sonda o superbloco do dispositivo, então uma varredura completa precisa de root. Como usuário normal, retorna somente o que está em cache em /run/blkid/blkid.tab, que pode vir vazio.
Qual a diferença entre UUID e PARTUUID?
Conclusão:
UUIDpertence ao filesystem;PARTUUIDpertence à tabela de partições (principalmente GPT). Reformatar muda o UUID mas mantém o PARTUUID.
| Identificador | Origem | Muda ao reformatar | Uso típico |
|---|---|---|---|
UUID |
superbloco do filesystem | sim | Entradas de montagem no fstab (mais comum) |
LABEL |
string de label do filesystem | editável livremente | Identificação legível por humanos |
PARTUUID |
tabela de partições GPT | sobrevive a reformatação | Bootloaders / áreas sem FS |
PARTLABEL |
label de partição GPT | editável livremente | Identificação por partição |
Swap e áreas não formatadas podem não ter UUID de filesystem. Aponte para elas com PARTUUID para estabilidade.
Como uso UUID no fstab?
Conclusão: Nomes como
/dev/sda2podem mudar na inicialização, entãoUUID=é a escolha segura nofstab. Cole o valor obtido doblkid.
O número em /dev/sdX pode trocar quando você adiciona um disco ou a ordem de inicialização muda. Um UUID fixo elimina esse risco.
# 1. Obter o UUID $ sudo blkid -s UUID -o value /dev/sda2 9b3d...-77e0 # 2. Escrever no /etc/fstab (separado por tab/espaco) # <dispositivo> <montagem> <tipo> <opcoes> <dump> <pass> UUID=9b3d...-77e0 /data xfs defaults 0 2
Após editar o fstab, sempre valide com sudo mount -a antes de reiniciar. Um erro de digitação deixado no lugar pode colocar o sistema em modo de emergência e bloquear a inicialização. Sem erro significa que está tudo certo.
Veja Básico de Mount e fstab para o passo a passo completo.
Armadilhas comuns e correções
Conclusão: A maioria dos problemas "sem UUID" ou "dispositivo ausente" se resume a privilégios faltando, área não formatada ou cache desatualizado.
blkidestá vazio / parcial --> adicionesudo. A sondagem precisa de root- Um USB recem-conectado não aparece no
lsblk--> re-executelsblk; se ainda ausente, verifiquedmesg | tailpara logs de detecção - Alguma área não mostra
UUID--> está não formatada ou é swap. Aponte para ela comPARTUUID - Sistema não inicia após editar
fstab--> crie o hábito de validar commount -aantes de reiniciar
Copiar e colar: construa uma linha fstab em um comando
DEV=/dev/sda2 echo "UUID=$(sudo blkid -s UUID -o value "$DEV") /data $(sudo blkid -s TYPE -o value "$DEV") defaults 0 2"