GNU/Linux >> Linux Esercitazione >  >> Linux

Come trovo l'UUID di un filesystem

Soluzione 1:

Un altro comando che potrebbe essere disponibile e che funziona abbastanza bene per questo è 'blkid'. Fa parte del pacchetto e2fsprogs. Esempi del suo utilizzo:

Cerca i dati su /dev/sda1:

[email protected]:~$ sudo blkid /dev/sda1
/dev/sda1: UUID="727cac18-044b-4504-87f1-a5aefa774bda" TYPE="ext3"

Mostra dati UUID per tutte le partizioni:

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

Mostra i dati UUID per tutte le partizioni in un formato più leggibile:(Nota:nelle versioni più recenti, blkid -L ha un significato diverso e blkid -o list dovrebbe essere usato invece)

[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

Mostra solo l'UUID per /dev/sda1 e nient'altro:

[email protected]:~$ sudo blkid -s UUID -o value /dev/sda1
727cac18-044b-4504-87f1-a5aefa774bda

Soluzione 2:

Solo per dischi partizionati GPT

Su un disco formattato GPT a ciascuna partizione viene assegnato un GUID, che è una forma di UUID, anche se probabilmente non è quello a cui si riferiva il poster originale. Pertanto questa risposta è probabilmente meno utile per l'interrogante originale. Tuttavia credo che ci sia un'importante distinzione da notare.

Per ottenere il GUID della partizione 1 sul disco formattato GPT /dev/sda, nonché l'etichetta della partizione e così via:

sudo sgdisk -i 1 /dev/sda

o tutti con:

ls -l /dev/disk/by-partuuid

Per eseguire l'avvio con la radice del file system su una determinata partizione, dovresti usare la sintassi dei parametri del kernel linux di:

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

In questo caso è possibile specificare solo l'inizio dell'UUID, sufficiente per essere univoco. Questo parametro è più primitivo e può essere compreso dal kernel all'inizio del suo processo di avvio.

C'è una differenza semantica tra questi:

Un disco contiene partizioni, una partizione contiene un file system, un file system contiene directory e file. Per alcune configurazioni e sistemi operativi ci sono più livelli.

L'UUID GUID e l'etichetta associata fanno riferimento a una partizione, ma non al contenuto della partizione. Una nuova partizione sullo stesso disco o una partizione su un nuovo disco avrà un nuovo UUID GUID. La stessa partizione potrebbe contenere un file system un giorno e un altro in un giorno diverso. Esiste solo per i dischi formattati GPT, ma non per i dischi partizionati legacy. Di solito qui non c'è più utilità che specificare root=/dev/sda1 o root=8:1 .

Le altre risposte attuali si riferiscono all'UUID di un file system in qualche partizione contenente. Se il file system viene copiato, nel suo insieme, in un'altra partizione o disco rigido, tale valore rimane lo stesso. Questo UUID è utile per trovare un file system spostato. Quindi questo è probabilmente più pertinente per la maggior parte delle persone. Parametro del kernel Linux root=UUID=87654321-4321-4321-a567-123456789012 si riferisce a questo.

Credo root=LABEL= e root=UUID= sono implementati dal primo spazio utente, il codice init che ho visto l'altro giorno sul mio sistema ha tradotto questi parametri in /dev/disk/by-uuid e /dev/disk/by-label (i collegamenti che credo siano creati da udev nello spazio utente sul mio sistema).

[1] http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/init/do_mounts.c#n183

Soluzione 3:

Il modo script-clean per farlo che funziona su qualsiasi tipo di filesystem è:

lsblk -no UUID <device-containing-FS>

Oppure, dato il punto di montaggio (o qualsiasi file al suo interno):

lsblk -no UUID $(df -P <file> | awk 'END{print $1}')

L'output è l'UUID, l'intero UUID e nient'altro che l'UUID.

Soluzione 4:

Il modo più semplice per farlo per ext2/ext3/ext4 è:

/sbin/tune2fs -l /dev/sda1

Soluzione 5:

Il modo consigliato per farlo è fare

sudo vol_id -u /dev/sda2

Per ulteriori informazioni sull'utilizzo degli UUID, consulta questo articolo (dalla guida di Ubuntu, ma dovrebbe funzionare per qualsiasi distribuzione Linux che utilizza gli UUID).

Come notato nei commenti a questa domanda, vol_id potrebbe non essere nel tuo percorso. Su Ubuntu è in /sbin quindi quanto sopra funzionerà. Per fedora sembra aver bisogno di

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

Se altre distribuzioni hanno vol_id in altri posti, pubblica un commento e lo aggiungerò a questa risposta.


Linux
  1. Come creare un filesystem su una partizione Linux o un volume logico

  2. Come trovare l'offset di un filesystem Ext4?

  3. Come aumentare le dimensioni del filesystem per abbinare la partizione?

  4. Come trovare le opzioni di montaggio del filesystem attualmente montato

  5. Come reindirizzare i risultati di "trova" a mv in Linux

Come modificare l'UUID della partizione nel filesystem Linux

Come trovare il tipo di filesystem montato in Linux

Come identificare l'UUID del filesystem in Linux:l'esercitazione definitiva

Come modificare lo schema di partizione sul tuo server Linux?

Android - Come trovare il percorso della partizione di swap sulla scheda SD?

Come montare un filesystem in un ambiente di sola lettura?