Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I recently added a line for a USB memory stick to /etc/fstab, to be able to mount it automatically, using UUID to identify the device.

Before I already have several external ext4 drives that have their UUIDs written in lowercase hexadecimal chars [0-9a-f] like this:

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

I checked the UUID of my USB stick with blkid, got an uppercase hexadecimal UUID and entered it in /etc/fstab in the same way as the ext4 lines, in lowercase hexadecimal, like this:

UUID=125c-a3eb  /media/usb_8GB vfat defaults,users,umask=0  0 0

mount: special device UUID=125c-a3eb does not exist

Then I got an idea to try it in uppercase (gU3w in Vim) and it worked without problems. To confirm this, I unmounted, and changed the UUID back to lowercase, mount failed, and back to uppercase, and mounted successfully.

As far as I have understood, UUID is a hexadecimal number, not a string, so the case of letters should be irrelevant. But clearly it's not. RFC4122 defines UUID as "case insensitive on input". Is there something I have missed or is this mount / umount behavior a bug?

I'm using Debian GNU/Linux 7.0 Wheezy with a custom kernel version 3.6.8, if that matters.

share|improve this question
    
UUID is NOT a hexadecimal string, rather UUID is a 128-bit value (a 128-bit integer, if you will). The hexadecimal string used for UUID is only its canonical textual representation. – Lie Ryan Dec 12 '14 at 7:35
up vote 3 down vote accepted

NOTE: This is speculation, based on how devices are typically accessed in Unix/Linux and the fact that the filenames are case-sensitive.

Linux uses the UUIDs to create objects in /dev/disk/by-uuid. Like any "file" on Linux, the name is case sensitive. Hence when referring to disks by UUID, the comparison is done as a file-name comparison on the hex strings rather than a binary comparison on the data represented by said strings.

share|improve this answer

in case of vfat we effectively don't see a full blown UUID. It's a Volume ID (serial number) instead. These of course are not subject to the RFC mentioned above.

share|improve this answer
    
Actually, ext4 UUIDs are also case sensitive. Further, volume IDs are also hexadecimal numbers AFAIK, not strings. – nrz Jan 7 '13 at 15:23

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .