Un UUID (identificador único universal) es un código de 128 bits que se utiliza para identificar dispositivos de bloque (almacenamiento). En primer lugar, ¿para esto se utilizan todos los UUID?
¿Cómo obtiene un dispositivo su UUID?
¿Alguna vez cambia? Por ejemplo, ¿en cada startup? ¿Cuándo se instala un nuevo sistema operativo?
¿Cómo se genera un UUID? ¿Es aleatorio?
La mayoría de las computadoras no tienen más de 10 dispositivos de almacenamiento. ¿Por qué la necesidad de tantos nombres diferentes?
Respuesta1
El concepto se describe enRFC 4122que define los diversos algoritmos para generarUUIDs. La variante 4 utiliza números aleatorios y es la más común.
Los UUID se utilizan en muchos escenarios, algunos ejemplos son:
- Etiquetar particiones y sistemas de archivos es el uso más común en Linux
- Network Manager los utiliza para identificar dispositivos y conexiones de red.
- Los hipervisores, como Virtual Box y Qemu-KVM, los utilizan para identificar máquinas virtuales.
- Se utilizan dentro de Microsoft Windows donde se les conoce comoGUIDs
- Se utilizan para la unicidad dentrobases de datos
- Se utilizan endesarrollo de software
Dentro de Linux, todas las distribuciones vienen con el util-linux
paquete, que entre otras cosas tiene el uuidgen
comando para generar UUID. Se trata de una interfaz libuuid
que genera UUID aleatorios de forma predeterminada o basados en el tiempo si no hay suficiente entropía disponible.
La utilidad que utilice para crear una partición o sistema de archivos generará el UUID, que permanecerá con esa partición/sistema de archivos hasta que los vuelva a crear o cambie explícitamente el UUID (por ejemplo, con tune2fs
)
Los UUID se utilizan con sistemas de archivos y particiones para darles un nombre coherente (aunque muy largo). Esto evita el escenario en el que el BIOS del firmware UEFI en un sistema de dos HDD enumera el disco duro de modo que el disco de su sistema se asigna /dev/sda
en un inicio y /deb/sdb
en el siguiente (tal vez el primer disco tardó más en iniciarse en el segundo inicio).
Usando el método de nomenclatura tradicional, esto causaría estragos en su /etc/fstab
archivo ya que su sistema buscaría particiones en el disco equivocado para montar. Por ejemplo, aquí está mi entrada de intercambio:
/dev/sda4 none swap defaults 0 0
Si los discos se hubieran asignado de manera diferente en el arranque, mi sistema no encontraría una cuarta partición de tipo swap
en el disco que no es del sistema (OK, estoy en una computadora portátil, por lo que no tiene un segundo disco, pero obtienes el punto) y mi intercambio fallaría.
Al etiquetarlos con UUID y utilizarlos, /etc/fstab
se garantiza que se montará el sistema de archivos correcto en todo momento. Por ejemplo:
UUID=d8ab8967-f2de-4c76-902f-d8d9707c399e /media/files ext4 defaults 0 0
siempre montará la partición con ese UUID /media/files
independientemente del orden en que la BIOS (o el firmware UEFI) las etiquete en el arranque.