short and long uuids under /dev/disk/by-uuid





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ margin-bottom:0;
}







1















There are several hard disk partitions my system (Linux josDeb 4.9.0-8-amd64 #1 SMP Debian 4.9.144-3.1 (2019-02-19) x86_64 GNU/Linux) is working with:



bejo@josDeb:~$ ls -l /dev/disk/by-uuid


yields:



total 0
lrwxrwxrwx 1 root root 10 Apr 13 16:20 00FB-604A -> ../../sdb1
lrwxrwxrwx 1 root root 10 Apr 13 16:19 4425-7572 -> ../../sda1
lrwxrwxrwx 1 root root 10 Apr 13 16:19 8dc07aba-5729-4525-883f-09c32d1a9e98 -> ../../sda2
lrwxrwxrwx 1 root root 10 Apr 13 16:19 95a8efff-92d2-4e31-8632-bf7a640e100f -> ../../sda3
lrwxrwxrwx 1 root root 10 Apr 13 16:19 f5a05b5e-c3ed-4227-bb62-fe4576b72643 -> ../../sda4


Some partition uuids are long - some are short. I would like to understand why. I thought, uuids always have 16 bytes. How come I have uuids of different sizes?









share































    1















    There are several hard disk partitions my system (Linux josDeb 4.9.0-8-amd64 #1 SMP Debian 4.9.144-3.1 (2019-02-19) x86_64 GNU/Linux) is working with:



    bejo@josDeb:~$ ls -l /dev/disk/by-uuid


    yields:



    total 0
    lrwxrwxrwx 1 root root 10 Apr 13 16:20 00FB-604A -> ../../sdb1
    lrwxrwxrwx 1 root root 10 Apr 13 16:19 4425-7572 -> ../../sda1
    lrwxrwxrwx 1 root root 10 Apr 13 16:19 8dc07aba-5729-4525-883f-09c32d1a9e98 -> ../../sda2
    lrwxrwxrwx 1 root root 10 Apr 13 16:19 95a8efff-92d2-4e31-8632-bf7a640e100f -> ../../sda3
    lrwxrwxrwx 1 root root 10 Apr 13 16:19 f5a05b5e-c3ed-4227-bb62-fe4576b72643 -> ../../sda4


    Some partition uuids are long - some are short. I would like to understand why. I thought, uuids always have 16 bytes. How come I have uuids of different sizes?









    share



























      1












      1








      1


      0






      There are several hard disk partitions my system (Linux josDeb 4.9.0-8-amd64 #1 SMP Debian 4.9.144-3.1 (2019-02-19) x86_64 GNU/Linux) is working with:



      bejo@josDeb:~$ ls -l /dev/disk/by-uuid


      yields:



      total 0
      lrwxrwxrwx 1 root root 10 Apr 13 16:20 00FB-604A -> ../../sdb1
      lrwxrwxrwx 1 root root 10 Apr 13 16:19 4425-7572 -> ../../sda1
      lrwxrwxrwx 1 root root 10 Apr 13 16:19 8dc07aba-5729-4525-883f-09c32d1a9e98 -> ../../sda2
      lrwxrwxrwx 1 root root 10 Apr 13 16:19 95a8efff-92d2-4e31-8632-bf7a640e100f -> ../../sda3
      lrwxrwxrwx 1 root root 10 Apr 13 16:19 f5a05b5e-c3ed-4227-bb62-fe4576b72643 -> ../../sda4


      Some partition uuids are long - some are short. I would like to understand why. I thought, uuids always have 16 bytes. How come I have uuids of different sizes?









      share
















      There are several hard disk partitions my system (Linux josDeb 4.9.0-8-amd64 #1 SMP Debian 4.9.144-3.1 (2019-02-19) x86_64 GNU/Linux) is working with:



      bejo@josDeb:~$ ls -l /dev/disk/by-uuid


      yields:



      total 0
      lrwxrwxrwx 1 root root 10 Apr 13 16:20 00FB-604A -> ../../sdb1
      lrwxrwxrwx 1 root root 10 Apr 13 16:19 4425-7572 -> ../../sda1
      lrwxrwxrwx 1 root root 10 Apr 13 16:19 8dc07aba-5729-4525-883f-09c32d1a9e98 -> ../../sda2
      lrwxrwxrwx 1 root root 10 Apr 13 16:19 95a8efff-92d2-4e31-8632-bf7a640e100f -> ../../sda3
      lrwxrwxrwx 1 root root 10 Apr 13 16:19 f5a05b5e-c3ed-4227-bb62-fe4576b72643 -> ../../sda4


      Some partition uuids are long - some are short. I would like to understand why. I thought, uuids always have 16 bytes. How come I have uuids of different sizes?







      disk block-device uuid





      share














      share












      share



      share








      edited 4 hours ago







      bejo

















      asked 5 hours ago









      bejobejo

      386




      386






















          1 Answer
          1






          active

          oldest

          votes


















          3














          Actual UUIDs are supposed to be 128-bit long and meant to be unique. Prior to this, various systems provided various serial numbers of various size to be distinguishable. So Linux just takes whatever serial it can find and sticks them in the /dev/by-uuid/ directory even if they aren't matching the UUID definition. That's the case for the FAT32 volume ID:



          Sector offset   FAT32 EBPB offset   Length (bytes)  Contents 
          0x043 0x38 4 Cf. 0x027 for FAT12/FAT16 (Volume ID)


          Historical description:




          Volume ID (serial number)



          Typically the serial number "xxxx-xxxx" is created by a 16-bit
          addition of both DX values returned by INT 21h/AH=2Ah (get system
          date)[nb 7] and INT 21h/AH=2Ch (get system time)[nb 7] for the high
          word and another 16-bit addition of both CX values for the low word of
          the serial number. Alternatively, some DR-DOS disk utilities provide a
          /# option to generate a human-readable time stamp "mmdd-hhmm" build
          from BCD-encoded 8-bit values for the month, day, hour and minute
          instead of a serial number.




          This is a 32 bits value, which can be displayed for example as 4425-7572. Most likely those two partitions are EFI System partitions since they have to be FAT32.



          You can get better informations (probably coming from parsing several /dev/disks/by-*/ entries) with the blkid command instead:



          # blkid


          or limited to those short entries:



          # blkid /dev/sda1 /dev/sdb1


          The manual suggest to use lsblk instead which doesn't require root. So with the right options that would be lsblk -o +UUID,FSTYPE /dev/sda1 /dev/sdb1.



          E.g. here:



          $ lsblk -o +UUID,FSTYPE /dev/sda1 /dev/sdb1
          NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT UUID FSTYPE
          sda1 8:1 0 200M 0 part /boot/efi 1234-5678 vfat
          sdb1 8:17 1 200M 0 part 9ABC-DEF0 vfat





          share|improve this answer


























          • Thanks - understood. In my case sda1 indeed is a fat32 partition whereas sdb1 is an exfat partition.

            – bejo
            4 hours ago











          • So for this one that would be VolumeSerialNumber here, also 4 bytes.

            – A.B
            3 hours ago














          Your Answer








          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "106"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f512283%2fshort-and-long-uuids-under-dev-disk-by-uuid%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          3














          Actual UUIDs are supposed to be 128-bit long and meant to be unique. Prior to this, various systems provided various serial numbers of various size to be distinguishable. So Linux just takes whatever serial it can find and sticks them in the /dev/by-uuid/ directory even if they aren't matching the UUID definition. That's the case for the FAT32 volume ID:



          Sector offset   FAT32 EBPB offset   Length (bytes)  Contents 
          0x043 0x38 4 Cf. 0x027 for FAT12/FAT16 (Volume ID)


          Historical description:




          Volume ID (serial number)



          Typically the serial number "xxxx-xxxx" is created by a 16-bit
          addition of both DX values returned by INT 21h/AH=2Ah (get system
          date)[nb 7] and INT 21h/AH=2Ch (get system time)[nb 7] for the high
          word and another 16-bit addition of both CX values for the low word of
          the serial number. Alternatively, some DR-DOS disk utilities provide a
          /# option to generate a human-readable time stamp "mmdd-hhmm" build
          from BCD-encoded 8-bit values for the month, day, hour and minute
          instead of a serial number.




          This is a 32 bits value, which can be displayed for example as 4425-7572. Most likely those two partitions are EFI System partitions since they have to be FAT32.



          You can get better informations (probably coming from parsing several /dev/disks/by-*/ entries) with the blkid command instead:



          # blkid


          or limited to those short entries:



          # blkid /dev/sda1 /dev/sdb1


          The manual suggest to use lsblk instead which doesn't require root. So with the right options that would be lsblk -o +UUID,FSTYPE /dev/sda1 /dev/sdb1.



          E.g. here:



          $ lsblk -o +UUID,FSTYPE /dev/sda1 /dev/sdb1
          NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT UUID FSTYPE
          sda1 8:1 0 200M 0 part /boot/efi 1234-5678 vfat
          sdb1 8:17 1 200M 0 part 9ABC-DEF0 vfat





          share|improve this answer


























          • Thanks - understood. In my case sda1 indeed is a fat32 partition whereas sdb1 is an exfat partition.

            – bejo
            4 hours ago











          • So for this one that would be VolumeSerialNumber here, also 4 bytes.

            – A.B
            3 hours ago


















          3














          Actual UUIDs are supposed to be 128-bit long and meant to be unique. Prior to this, various systems provided various serial numbers of various size to be distinguishable. So Linux just takes whatever serial it can find and sticks them in the /dev/by-uuid/ directory even if they aren't matching the UUID definition. That's the case for the FAT32 volume ID:



          Sector offset   FAT32 EBPB offset   Length (bytes)  Contents 
          0x043 0x38 4 Cf. 0x027 for FAT12/FAT16 (Volume ID)


          Historical description:




          Volume ID (serial number)



          Typically the serial number "xxxx-xxxx" is created by a 16-bit
          addition of both DX values returned by INT 21h/AH=2Ah (get system
          date)[nb 7] and INT 21h/AH=2Ch (get system time)[nb 7] for the high
          word and another 16-bit addition of both CX values for the low word of
          the serial number. Alternatively, some DR-DOS disk utilities provide a
          /# option to generate a human-readable time stamp "mmdd-hhmm" build
          from BCD-encoded 8-bit values for the month, day, hour and minute
          instead of a serial number.




          This is a 32 bits value, which can be displayed for example as 4425-7572. Most likely those two partitions are EFI System partitions since they have to be FAT32.



          You can get better informations (probably coming from parsing several /dev/disks/by-*/ entries) with the blkid command instead:



          # blkid


          or limited to those short entries:



          # blkid /dev/sda1 /dev/sdb1


          The manual suggest to use lsblk instead which doesn't require root. So with the right options that would be lsblk -o +UUID,FSTYPE /dev/sda1 /dev/sdb1.



          E.g. here:



          $ lsblk -o +UUID,FSTYPE /dev/sda1 /dev/sdb1
          NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT UUID FSTYPE
          sda1 8:1 0 200M 0 part /boot/efi 1234-5678 vfat
          sdb1 8:17 1 200M 0 part 9ABC-DEF0 vfat





          share|improve this answer


























          • Thanks - understood. In my case sda1 indeed is a fat32 partition whereas sdb1 is an exfat partition.

            – bejo
            4 hours ago











          • So for this one that would be VolumeSerialNumber here, also 4 bytes.

            – A.B
            3 hours ago
















          3












          3








          3







          Actual UUIDs are supposed to be 128-bit long and meant to be unique. Prior to this, various systems provided various serial numbers of various size to be distinguishable. So Linux just takes whatever serial it can find and sticks them in the /dev/by-uuid/ directory even if they aren't matching the UUID definition. That's the case for the FAT32 volume ID:



          Sector offset   FAT32 EBPB offset   Length (bytes)  Contents 
          0x043 0x38 4 Cf. 0x027 for FAT12/FAT16 (Volume ID)


          Historical description:




          Volume ID (serial number)



          Typically the serial number "xxxx-xxxx" is created by a 16-bit
          addition of both DX values returned by INT 21h/AH=2Ah (get system
          date)[nb 7] and INT 21h/AH=2Ch (get system time)[nb 7] for the high
          word and another 16-bit addition of both CX values for the low word of
          the serial number. Alternatively, some DR-DOS disk utilities provide a
          /# option to generate a human-readable time stamp "mmdd-hhmm" build
          from BCD-encoded 8-bit values for the month, day, hour and minute
          instead of a serial number.




          This is a 32 bits value, which can be displayed for example as 4425-7572. Most likely those two partitions are EFI System partitions since they have to be FAT32.



          You can get better informations (probably coming from parsing several /dev/disks/by-*/ entries) with the blkid command instead:



          # blkid


          or limited to those short entries:



          # blkid /dev/sda1 /dev/sdb1


          The manual suggest to use lsblk instead which doesn't require root. So with the right options that would be lsblk -o +UUID,FSTYPE /dev/sda1 /dev/sdb1.



          E.g. here:



          $ lsblk -o +UUID,FSTYPE /dev/sda1 /dev/sdb1
          NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT UUID FSTYPE
          sda1 8:1 0 200M 0 part /boot/efi 1234-5678 vfat
          sdb1 8:17 1 200M 0 part 9ABC-DEF0 vfat





          share|improve this answer















          Actual UUIDs are supposed to be 128-bit long and meant to be unique. Prior to this, various systems provided various serial numbers of various size to be distinguishable. So Linux just takes whatever serial it can find and sticks them in the /dev/by-uuid/ directory even if they aren't matching the UUID definition. That's the case for the FAT32 volume ID:



          Sector offset   FAT32 EBPB offset   Length (bytes)  Contents 
          0x043 0x38 4 Cf. 0x027 for FAT12/FAT16 (Volume ID)


          Historical description:




          Volume ID (serial number)



          Typically the serial number "xxxx-xxxx" is created by a 16-bit
          addition of both DX values returned by INT 21h/AH=2Ah (get system
          date)[nb 7] and INT 21h/AH=2Ch (get system time)[nb 7] for the high
          word and another 16-bit addition of both CX values for the low word of
          the serial number. Alternatively, some DR-DOS disk utilities provide a
          /# option to generate a human-readable time stamp "mmdd-hhmm" build
          from BCD-encoded 8-bit values for the month, day, hour and minute
          instead of a serial number.




          This is a 32 bits value, which can be displayed for example as 4425-7572. Most likely those two partitions are EFI System partitions since they have to be FAT32.



          You can get better informations (probably coming from parsing several /dev/disks/by-*/ entries) with the blkid command instead:



          # blkid


          or limited to those short entries:



          # blkid /dev/sda1 /dev/sdb1


          The manual suggest to use lsblk instead which doesn't require root. So with the right options that would be lsblk -o +UUID,FSTYPE /dev/sda1 /dev/sdb1.



          E.g. here:



          $ lsblk -o +UUID,FSTYPE /dev/sda1 /dev/sdb1
          NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT UUID FSTYPE
          sda1 8:1 0 200M 0 part /boot/efi 1234-5678 vfat
          sdb1 8:17 1 200M 0 part 9ABC-DEF0 vfat






          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited 4 hours ago

























          answered 4 hours ago









          A.BA.B

          6,10211030




          6,10211030













          • Thanks - understood. In my case sda1 indeed is a fat32 partition whereas sdb1 is an exfat partition.

            – bejo
            4 hours ago











          • So for this one that would be VolumeSerialNumber here, also 4 bytes.

            – A.B
            3 hours ago





















          • Thanks - understood. In my case sda1 indeed is a fat32 partition whereas sdb1 is an exfat partition.

            – bejo
            4 hours ago











          • So for this one that would be VolumeSerialNumber here, also 4 bytes.

            – A.B
            3 hours ago



















          Thanks - understood. In my case sda1 indeed is a fat32 partition whereas sdb1 is an exfat partition.

          – bejo
          4 hours ago





          Thanks - understood. In my case sda1 indeed is a fat32 partition whereas sdb1 is an exfat partition.

          – bejo
          4 hours ago













          So for this one that would be VolumeSerialNumber here, also 4 bytes.

          – A.B
          3 hours ago







          So for this one that would be VolumeSerialNumber here, also 4 bytes.

          – A.B
          3 hours ago




















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Unix & Linux Stack Exchange!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f512283%2fshort-and-long-uuids-under-dev-disk-by-uuid%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Callistus I

          Tabula Rosettana

          How to label and detect the document text images