Comandes LinuxInformació del sistema LinuxLinux

La comanda blkid a Linux: UUID, etiqueta i tipus de les particions



La comanda blkid identifica els dispositius de blocs (particions, discos, volums LVM, fitxers d’intercanvi…) i en mostra els atributs: el tipus de sistema de fitxers (ext4, vfat, ntfs, swap…), l’etiqueta (LABEL) i, sobretot, l’UUID, l’identificador únic que es fa servir a /etc/fstab per muntar les particions sense dependre de si el disc es diu /dev/sda o /dev/sdb. Forma part d’util-linux.

Sintaxi

sudo blkid [opcions] [dispositiu...]

Sense dispositiu, mostra tots els que troba. Sense arguments i sense sudo, només mostra el que hi ha a la memòria cau de blkid (/run/blkid/blkid.tab), que pot estar incompleta o desfasada: per tenir la informació real i completa, executa-la com a root.

Opcions més útils

OpcióQuè fa
-o valueMostra només els valors, sense els noms (ideal per a scripts)
-o exportFormat NOM=valor, una línia per atribut
-o listTaula amb dispositiu, tipus, etiqueta, punt de muntatge i UUID (obsolet, però encara funciona)
-o jsonSortida en JSON
-s atributMostra només aquest atribut (UUID, TYPE, LABEL, PARTUUID…)
-L etiquetaDiu quin dispositiu té aquesta etiqueta
-U uuidDiu quin dispositiu té aquest UUID
-t NOM=valorMostra els dispositius que tenen aquest atribut, p. ex. -t TYPE=vfat
-pLlegeix directament el disc, sense fer servir la memòria cau
-c /dev/nullNo fa servir la memòria cau

Com es llegeix la sortida

En un Raspberry Pi amb la targeta SD:

$ sudo blkid
/dev/mmcblk0p1: LABEL_FATBOOT="bootfs" LABEL="bootfs" UUID="BFD4-9C30" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="f1f57af8-01"
/dev/mmcblk0p2: LABEL="rootfs" UUID="8abab6b9-ef90-4fee-ae3d-91079bfae7c1" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="f1f57af8-02"
...
AtributSignificat
UUIDIdentificador del sistema de fitxers. Canvia si tornes a formatar la partició
PARTUUIDIdentificador de la partició a la taula de particions (GPT o MBR). No canvia en formatar
LABELNom que li has posat en formatar-la (opcional)
TYPETipus de sistema de fitxers o de contingut (ext4, xfs, btrfs, vfat, ntfs, swap, LVM2_member, crypto_LUKS…)
BLOCK_SIZEMida del bloc del sistema de fitxers

Fixa’t que l’UUID d’una partició FAT o NTFS és més curt (BFD4-9C30) que el d’una ext4: cada sistema de fitxers el genera a la seva manera.

Exemples

Un sol dispositiu

sudo blkid /dev/sda1

Només l’UUID (per a un script o per a /etc/fstab)

$ sudo blkid -s UUID -o value /dev/mmcblk0p2
8abab6b9-ef90-4fee-ae3d-91079bfae7c1

O el tipus de sistema de fitxers:

$ sudo blkid -s TYPE -o value /dev/mmcblk0p1
vfat

Tots els atributs en format variable

$ sudo blkid -o export /dev/mmcblk0p2
DEVNAME=/dev/mmcblk0p2
LABEL=rootfs
UUID=8abab6b9-ef90-4fee-ae3d-91079bfae7c1
BLOCK_SIZE=4096
TYPE=ext4
PARTUUID=f1f57af8-02

Aquest format es pot carregar directament en un script amb eval "$(sudo blkid -o export /dev/sdb1)".

Trobar un dispositiu per etiqueta o per UUID

$ blkid -L rootfs
/dev/mmcblk0p2

$ blkid -U BFD4-9C30
/dev/mmcblk0p1

Totes les particions d’un tipus

sudo blkid -t TYPE=vfat

Fer servir l’UUID a /etc/fstab

Els noms com /dev/sdb1 poden canviar si connectes un altre disc o canvies l’ordre dels cables. Per això a /etc/fstab es munta per UUID:

UUID=8abab6b9-ef90-4fee-ae3d-91079bfae7c1  /         ext4  defaults,noatime  0  1
UUID=3A469E26469DE345                     /mnt/disc  ntfs-3g  defaults,nofail  0  2

Copia l’UUID de la sortida de blkid, sense les cometes. Després de modificar /etc/fstab, comprova’l amb sudo findmnt --verify abans de reiniciar: un error en aquest fitxer pot impedir que el sistema arrenqui.

Alternatives més còmodes

Per a una visió general, avui és més pràctic lsblk -f, que mostra els discos i les particions en arbre, amb el tipus, l’etiqueta, l’UUID, l’espai lliure i on estan muntades:

$ lsblk -f
NAME        FSTYPE FSVER LABEL           UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
sda
└─sda1      ntfs         media           3A469E26469DE345                      343.4G    63% /mnt/disco
mmcblk0
├─mmcblk0p1 vfat   FAT32 bootfs          BFD4-9C30                             425.4M    16% /boot/firmware
└─mmcblk0p2 ext4   1.0   rootfs          8abab6b9-ef90-4fee-ae3d-91079bfae7c1   91.1G    18% /

També pots veure la relació entre UUID i dispositiu als enllaços que crea el sistema a /dev/disk/by-uuid/:

ls -l /dev/disk/by-uuid/

Compte amb…

  • Sense sudo la sortida pot ser incompleta: per exemple, un disc que acabes de connectar pot no sortir-hi, perquè blkid només llegeix la memòria cau. Amb sudo, o amb -p, llegeix els discos directament.
  • UUID repetits: si clones una partició amb dd o restaures una imatge, totes dues tindran el mateix UUID, i el sistema pot muntar la que no toca. Cal canviar-lo a una de les dues (per exemple, amb tune2fs -U en una ext4).
  • Els UUID canvien en formatar: si tornes a formatar una partició, actualitza /etc/fstab.

Comandes relacionades

  • mount: muntar particions, també per UUID o etiqueta.
  • cat /proc/mounts: què hi ha muntat ara mateix.
  • df: espai lliure de cada sistema de fitxers.
  • hdparm: informació i paràmetres dels discos.
  • lshw: inventari del maquinari, discos inclosos.