Warum bei Linux / etc / fstab UUIDs die Groß- und Kleinschreibung beachtet wird?

1508
nrz

Ich habe vor kurzem eine Zeile für einen USB-Speicherstick hinzugefügt /etc/fstab, um diesen automatisch mit Hilfe der UUID zur Identifizierung des Geräts einhängen zu können.

Bevor ich bereits mehrere externe ext4-Laufwerke habe, deren UUIDs in hexadezimalen Kleinbuchstaben [0-9a-f]wie folgt geschrieben sind :

UUID=3eeaaa43-dead-beef-cafe-243bcaaad475 /media/external_2TB ext4 rw,user,noexec,nosuid,nodev,noatime 0 2 

Ich habe die UUID meines USB-Sticks überprüft blkid, eine hexadezimale UUID in Großbuchstaben erhalten und sie auf /etc/fstabdieselbe Weise wie die ext4-Zeilen in hexadezimaler Kleinbuchstaben eingegeben :

UUID=125c-a3eb /media/usb_8GB vfat defaults,users,umask=0 0 0  mount: special device UUID=125c-a3eb does not exist 

Dann bekam ich eine Idee, es in Großbuchstaben auszuprobieren ( gU3win Vim) und es hat ohne Probleme funktioniert. Um dies zu bestätigen, habe ich die Bereitstellung aufgehoben und die UUID wieder in Kleinbuchstaben geändert, das Mounten fehlgeschlagen und wieder in Großbuchstaben.

Soweit ich verstanden habe, ist UUID eine Hexadezimalzahl, keine Zeichenfolge, daher sollte der Fall von Buchstaben irrelevant sein. Aber eindeutig nicht. RFC4122 definiert UUID als "Groß- und Kleinschreibung bei der Eingabe". Gibt es etwas, was ich verpasst haben oder ist das mount/ umountVerhalten ein Fehler?

Ich verwende Debian GNU / Linux 7.0 Wheezy mit einer benutzerdefinierten Kernel-Version 3.6.8, falls dies wichtig ist.

4
UUID ist KEINE hexadezimale Zeichenfolge, sondern UUID ist ein 128-Bit-Wert (eine 128-Bit-Ganzzahl, wenn Sie so wollen). Die für UUID verwendete hexadezimale Zeichenfolge ist nur die kanonische Textdarstellung. Lie Ryan vor 9 Jahren 0

2 Antworten auf die Frage

6
Mark K Cowan

HINWEIS: Dies ist eine Spekulation, die darauf basiert, wie normalerweise auf Geräte unter Unix / Linux zugegriffen wird, und auf die Tatsache, dass die Dateinamen die Groß- und Kleinschreibung berücksichtigen.

Linux verwendet die UUIDs, um Objekte in zu erstellen /dev/disk/by-uuid. Wie bei jeder "Datei" unter Linux ist der Name zwischen Groß- und Kleinschreibung zu unterscheiden. Beim Verweisen auf Platten durch UUID wird der Vergleich daher als Vergleich der Dateinamen der hexadezimalen Zeichenfolgen und nicht als binärer Vergleich der durch die genannten Zeichenketten dargestellten Daten durchgeführt.

1
sparkie

Im Falle von vfat sehen wir effektiv keine ausgewachsene UUID. Es ist stattdessen eine Volume-ID (Seriennummer). Diese unterliegen selbstverständlich nicht den oben genannten RFC.

Tatsächlich ist für ext4-UUIDs die Groß- und Kleinschreibung zu beachten. Datenträger-IDs sind auch Hexadezimalzahlen AFAIK, keine Zeichenfolgen. nrz vor 11 Jahren 0