ubuntuusers.de

Du betrachtest eine alte Revision dieser Wikiseite.

UUID

Fehlendes Makro

Das Makro „Diskussion“ konnte nicht gefunden werden.

Fehlendes Makro

Das Makro „Getestet“ konnte nicht gefunden werden.

 * [1]: [:Terminal: Ein Terminal öffnen]

UUID steht für Universally Unique Identifier und bezeichnet nach einem bestimmten standardformatierte Identifikationsnummern. Diese sehen etwa so aus: 6a12a4d5-e9e6-4568-afcc-34c70b24a668

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.

Jedes Linux-Dateisystem besitzt einen UUID, über den es identifiziert werden kann. Zwar kann man das auch über die Device-Dateien /dev/sdaX tun, aber die Numerierung 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 verschiedene Ausweisnummern.

Seit Feisty Fawn werden die im System vorhandenen Dateisysteme (inklusive Swap) in der fstab und in der menu.lst standardmäßig mittels UUID angesprochen.

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
TypUUIDSerial Number (NTFS)Serial Number (FAT)
Formatxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxxx
Länge16 Bytes8 Bytes4 Bytes
Anzahl der möglichen Identifikatoren2^8·16^ ≈ 3.4 · 10^38^2^8·8^ ≈ 18 · 10^18^2^8·4^ ≈ 4.3 · 10^9^

⚓︎

UUIDs anzeigen

Mit dem Befehl [1]

blkid /dev/sda1

erhält man den UUID (und weitere Details) des Dateisystems auf /dev/sda1. Alle UUIDs der vorhandenen Dateisysteme liefert

blkid

oder

ls -Al /dev/disk/by-uuid

⚓︎

UUIDs verändern

Fehlendes Makro

Das Makro „Fortgeschritten“ konnte nicht gefunden werden.

Der UUID wird beim Formatieren eines Laufwerks automatisch generiert und muss normalerweise nicht geändert 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 unbedingt ein Backup anlegen, und das Dateisystem aushängen.

Im folgenden muss `/dev/sdaX` jeweils durch die Bezeichung der zu ändernden Partition ersetzt werden. Unter Umständen benötigt man [:sudo:Root-Rechte].

Ext2/3

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:

  • random - setzt einen zufälligen UUID

  • time - setzt einen aus der aktuellen Uhrzeit generierten UUID

  • clear - Abkürzung für 00000000-0000-0000-0000-000000000000

Reiserfs

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:

reiserfstune -u $(uuidgen) /dev/sdaX

Swap

Derzeit ist es nicht ohne weiteres möglich, den UUID des Swap-Dateisystems zu ändern. Eine Beta-Version eines Programms für diese Aufgabe findet man bei launchpad.net 🇬🇧

FAT / NTFS

Wie bereits erwähnt, kommt bei den Windows-Dateisystemen kein UUID zum Einsatz, sondern eine Seriennummer. Um diese zu bearbeiten, benötigt man Handarbeit: Zunächst extrahiert man die aktuelle Serial mit

dd if=/dev/sdaX of=/tmp/serial bs=1 skip=POS count=SIZE

Die Werte für POS und SIZE sind gemäß dieser Tabelle zu wählen:

FAT16FAT32NTFS
POS396772
SIZE448

Nun kann man die Datei /tmp/serial mit einem Hex-Editor (z.B. ghex2 oder khexedit) öffnen und bearbeiten. Sie sollte nichts weiter als die Seriennummer enthalten, und zwar im Little Endian-Format 🇩🇪 (also "rückwärts"). Zunächst sollte man sich davon überzeugen, dass dies der Fall ist. Dann nimmt man die gewünschten Änderungen mit dem Hex-Editor vor und speichert die Datei ab. Schließlich schreibt man mit

dd if=/tmp/serial of=/dev/sdaX bs=1 seek=POS count=SIZE

die neue Seriennummer zurück. Die Werte für POS und SIZE müssen wieder wie oben gesetzt werden.

Beim Auslesen der Seriennummer verwendet man den Parameter `skip=`, beim Schreiben `seek=`


Diese Revision wurde am 17. März 2008 16:35 von e2b erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Hardware, System