135 votos

¿Cómo puedo encontrar el UUID de un sistema de ficheros

Estoy corriendo Ubuntu, y quieres saber el UUID de un determinado sistema de ficheros (no de la partición). Sé que puedo usar e2label /dev/sda1 a averiguar la etiqueta del sistema de archivos, pero no parece ser una manera similar a encontrar la UUID.

167voto

Android Eve Puntos 545

Otro comando que podría estar disponible y también funciona muy bien para esto es 'blkid'. Es parte del paquete e2fsprogs. Ejemplos de su uso:

Buscar datos en /dev/sda1:

topher@crucible:~$ sudo blkid /dev/sda1
/dev/sda1: UUID="727cac18-044b-4504-87f1-a5aefa774bda" TYPE="ext3"

Mostrar UUID de datos de todas las particiones:

topher@crucible:~$ sudo blkid
/dev/sda1: UUID="727cac18-044b-4504-87f1-a5aefa774bda" TYPE="ext3"
/dev/sdb: UUID="467c4aa9-963d-4467-8cd0-d58caaacaff4" TYPE="ext3"

Mostrar UUID de datos de todas las particiones en más fácil de leer formato: (Nota: en las versiones más recientes, blkid -L tiene un significado diferente, y blkid -o list debe utilizarse en su lugar)

topher@crucible:~$ 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

Mostrar sólo el UUID de /dev/sda1 y nada más:

topher@crucible:~$ sudo blkid -s UUID -o value /dev/sda1
727cac18-044b-4504-87f1-a5aefa774bda

10voto

John S Gruber Puntos 121

Para GPT Particiones de Discos Sólo

En un GPT disco formateado cada partición se le asigna un GUID, que es una forma de UUID, aunque, probablemente, no lo que el cartel original se refería. Por lo tanto, esta respuesta es que probablemente es menos útil que el original interrogador. Sin embargo, yo creo que hay una distinción importante para ser notado.

Para obtener el GUID de la partición 1 en el GPT formato de disco /dev/sda, así como su etiqueta de la partición y así sucesivamente:

sudo sgdisk -i:1 /dev/sda

o todos con:

ls -l /dev/disk/by-partuuid

Para arrancar con la root del sistema de archivos en una partición concreta tendría que usar el kernel de linux sintaxis de los parámetros de:

root=PARTUUID=87654321-4321-4321-abcd-123456789012

En este caso, puede especificar sólo el comienzo de la UUID-lo suficiente para ser único. Este parámetro es más primitivo y puede ser entendido por el kernel antes, en su proceso de arranque.


Hay una diferencia semántica entre estos:

Un disco tiene particiones, la partición tiene un sistema de archivos un sistema de archivos contiene los directorios y archivos. Para algunos set-ups y sistemas operativos hay más capas.

El GUID UUID y asociados de la etiqueta referencia a una partición, pero no la partición del contenido. Una nueva partición en el mismo disco o una partición en un disco nuevo va a tener un nuevo GUID UUID. La misma partición podría mantener un sistema de archivo de un día, y otro en un día diferente. Sólo existe para los discos con formato GPT, pero no para el legado de particiones de los discos. Usualmente no hay más utilidad que la especificación root=/dev/sda1 o root=8:1.

La otra corriente respuestas hacen referencia a la UUID de un sistema de archivos en algunos contienen partición. Si el sistema de archivos se copian, como un todo, a otra partición o disco duro que el valor sigue siendo el mismo. Este UUID es útil en la búsqueda de un movido sistema de archivos. Por lo tanto, esta es probablemente la más pertinente para la mayoría de la gente. El kernel de Linux parámetro root=UUID=87654321-4321-4321-a567-123456789012 se refiere a esto.

Creo root=LABEL= y root=UUID= son implementados por los principios de espacio de usuario, el código de inicialización vi el otro día en mi sistema traducida estos parámetros a /dev/disk/by-uuid /dev/disk/by-label (links 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

5voto

Eddie Puntos 6779

La manera más fácil de hacer esto para ext2/ext3/ext4 es:

/sbin/tune2fs -l /dev/sda1

3voto

zigdon Puntos 101

La forma recomendada de hacerlo es hacer

sudo vol_id -u /dev/sda2

Para más información sobre el uso de los Uuid, consulte este artículo (de ayuda de ubuntu, pero debería funcionar para cualquier distro de linux usando Uuid).

Como se señaló en los comentarios a esta pregunta, vol_id no puede estar en su camino. En ubuntu es en /sbin por lo que la anterior trabajo. Para fedora parece necesario

sudo /lib/udev/vol_id -u /dev/sda2

Si otras distribuciones tienen vol_id en otros lugares, a continuación, publicar un comentario y lo añadiré a esta respuesta.

2voto

Omar Shahine Puntos 886

Si desea que el UUID para sda1, usted podría intentar algo como esto:

for v in /dev/disk/by-uuid/* ; do echo "`readlink $v`: $v" | grep ../sda1 | cut -d\: -f2 | cut -d/ -f5 ; done

Ajustar sda1 en consecuencia. Para obtener el Uuid para todas las particiones, la caída de la greps y cortadas, la:

for v in /dev/disk/by-uuid/* ; do echo "`readlink $v`: $v" ; done

Ejemplo de salida para sda1 en mi escritorio:

[mihailim@home ~]$ for v in /dev/disk/by-uuid/* ; do echo "`readlink $v`: $v" | grep ../sdb3 | cut -d\: -f2 | cut -d/ -f5 ; done
dc8c49f1-e2dc-46bc-ba02-013f26c85f70

Edit: por Favor, tenga en cuenta que esta solución, mientras que el más artificial de la udev->vol_id uno, ¿ no se requieren privilegios de root, va a trabajar en cualquiera de los post-2005 o núcleo, y se basa en las herramientas presentes en cualquier distribución de Linux que están por defecto en la ruta de acceso para cualquier usuario.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: