Solución 1:
Otro comando que podría estar disponible y que también funciona bastante bien para esto es 'blkid'. Es parte del paquete e2fsprogs. Ejemplos de su uso:
Busque datos en /dev/sda1:
[email protected]:~$ sudo blkid /dev/sda1
/dev/sda1: UUID="727cac18-044b-4504-87f1-a5aefa774bda" TYPE="ext3"
Mostrar datos UUID para todas las particiones:
[email protected]:~$ sudo blkid
/dev/sda1: UUID="727cac18-044b-4504-87f1-a5aefa774bda" TYPE="ext3"
/dev/sdb: UUID="467c4aa9-963d-4467-8cd0-d58caaacaff4" TYPE="ext3"
Mostrar datos UUID para todas las particiones en un formato más fácil de leer:(Nota:en versiones más recientes, blkid -L
tiene un significado diferente, y blkid -o list
debería usarse en su lugar)
[email protected]:~$ sudo blkid -L
device fs_type label mount point UUID
-------------------------------------------------------------------------------
/dev/sda1 ext3 / 727cac18-044b-4504-87f1-a5aefa774bda
/dev/sdc ext3 /home 467c4aa9-963d-4467-8cd0-d58caaacaff4
Muestra solo el UUID para /dev/sda1 y nada más:
[email protected]:~$ sudo blkid -s UUID -o value /dev/sda1
727cac18-044b-4504-87f1-a5aefa774bda
Solución 2:
Solo para discos con particiones GPT
En un disco con formato GPT, a cada partición se le asigna un GUID, que es una forma de UUID, aunque probablemente no sea a lo que se refería el cartel original. Por lo tanto, esta respuesta probablemente sea menos útil para el interrogador original. Sin embargo, creo que hay una distinción importante a tener en cuenta.
Para obtener el GUID de la partición 1 en el disco con formato GPT /dev/sda, así como su etiqueta de partición, etc.:
sudo sgdisk -i 1 /dev/sda
o todos con:
ls -l /dev/disk/by-partuuid
Para arrancar con la raíz del sistema de archivos en una determinada partición, usaría la sintaxis de parámetros del kernel de Linux de:
root=PARTUUID=87654321-4321-4321-abcd-123456789012
En este caso, puede especificar solo el comienzo del UUID, lo suficiente para que sea único. Este parámetro es más primitivo y el kernel puede entenderlo antes en su proceso de arranque.
Hay una diferencia en la semántica entre estos:
Un disco contiene particiones, una partición contiene un sistema de archivos, un sistema de archivos contiene directorios y archivos. Para algunas configuraciones y sistemas operativos hay más capas.
El GUID UUID y la etiqueta asociada se refieren a una partición, pero no al contenido de la partición. Una partición nueva en el mismo disco o una partición en un disco nuevo tendrá un UUID de GUID nuevo. La misma partición podría contener un sistema de archivos un día y otro en un día diferente. Solo existe para discos con formato GPT, pero no para discos particionados heredados. Por lo general, no hay más utilidad aquí que especificar root=/dev/sda1
o root=8:1
.
Las otras respuestas actuales se refieren al UUID de un sistema de archivos en alguna partición contenedora. Si el sistema de archivos se copia, como un todo, a otra partición o disco duro, ese valor sigue siendo el mismo. Este UUID es útil para encontrar un sistema de archivos movido. Por lo tanto, esto es probablemente más pertinente para la mayoría de las personas. Parámetro del kernel de Linux root=UUID=87654321-4321-4321-a567-123456789012
se refiere a esto.
Creo root=LABEL=
y root=UUID=
son implementados por el espacio de usuario temprano, el código de inicio que vi el otro día en mi sistema tradujo estos parámetros a /dev/disk/by-uuid y /dev/disk/by-label (enlaces que creo que son creados por udev en el espacio de usuario en mi sistema).
[1] http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/init/do_mounts.c#n183
Solución 3:
La forma limpia de secuencias de comandos de hacer esto que funciona en cualquier tipo de sistema de archivos es:
lsblk -no UUID <device-containing-FS>
O, dado el punto de montaje (o cualquier archivo dentro de él):
lsblk -no UUID $(df -P <file> | awk 'END{print $1}')
El resultado es el UUID, el UUID completo y nada más que el UUID.
Solución 4:
La forma más fácil de hacer esto para ext2/ext3/ext4 es:
/sbin/tune2fs -l /dev/sda1
Solución 5:
La forma recomendada de hacer esto es hacer
sudo vol_id -u /dev/sda2
Para obtener más información sobre el uso de UUID, consulte este artículo (de la ayuda de ubuntu, pero debería funcionar para cualquier distribución de Linux que use UUID).
Como se indica en los comentarios a esta pregunta, es posible que vol_id no se interponga en su camino. En ubuntu está en /sbin, por lo que lo anterior funcionará. Para fedora parece necesitar
sudo /lib/udev/vol_id -u /dev/sda2
Si otras distribuciones tienen vol_id en otros lugares, publique un comentario y lo agregaré a esta respuesta.