lsblk e blkid: Inspecionando Dispositivos de Bloco e UUIDs
Qual a diferenca entre lsblk e blkid?
Conclusao:
lsblkmostra topologia e tamanhos dos dispositivos;blkidle UUID, LABEL e tipo de filesystem. Servem para trabalhos diferentes, entao voce usa ambos.
O primeiro passo em qualquer tarefa de armazenamento e saber exatamente qual dispositivo conecta onde e qual e 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 --> particao --> LVM/crypt, alem de tamanho e pontos de montagemblkid: le o UUID / LABEL / TYPE (filesystem) / PARTUUID de cada dispositivo
Qual usar
- Ver a visao geral, capacidade, estado de montagem -->
lsblk/lsblk -f - Obter um unico UUID para o
fstab-->blkid -s UUID -o value <dev>
Premissas (ambiente alvo)
- Distro: familias Ubuntu e RHEL (comandos vem com
util-linux) - Uma varredura completa pode requerer root (
sudo)
Como listo dispositivos de bloco com lsblk?
Conclusao: Execute
lsblksem argumentos para obter uma arvore 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 (indentacao em arvore mostra pai/filho)RM:1se removivel (pen drives, etc.)SIZE: capacidadeRO:1se somente leituraTYPE:disk/part/lvm/crypt/rom/loopMOUNTPOINTS: alvo de montagem (vazio se nao montado)
lsblk so le sysfs / udev, entao um usuario normal pode executa-lo (nao precisa de root).
Opcoes uteis
$ 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?
Conclusao:
lsblk -fmostra tipo de filesystem, LABEL, UUID e uso em uma unica arvore. Para verificacoes do dia a dia, isso geralmente e 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 arvore. Ver tipo de FS, UUID e espaco livre de relance faz desta sua opcao padrao de uso.
Para imprimir somente as colunas desejadas, use -o:
$ lsblk -o NAME,SIZE,FSTYPE,UUID,MOUNTPOINT
Liste os nomes de colunas disponiveis na secao COLUMNS de lsblk --help, ou use lsblk -O (todas as colunas).
Como verifico UUID, LABEL e tipo com blkid?
Conclusao:
blkide 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, voce 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, entao uma varredura completa precisa de root. Como usuario normal, retorna somente o que esta em cache em /run/blkid/blkid.tab, que pode vir vazio.
Qual a diferenca entre UUID e PARTUUID?
Conclusao:
UUIDpertence ao filesystem;PARTUUIDpertence a tabela de particoes (principalmente GPT). Reformatar muda o UUID mas mantem o PARTUUID.
| Identificador | Origem | Muda ao reformatar | Uso tipico |
|---|---|---|---|
UUID |
superbloco do filesystem | sim | Entradas de montagem no fstab (mais comum) |
LABEL |
string de label do filesystem | editavel livremente | Identificacao legivel por humanos |
PARTUUID |
tabela de particoes GPT | sobrevive a reformatacao | Bootloaders / areas sem FS |
PARTLABEL |
label de particao GPT | editavel livremente | Identificacao por particao |
Swap e areas nao formatadas podem nao ter UUID de filesystem. Aponte para elas com PARTUUID para estabilidade.
Como uso UUID no fstab?
Conclusao: Nomes como
/dev/sda2podem mudar na inicializacao, entaoUUID=e a escolha segura nofstab. Cole o valor obtido doblkid.
O numero em /dev/sdX pode trocar quando voce adiciona um disco ou a ordem de inicializacao 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
Apos editar o fstab, sempre valide com sudo mount -a antes de reiniciar. Um erro de digitacao deixado no lugar pode colocar o sistema em modo de emergencia e bloquear a inicializacao. Sem erro significa que esta tudo certo.
Veja Basico de Mount e fstab para o passo a passo completo.
Armadilhas comuns e correcoes
Conclusao: A maioria dos problemas "sem UUID" ou "dispositivo ausente" se resume a privilegios faltando, area nao formatada ou cache desatualizado.
blkidesta vazio / parcial --> adicionesudo. A sondagem precisa de root- Um USB recem-conectado nao aparece no
lsblk--> re-executelsblk; se ainda ausente, verifiquedmesg | tailpara logs de deteccao - Alguma area nao mostra
UUID--> esta nao formatada ou e swap. Aponte para ela comPARTUUID - Sistema nao inicia apos editar
fstab--> crie o habito 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"