UUID

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. Ein Terminal öffnen

Inhaltsverzeichnis
  1. Die UUID
  2. UUIDs anzeigen
  3. UUIDs verändern
  4. Links

Die UUID

UUID steht für Universally Unique Identifier und bezeichnet nach einem bestimmten Standard formatierte Identifikationsnummern. Diese sehen etwa so aus:

Jedes Linux-Dateisystem besitzt einen UUID, über den es identifiziert werden kann. Zwar kann man das auch über die Geräte-Dateien /dev/sdaX tun, aber die Nummerierung kann sich hier ändern - z.B. beim Vertauschen von Kabeln. Andere Eigenschaften wie Label oder Größe des Dateisystems garantieren keine Eindeutigkeit. Vergleichen kann man den UUID also mit einer Personalausweisnummer: Zwei Personen können den gleichen Namen tragen, sie haben aber trotzdem unterschiedliche Ausweisnummern.

UUIDs werden üblicherweise mit Verfahren erzeugt, die darauf ausgelegt sind, dass ein solcher Identifikator eindeutig ist. Die Wahrscheinlichkeit, dass zwei generierte UUIDs gleich sind, ist also verschwindend gering. Bei der Verwendung solcher eindeutigen Identifikationsnummern sind der Phantasie keine Grenzen gesetzt; in diesem Artikel geht es nur um den Einsatz bei Dateisystemen.

Seit Ubuntu 6.10 wurden die im System vorhandenen Dateisysteme (inklusive Swap) in der fstab standardmäßig mittels UUID angesprochen.

Seit Ubuntu 9.10 wird bei Neuinstallationen auf Grund des Wechsels auf GRUB 2 nicht mehr die menu.lst, sondern die grub.cfg mitsamt der UUIDs erstellt.

Übersicht

Die Windows-Dateisysteme FAT und NTFS verwenden keine UUIDs, sondern die "Volume Serial Number". Unter Linux wird diese vom Dateisystemtreiber als UUID-Ersatz verwendet. Die Volume Serial Number ist deutlich kürzer als ein UUID und garantiert daher keine Eindeutigkeit:

Vergleich verschiedener Identifikatoren
Typ UUID Serial Number (NTFS) Serial Number (FAT)
Format xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx xxxxxxxxxxxxxxxx xxxx-xxxx
Länge 16 Bytes (32 Zeichen, mit 4 Bindestrichen in 5 Gruppen aufgeteilt) 8 Bytes 4 Bytes
Anzahl der möglichen Identifikatoren 28·16 ≈ 3.4 · 1038 28·8 ≈ 18 · 1018 28·4 ≈ 4.3 · 109

Zuordnung Windows Partitionen

Um eine eindeutige Zuordnung einer Windows-Partition für Arbeiten unter Ubuntu zu erhalten, kann man die "Volume Serial Number" einer Partitionen unter Windows abfragen. Dazu muss man im Windows die

aufrufen und dort beispielhaft für die Abfrage vom Volume / Laufwerk C: eingeben:

vol c: 

Man erhält dann eine Ausgabe, die für alle Laufwerke, unabhängig von der Formatierung (VFAT, NTFS), beispielhaft lautet:

E0CF-1F83

Hinweis:

Diese so ermittlte HEX-Zahl kann man für VFAT direkt einsetzen. Bei Partitionen formatiert mit NTFS muss man diese Ausgabe noch linux-konform aufbereiten.

Dazu gibt man dann im selben Rechner im Linux-Terminal [1] ein:

sudo blkid | grep 'E0CF1F83' 

ein und erhält dann:

/dev/sda3: LABEL="HOME-PC-PROG" UUID="A6E0CF4AE0CF1F83" TYPE="ntfs"

Mit dieser 8 Bytes langen, Linux-konformen UUID kann man dann die relevanten Arbeiten unter Ubuntu ausführen.

UUIDs anzeigen

Hinweis:

Der Befehl blkid benötigt für den ersten Aufruf grundsätzlich root-Rechte.

Des Weiteren sollte man auf jeden Fall beachten, dass die UUIDs nach dem ersten Aufruf in der Datei /etc/blkid.tab zwischengespeichert werden. Nach dem ersten Aufruf wird dann nur noch diese Datei ausgelesen, anstatt alle Datenträger erneut abzufragen. Informationen, wie man dieses Verhalten verhindern kann, findet man im Artikel blkid.

Alternativ kann seit Ubuntu 12.04 auch lsblk verwendet werden.

Die UUID einer Partition lässt sich mit dem Befehl [1]:

sudo blkid /dev/sdaX 

betrachten, wobei /dev/sdaX durch die Bezeichnung der Partition ersetzt werden muss.

Möchte man jedoch alle vorhandenen Dateisysteme betrachten, lautet der Befehl:

sudo blkid 

oder

ls -Al /dev/disk/by-uuid 

Mehr Informationen findet man im Artikel zu blkid.

UUIDs verändern

Artikel für fortgeschrittene Anwender

Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.

Der UUID wird beim Formatieren eines Laufwerks automatisch generiert und braucht normalerweise nicht geändert zu werden. In gewissen Fällen kann dies aber sinnvoll sein, z.B. nach einer Festplattenspiegelung, bei der der UUID mitkopiert wurde. Je nach verwendetem Dateisystem sind hierfür unterschiedliche Befehle erforderlich. Generell sollte man jedoch vorher unbedingt ein Backup anlegen und das Dateisystem aushängen.

Hinweis:

Im folgenden muss /dev/sdaX jeweils durch die Bezeichnung der zu ändernden Partition ersetzt werden.

Ext2/3/4

sudo tune2fs -U NEUER_UUID /dev/sdaX 

Hierbei kann NEUER_UUID entweder ein (z.B. mit uuidgen) selbst erstellter UUID sein oder eines dieser Schlüsselwörter:

Reiserfs

sudo reiserfstune -u NEUER_UUID /dev/sdaX 

NEUER_UUID muss ein gültiger UUID sein. Um automatisch mit uuidgen einen zufälligen UUID zu erzeugen, kann man diesen Befehl verwenden:

sudo reiserfstune -u $(uuidgen) /dev/sdaX 

Swap

Die Funktion zum Setzen des UUID von Swap-Dateisystemen wurde erst mit Ubuntu 8.04 eingeführt.

sudo swapoff -v /dev/sdaX
sudo mkswap -U NEUER_UUID /dev/sdaX
sudo swapon -v /dev/sdaX 

Es existiert ein Skript, das die UUID aus /etc/fstab automatisch übernimmt: uuid2swap.

Verschlüsselte Partitionen

sudo cryptsetup luksUUID /dev/sdaX --uuid NEUER_UUID 

RAID-Partitionen

sudo mdadm --assemble /dev/mdX --update=uuid --uuid NEUER_UUID 

FAT / NTFS

Experten-Info:

Änderungen an den Windows Partitionen sollte man ausschließlich unter Windows vornehmen, damit Windows diese Veränderung erkennt und richtig verarbeitet - externe Eingriffe können zu weitreichenden Fehlern führen.

Wie bereits erwähnt, kommt beim Windows-Dateisystemen keine UUID zum Einsatz, sondern eine Seriennummer.

Um diese auszulesen bzw. zu ändern - kann man ein entsprechendes Windowsprogramm (z.B. die Anwendung HardDiskSerialNumberChanger.exe) benutzen.