linux: ¿Cómo puedo ver todos los UUID de todos los discos disponibles en mi sistema?


155

Mi /etc/fstabcontiene esto:

# / was on /dev/sda1 during installation
UUID=77d8da74-a690-481a-86d5-9beab5a8e842 /               ext4    errors=remount-ro 0       1

Hay varios otros discos en este sistema, y ​​no todos los discos se están montando en la ubicación correcta (por ejemplo, / dev / sda1 y / dev / sdb1 a veces se invierten).

¿Cómo puedo ver los UUID para todos los discos de mi sistema? ¿Puedo ver el UUID para el tercer disco en este sistema?


La respuesta de @setzamora es mejor. Por favor, cambie la respuesta aceptada.
nslntmnx

Respuestas:


135

En /dev/disk/by-uuidhay enlaces simbólicos que asignan el UUID de cada unidad a su entrada en /dev(por ejemplo /dev/sda1)


3
No es legible cuando las particiones LVM.
Grzegorz Wierzowiecki

1
LVM ya usa identificadores largos similares a UUID (aunque se presentan de manera diferente) en su estructura. Creo que la única razón para usar UUID del sistema de archivos con LVM sería como una interfaz unificada para algún tipo de automatización, ya que LVM ya hace el mapeo de LV a nombres amigables para usted.
telcoM

2
ls -lha /dev/disk/by-uuid
deFreitas

160

Hay una herramienta llamada blkid(úsela como root o con sudo),

# blkid /dev/sda1
/dev/sda1: LABEL="/" UUID="ee7cf0a0-1922-401b-a1ae-6ec9261484c0" SEC_TYPE="ext2" TYPE="ext3"

puedes consultar este enlace para más información


12
Solo un pequeño comentario: parece que ser miembro del grupo diskes suficiente para ejecutar blkid; sin necesidad de privilegios completos de superusuario.
arielf

10
Si solo desea el UUID (como para analizar un script), puede hacerlo blkid /dev/sda1 -s UUID -o value.
Jack O'Connor

3
Comentario rápido aquí: en mi distribución (Debian 8) esto produce UUID y "PARTUUID", lo cual es bastante confuso. Usé los comandos {lsblk} que solo dan un valor.
takumar

2
Esto ahorra una gran cantidad de tiempo, aunque prefiero hacer blkid /dev/sd*una lista de todas las unidades. La información que escupe generalmente es más que suficiente para encontrar la unidad que necesita. :)
ZaLiTHkA

2
PARTUUID para discos con particiones GPT es el UUID GPT para la partición, no para el sistema de archivos que contiene. Puede ser útil cuando aún no se ha creado un sistema de archivos. En un disco con particiones MBR, PARTUUID no es un UUID real, sino simplemente una Firma de disco de Windows del MBR + un guión + número de partición.
telcoM

32

El mejor comando para usar es lsblk -f. Enumerará todos los dispositivos y particiones, cómo se montan (si es que lo hacen) y la estructura de árbol de los dispositivos en el caso de usar LVM, crypto_LUKS o múltiples grupos de volúmenes en la misma unidad.


10

Esto funciona para mi:

ls -la /dev/disk/by-uuid

Si desea verificar de qué tipo es la partición, use:

df -Th

y te mostrará si tienes ext3 o ext2. Hoy me ayudó porque había una partición ext2 formateada y pensé que era ext3, lo que hacía que fallara el montaje.


Siempre puedes intentarlo mount -t auto /dev/sda1 /media/sda1.
ott--

8

Para obtener solo UUIDun dispositivo de disco específico (por ejemplo, para usar en un script) puede usar:

sudo blkid -s UUID -o value /dev/sdXY

donde /dev/sdXYestá el nombre del dispositivo.


6
lsblk -o +uuid,name

Puede ver todas las salidas que se pueden agregar a -o( --output) con

lsblk --help

También esto hará el trabajo

# blkid

¿No se nameimprime por defecto?
don_crissti

es. Se agregó solo con fines educativos (agregue la coma para separar los campos que desee)
Nico Rodsevich

2

Las respuestas anteriores no funcionan para múltiples dispositivos o para dispositivos con UUID idénticos.

Prueba esto:

sudo blkid /dev/sd*

1
De Verdad ? ¿Quieres decir que la respuesta más votada no funciona?
don_crissti

Un identificador universalmente único (UUID) siempre debe ser único. El propósito completo de un UUID es ser único, universalmente. Si no, hay un problema. He visto UUID duplicados en máquinas virtuales clonadas, al menos para dispositivos de red.
Stefan Lasiewski

55
Si clonas una partición con el ddcomando, la copia tendrá el mismo uuid y sí, eso es un problema. Las otras respuestas aquí no mostrarían eso.
Kevin

1

Con la siguiente línea de comando puede ver UUID más la asignación a particiones.

