Disk
/dev/disk/by-uuid下的短uuid和長uuid
我的系統上有幾個硬碟分區(Linux josDeb 4.9.0-8-amd64 #1 SMP Debian 4.9.144-3.1 (2019-02-19) x86_64 GNU/Linux)。它正在與:
bejo@josDeb:~$ ls -l /dev/disk/by-uuid
產量:
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
有些分區 uuid 很長,有些很短。我想了解為什麼。我想,uuid 總是有 16 個字節。為什麼我有不同大小的 uuid?
實際的UUID應該是 128 位長並且是唯一的。在此之前,各種系統都提供了各種不同大小的序列號以供區分。因此,Linux 只需獲取它可以找到的任何序列號並將它們粘貼在
/dev/by-uuid/
目錄中,即使它們與 UUID 定義不匹配。FAT32 卷 ID就是這種情況:Sector offset FAT32 EBPB offset Length (bytes) Contents 0x043 0x38 4 Cf. 0x027 for FAT12/FAT16 (Volume ID)
歷史描述:
卷 ID(序列號)
通常,序列號“xxxx-xxxx”是由 INT 21h/AH=2Ah(獲取系統日期)返回的兩個 DX 值相加的 16 位相加創建的
$$ nb 7 $$和 INT 21h/AH=2Ch(獲取系統時間)$$ nb 7 $$序列號的高位字和兩個 CX 值的另一個 16 位相加。或者,某些 DR-DOS 磁碟實用程序提供 /# 選項,以生成人類可讀的時間戳“mmdd-hhmm”,該時間戳從 BCD 編碼的 8 位值(月、日、小時和分鐘)而不是序列號生成。
這是一個 32 位的值,例如可以顯示為 4425-7572。這兩個分區很可能是 EFI 系統分區,因為它們必須是 FAT32。
您可以使用以下命令獲得更好的資訊(可能來自解析多個
/dev/disks/by-*/
條目)blkid
:# blkid
或僅限於那些簡短的條目:
# blkid /dev/sda1 /dev/sdb1
該手冊建議使用
lsblk
不需要root的代替。所以有了正確的選擇lsblk -o +UUID,FSTYPE /dev/sda1 /dev/sdb1
。例如這裡:
$ 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