Unable to mount external NTFS HDDs due to duplicate UUID

To mount an NTFS drive we can also use a disk label only. We can safely change the label from Windows or by using ntfslabel Install ntfslabel. See

  • Constant UUID on USB install
  • How to rename partitions?

Needless to say that by using ntfslabel we can also change a partition's UUID (aka serial number). To avoid negative effects on the UUID dependent Windows file allocation we should only change the upper part of the UUID (which is not used by Windows):

sudo ntfslabel --new-half-serial[=ssssssss] /dev/sdXN

Example:

enter image description here


Interesting! There is a way to modify the UUID of ntfs partition by modifying the superblock as documented here. It says that volume serial number is the eight bytes beginning at offset 0x48 in an ntfs formatted drive/partition so, altering it will change the serial number/UUID. To reproduce it:

dd if=/dev/sda# of=my_block bs=512 count=1

ghexedite2 my_block (or what ever hex editor you like. Alter a byte or two between 0x48 and 0x4f, inclusive)

dd if=my_block of=/dev/sda# bs=512 count=1

I have not tried this myself, but looks interesting.

Note: dd is Disk Destroy :) so use with caution!