ls /dev/disk/by-uuid -lt

lrwxrwxrwx 1 root root 10 Sep  1 18:51 57eacf4e-1940-436e-b945-85f8d4833aa5 -> ../../sda2
lrwxrwxrwx 1 root root 10 Sep  1 18:51 656f4cae-8527-43a0-a80f-00ac82818744 -> ../../sda1
lrwxrwxrwx 1 root root  9 Sep  1 18:51 d627595d-4060-440e-8380-a1fe9f3f2a81 -> ../../md0
lrwxrwxrwx 1 root root 10 Sep  1 18:51 0dfd6dfe-1852-460d-852c-676a5b9035ed -> ../../sda4
lrwxrwxrwx 1 root root 10 Sep  1 18:51 b1ddf850-8f81-429f-a653-38ae4a4ebb6f -> ../../sda3
lrwxrwxrwx 1 root root  9 Sep  1 18:51 b4b729f7-5699-411c-8f5a-424bbc7c89fc -> ../../sdb

¿Por qué podemos ver el UUID de SDA
Honghe.Wu

Hay un UUID para un sistema de archivos por partición. En sda, tengo 4 particiones, así que tuve 4 UUID. wiki.debian.org/Part-UUID
Nicolas Guérinet

1

Tengo el mismo problema que tú: renombrar por núcleo /dev/sd**después de reiniciar:

Por supuesto, /etc/fstabLABEL o UUID hacen referencia a todos mis montajes automáticos , por lo que básicamente no hay problema para eso. Y todos los comandos anteriores, blkid o lsblk, brindan este tipo de información.

Pero el problema comienza como en mi caso, cuando está utilizando la partición en modo RAW, en el punto de vista del sistema actualmente arrancado: por ejemplo, ya sea: la partición se usa como dispositivo sin formato, para hacer un disco virtual para VirtualBox (entonces la referencia a esta partición es algo como: /dev/sdf3) o la partición se utiliza como dispositivo en bruto, para hacer un LUN para iSCSI (por lo que la referencia a esta partición es algo como: /dev/sdc6)

Entonces, ahora en el arranque, por ejemplo en rc.local, debe encontrar de manera confiable cuál es el /dev/sdXXdispositivo de su partición RAW dedicada y adaptar algún archivo:

EJEMPLO 1

La descripción del disco VirtualBox * .vmk de este disco sin formato, en la parte algo así como:

\# Extent description
RW 488397167 FLAT "/dev/sdXX" 0

y luego reinicie el servicio VirtualBox

EJEMPLO 2

en la configuración tgtd, un objetivo: target0 estaba asociado /dev/sdd6en el momento de la compilación. Después de reiniciar, obtienes el mismo nombre de partición. /deb/sdc6 Esto sucede con un disco extraíble, USB o eSATA Entonces, ¿cómo encontrar el nuevo dispositivo automáticamente? De nuevo en /etc/rc.d/rc.local

Entonces, en este caso, necesitamos una manera confiable para encontrar cuál es el nuevo nombre del dispositivo. La partición GPT ofrece un GUID único para cualquier partición GPT, escrita en la tabla GPT.

gdisk no proporciona esta información con el modo de listado, sino solo en modo interactivo con: comando i. Afortunadamente, ¡blkid lo hace!

Por lo tanto, debe escribir un script de shell para buscar en todos sus discos, que es el dispositivo /dev/sdXX, asociado al GUID detectado en el momento de la creación de la partición.

Algo así como, search_device_by_partUUID.sh:

\#!/bin/bash

PART_UUID=$1
if [ "$PART_UUID" = "" ]
then
    echo "Syntax: $0 <a valid partition UUID>"
    exit 3
fi
lsblk | grep '^sd' | awk '{print $1}' | while read DISK_DEVICE
do 
    INFO=`blkid /dev/${DISK_DEVICE}* | grep "PARTUUID=\"$PART_UUID\"" `
    if [ "$INFO" != "" ]
    then
        echo INFO : "$INFO"
        BLK_DEVICE=`echo "$INFO" | awk '{print $1}'`
        echo $BLK_DEVICE > /dev/shm/blkdevice
        echo -n "BLK_DEVICE : " ; cat /dev/shm/blkdevice
    fi
done

y luego use /dev/shm/blkdevice, en su script rc.local.


0

Para ver el uuid de una partición del disco duro, simplemente inicio el sistema con un CD de Linux y voy al soporte de mi computadora, haga clic en la partición que quiero ver. Se mostrará el número uuid de la partición de Linux.

También puede ver el uuid del disco ejecutando la utilidad Linux Disk después del arranque del CD de Linux.


¿Qué es "el montaje de mi computadora"? ¿Y qué es "Utilidad de disco de Linux", suena como gnome-disk-utility aka Disks?
Xen2050
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.