GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie finde ich die UUID eines Dateisystems

Lösung 1:

Ein weiterer Befehl, der möglicherweise verfügbar ist und auch recht gut funktioniert, ist „blkid“. Es ist Teil des e2fsprogs-Pakets. Anwendungsbeispiele:

Suchen Sie Daten auf /dev/sda1:

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

UUID-Daten für alle Partitionen anzeigen:

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

UUID-Daten für alle Partitionen in einem leichter lesbaren Format anzeigen:(Hinweis:in neueren Versionen blkid -L hat eine andere Bedeutung und blkid -o list sollte stattdessen verwendet werden)

[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

Zeige nur die UUID für /dev/sda1 und sonst nichts:

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

Lösung 2:

Nur für GPT-partitionierte Festplatten

Auf einer GPT-formatierten Festplatte wird jeder Partition eine GUID zugewiesen, die eine Form der UUID ist, obwohl sie sich wahrscheinlich nicht auf das ursprüngliche Poster bezog. Daher ist diese Antwort für den ursprünglichen Fragesteller wahrscheinlich weniger hilfreich. Trotzdem glaube ich, dass es einen wichtigen Unterschied zu beachten gilt.

So erhalten Sie die GUID von Partition 1 auf der GPT-formatierten Festplatte /dev/sda, sowie ihre Partitionsbezeichnung und so weiter:

sudo sgdisk -i 1 /dev/sda

oder alle mit:

ls -l /dev/disk/by-partuuid

Um mit dem Stammverzeichnis des Dateisystems zu booten, das sich auf einer bestimmten Partition befindet, würden Sie die Parametersyntax des Linux-Kernels verwenden:

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

In diesem Fall können Sie nur den Anfang der UUID angeben – genug, um eindeutig zu sein. Dieser Parameter ist primitiver und kann vom Kernel früher in seinem Boot-Prozess verstanden werden.

Es gibt einen Unterschied in der Semantik zwischen diesen:

Eine Festplatte enthält Partitionen, eine Partition enthält ein Dateisystem, ein Dateisystem enthält Verzeichnisse und Dateien. Für einige Setups und Betriebssysteme gibt es mehrere Schichten.

Die GUID UUID und die zugehörige Bezeichnung beziehen sich auf eine Partition, aber nicht auf den Inhalt der Partition. Eine neue Partition auf derselben Festplatte oder eine Partition auf einer neuen Festplatte hat eine neue GUID UUID. Dieselbe Partition könnte an einem Tag ein Dateisystem und an einem anderen Tag ein anderes enthalten. Es existiert nur für GPT-formatierte Festplatten, aber nicht für ältere partitionierte Festplatten. Hier gibt es normalerweise nicht mehr Nutzen als die Angabe von root=/dev/sda1 oder root=8:1 .

Die anderen aktuellen Antworten beziehen sich auf die UUID eines Dateisystems in einer enthaltenden Partition. Wenn das Dateisystem als Ganzes auf eine andere Partition oder Festplatte kopiert wird, bleibt dieser Wert gleich. Diese UUID ist nützlich, um ein verschobenes Dateisystem zu finden. Daher ist dies wahrscheinlich für die meisten Menschen relevanter. Linux-Kernel-Parameter root=UUID=87654321-4321-4321-a567-123456789012 bezieht sich darauf.

Ich glaube root=LABEL= und root=UUID= werden von einem frühen Userspace implementiert, der Init-Code, den ich neulich auf meinem System gesehen habe, hat diese Parameter in /dev/disk/by-uuid und /dev/disk/by-label übersetzt (Links, von denen ich glaube, dass sie von udev im Userspace auf meinem erstellt werden System).

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

Lösung 3:

Der script-saubere Weg, dies auf jedem Dateisystemtyp zu tun, ist:

lsblk -no UUID <device-containing-FS>

Oder, wenn der Einhängepunkt (oder eine Datei darin) gegeben ist:

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

Die Ausgabe ist die UUID, die gesamte UUID und nichts als die UUID.

Lösung 4:

Der einfachste Weg, dies für ext2/ext3/ext4 zu tun, ist:

/sbin/tune2fs -l /dev/sda1

Lösung 5:

Der empfohlene Weg, dies zu tun, ist

sudo vol_id -u /dev/sda2

Weitere Informationen zur Verwendung von UUIDs finden Sie in diesem Artikel (aus der Ubuntu-Hilfe, sollte aber für jede Linux-Distribution funktionieren, die UUIDs verwendet).

Wie in den Kommentaren zu dieser Frage erwähnt, befindet sich vol_id möglicherweise nicht in Ihrem Pfad. Unter Ubuntu befindet es sich in /sbin, sodass das obige funktioniert. Für Fedora scheint es

zu benötigen
sudo /lib/udev/vol_id -u /dev/sda2

Wenn andere Distributionen vol_id an anderen Stellen haben, posten Sie einen Kommentar und ich werde ihn dieser Antwort hinzufügen.


Linux
  1. Wie finde ich den Offset eines Ext4-Dateisystems?

  2. CentOS / RHEL :So ändern Sie die UUID des Dateisystems

  3. Wie man die Ergebnisse von 'find' unter Linux an mv weiterleitet

  4. Wie finde ich den Standard-Dateimanager?

  5. Wie ändere ich die UUID des Dateisystems (2 gleiche UUID)?

So ändern Sie die UUID der Partition im Linux-Dateisystem

So finden Sie den gemounteten Dateisystemtyp in Linux

Wie kann man die Größe des Dateisystems erhöhen, um der Partition zu entsprechen?

So identifizieren Sie die UUID des Dateisystems in Linux:Das ultimative Tutorial

Wie ändere ich das Partitionsschema auf Ihrem Linux-Server?

Android - Wie finde ich den Pfadnamen der Swap-Partition auf der SD-Karte?