Just what is Universally Unique

I had an interesting discussion with "bonnyrsa" in #ubuntu-za today. He'd re-arranged his partitions with gparted, and copied and pasted his / partition, so that he could move it to the end of the disk.

However this meant that he now had two partitions with the same UUID. While you can imagine that this is the correct result of a copy & paste operation, it now means that your universally unique ID is totally non-unique. Not in your PC, and no even on it's home drive.

Ubuntu mounts by UUID, so now how do we know which partition is being mounted?

  • "mount" said /dev/sda2
  • /proc/mounts said /dev/disk/by-uuid/c087bad7-5021-4f65-bb97-e0d3ea9d01a6 which was a symlink to /dev/sda2.

However neither were correct.

Mounting /dev/sda4 (ro) produced "/dev/sda4 already mounted or /mnt busy".

Aha, so we must be running from /dev/sda4.

/dev/sda2 mounted fine, but then wouldn't unmount: "it seems /dev/sda2 is mounted multiple times".

Aaaargh!

I got him to reboot, change /dev/sda2s UUID, and reboot again (sucks). Then everything was better.

This shouldn't have happened. Non-unique UUIDs is a really crap situation to be in. It brings out bugs in all sorts of unexpected places. I think parted should (by default) change the UUID of a copied partition (although if you are copying an entire disk, it shouldn't).

I've filed a bug on Launchpad, let's see if anyone bites.

PS: All UUIDs in this post have been changed to protect the identity of innocent Ubuntu systems (who aren't expecting a sudden attack of non-uniqueness).