7

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.

1
  • 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, 2014 at 7:35

3 Answers 3

9

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.

0
2

Kind of implied by @sparkie's answer, and part of what's going on in the original question, is that the UUIDs for FAT partitions (seem to?) always need to be uppercase (e.g. UUID=125C-A3EB) whereas the UUIDs for ext4 partitions always need to be lowercase (e.g. UUID=3eeaaa43-dead-beef-cafe-243bcaaad475).

1

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.

1
  • 1
    Actually, ext4 UUIDs are also case sensitive. Further, volume IDs are also hexadecimal numbers AFAIK, not strings.
    – nrz
    Jan 7, 2013 at 15:23

You must log in to answer this question.

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