linux: come posso visualizzare tutti gli UUID per tutti i dischi disponibili sul mio sistema?


155

Il mio /etc/fstabcontiene questo:

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

Esistono molti altri dischi su questo sistema e non tutti i dischi vengono montati nella posizione corretta (ad esempio, / dev / sda1 e / dev / sdb1 sono talvolta invertiti).

Come posso vedere gli UUID per tutti i dischi sul mio sistema? Posso vedere l'UUID per il terzo disco su questo sistema?


La risposta di @setzamora è migliore. Modifica la risposta accettata.
nslntmnx il

Risposte:


135

In /dev/disk/by-uuidci sono collegamenti simbolici che mappano l'UUID di ogni unità alla sua voce in /dev(ad es. /dev/sda1)


3
Non è leggibile quando le partizioni LVM.
Grzegorz Wierzowiecki,

1
LVM utilizza già identificatori UUID lunghi (sebbene presentati in modo diverso) nella sua struttura. Penso che l'unica ragione per usare gli UUID del filesystem con LVM sia come interfaccia unificata per una sorta di automazione, dato che LVM fa già la mappatura di LV a nomi umani per te.
telcoM,

2
ls -lha /dev/disk/by-uuid
DeFreitas,

160

C'è uno strumento chiamato blkid(usalo come root o con sudo),

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

puoi controllare questo link per maggiori informazioni


12
Solo un piccolo commento: sembra che essere un membro del gruppo disksia sufficiente per essere eseguito blkid; non sono necessari privilegi di superutente completi.
arielf

10
Se vuoi solo l'UUID (come per l'analisi in uno script), puoi farlo blkid /dev/sda1 -s UUID -o value.
Jack O'Connor,

3
Breve commento qui: nella mia distribuzione (Debian 8) questo produce UUID e "PARTUUID", che è piuttosto confuso. Ho usato i comandi {lsblk} che danno un solo valore.
Takumar,

2
Questo fa risparmiare un sacco di tempo, anche se preferisco fare un blkid /dev/sd*elenco di tutte le unità. Le informazioni che sputano sono generalmente più che sufficienti per trovare l'unità che ti serve. :)
ZaLiTHkA

2
PARTUUID per dischi partizionati GPT è l'UUID GPT per la partizione, non per il filesystem in esso. Potrebbe essere utile quando non è ancora stato creato un filesystem. Su un disco partizionato MBR, PARTUUID non è un vero UUID, ma semplicemente una firma del disco di Windows dall'MBR + un trattino + numero di partizione.
telcoM,

32

Il miglior comando da usare è lsblk -f. Elencherà tutti i dispositivi e le partizioni, il modo in cui sono montati (se non del tutto) e la struttura ad albero dei dispositivi nel caso di utilizzo di LVM, crypto_LUKS o più gruppi di volumi sulla stessa unità.


10

Questo funziona per me:

ls -la /dev/disk/by-uuid

Se si desidera verificare il tipo di partizione, utilizzare:

df -Th

e ti mostrerà se hai ext3 o ext2. Oggi mi ha aiutato perché c'era una partizione ext2 formattata e ho pensato che fosse ext3, il che stava causando il fallimento del montaggio.


Si può sempre provare mount -t auto /dev/sda1 /media/sda1.
ott--

8

Per ottenere solo il UUIDdispositivo disco specifico (ad esempio da utilizzare in uno script) è possibile utilizzare:

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

dov'è /dev/sdXYil nome del dispositivo.


6
lsblk -o +uuid,name

Puoi vedere tutte le uscite che possono essere aggiunte a -o( --output) con

lsblk --help

Anche questo farà il lavoro

# blkid

Non è namestampato per impostazione predefinita?
don_crissti,

è. Aggiunto solo a scopo educativo (aggiungi la virgola per separare i campi che desideri)
Nico Rodsevich,

2

Le risposte precedenti non funzionano per più dispositivi o per dispositivi con UUID identici.

Prova questo:

sudo blkid /dev/sd*

1
Veramente ? Vuoi dire, la risposta più votata non funziona?
don_crissti,

Un identificatore univoco universale (UUID) dovrebbe essere sempre univoco. L'intero scopo di un UUID è quello di essere univoco, universalmente. In caso contrario, c'è un problema. Ho visto UUID duplicati in macchine virtuali clonate, almeno per i dispositivi di rete.
Stefan Lasiewski,

5
Se clonate una partizione con il ddcomando, la copia avrà lo stesso uuid e sì, questo è un problema. Le altre risposte qui non lo dimostrerebbero.
Kevin,

1

Con la seguente riga di comando puoi vedere UUID più il mapping alle partizioni.

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

Perché possiamo vedere l'UUID di
SDA

Esiste un UUID per un file system per partizione. Su sda, ho 4 partizioni, quindi avevo 4 UUID. wiki.debian.org/Part-UUID
Nicolas Guérinet il

1

Ho lo stesso problema come te: rinominare dal kernel /dev/sd**dopo un riavvio:

Ovviamente tutto il mio montaggio automatico /etc/fstabè indicato da LABEL o da UUID, quindi sostanzialmente non ci sono problemi. E tutti i comandi sopra, blkid o lsblk, forniscono questo tipo di informazioni.

Ma il problema inizia come nel mio caso, quando si utilizza la partizione in modalità RAW, nel punto di vista del sistema attualmente avviato: ad esempio: la partizione viene utilizzata come dispositivo non elaborato, per creare un disco virtuale per VirtualBox (quindi il riferimento a questa partizione è qualcosa di simile: /dev/sdf3) o la partizione viene utilizzato come dispositivo grezzo, per fare un LUN iSCSI (in modo che il riferimento a questa partizione è qualcosa di simile: /dev/sdc6)

Quindi ora all'avvio, ad esempio in rc.local, devi trovare in modo affidabile qual è il /dev/sdXXdispositivo della tua partizione RAW dedicata e adattare alcuni file:

ESEMPIO 1

Il disco VirtualBox * .vmk descrizione di questo disco grezzo, nella parte qualcosa come:

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

e quindi riavviare il servizio VirtualBox

ESEMPIO 2

nella configurazione di tgtd, un target: target0 era associato /dev/sdd6al momento della compilazione. Dopo il riavvio si ottiene la stessa partizione rinominata. /deb/sdc6 Questo accade con un disco rimovibile, USB o eSATA! Quindi, come trovare automaticamente il nuovo dispositivo? Ancora in /etc/rc.d/rc.local

Quindi in questo caso abbiamo bisogno di un modo affidabile per trovare qual è il nome del nuovo dispositivo. La partizione GPT offre un GUID univoco per qualsiasi partizione GPT, scritta nella tabella GPT.

gdisk non fornisce queste informazioni con la modalità elenco, ma solo in modalità interattiva con il comando: i. Fortunatamente, Blkid lo fa!

Quindi è necessario scrivere uno script shell, per cercare in tutti i dischi, che è il dispositivo /dev/sdXX, associato al GUID notato al momento della creazione della partizione.

Qualcosa di simile, 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

e poi usa /dev/shm/blkdevice, nel tuo script rc.local.


0

Per vedere il uuido di una partizione del disco rigido, devo solo avviare il sistema con un CD Linux e andare al mio computer, fare clic su, la partizione che voglio vedere. Verrà visualizzato il numero uuid della partizione Linux.

Puoi anche vedere il uuid del disco eseguendo l'utility Disco Linux dopo l'avvio del CD Linux.


Che cos'è "il mio computer mount"? E cos'è "Linux Disk utility", sembra gnome-disk-utility aka Disks?
Xen2050,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.