blkid devuelve más información de la esperada

blkid devuelve más información de la esperada

Estoy siguiendo una receta que creé hace un par de años, donde en un momento necesito usarla blkidpara obtener un UUID del sistema de archivos.

He anotado este comando, junto con un valor de retorno de ejemplo esperado:

blkid -o export -s UUID /dev/mapper/thathost_crypt_md3
UUID=JNbF5T-vhSD-3aVv-intG-1Tk2-IEOZ-ABWXYZ

Sin embargo, los tiempos han avanzado y ya no uso "wheezy" de Debian sino "jessie". Veo que en esta versión más reciente de Debian ahora tengo un valor de retorno diferente para el mismo comando:

blkid -o export -s UUID /dev/mapper/thishost_crypt_sdb
DEVNAME=/dev/mapper/thishost_crypt_sdb
UUID=bddac63e-3510-4d24-a6fb-4d0a89abcdef

La página de manual de blkid parece decir que -s UUIDdebería incluir solo valores que coincidan con esa clave, pero también hay algo extraño DEVNAMEallí.

Tengo una solución alternativa, ya que puedo escribir esto en ambos casos, pero parece extraño que la estructura de salida debería haber cambiado:

echo "UUID=$(blkid -o value -s UUID /path/to/device)"
UUID=bddac63e-3510-4d24-a6fb-4d0a89abcdef

Las versiones del paquete util-linuxson 2.20.1-5.3 y 2.25.2-6, respectivamente.

Preguntas

  1. ¿Por qué el cambio en la forma del UUID? ¿Importa?
  2. ¿Por qué el cambio en el formato de salida?

Respuesta1

DEVNAME es el alias del dispositivo.Nombre de dispositivo persistente usando alias

Además, parece que ahora se requiere que UUID esté en minúsculas según los estándares internacionales.

DeTipo de carácter generado por UUID

Para aclarar, un UUID es en realidad un valor de 128 bits, no texto ni dígitos. Podrías considerarlos como enteros sin signo de 128 bits.

La última especificación internacional con fecha de 2008-08 establece (el énfasis es mío):

6.5.4 El software que genera la representación hexadecimal de un UUID no utilizará letras mayúsculas. NOTA – Se recomienda que la representación hexadecimal utilizada en todos los formatos legibles por humanos se limite a letras minúsculas. Sin embargo, se requiere que el software que procesa esta representación acepte letras mayúsculas y minúsculas, como se especifica en 6.5.2.

En cuanto a imprimir el UUID y el alias/DEVNAME

De util-linux/blkid.c es evidente que DEVNAME se imprime porque estás usando el-o export

} else if (ctl->output & OUTPUT_EXPORT_LIST) {
        if (num == 1 && devname)
            printf("DEVNAME=%s\n", devname); 

Entonces sospeché que sin -o exportél solo imprimiría el UUID y, de hecho:

$blkid -s UUID /dev/sda2
/dev/sda2: UUID="67169dd7-f319-4402-a9b2-cebcf2f3657a"
$ blkid -o export -s UUID /dev/sda2
DEVNAME=/dev/sda2
UUID=67169dd7-f319-4402-a9b2-cebcf2f3657a

información relacionada