web-dev-qa-db-ja.com

/ 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を持っているのですか?

2
bejo

実際の [〜#〜] uuid [〜#〜] sは128ビット長であると想定されており、一意であることが意図されています。これ以前は、さまざまなシステムが、区別できるようにさまざまなサイズのさまざまなシリアル番号を提供していました。したがって、Linuxは、見つけたシリアルをすべて取得し、UUID定義と一致していなくても、/dev/by-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(システム日付を取得)[nb 7]とINT 21h/AH = 2Ch(システム時間を取得)によって返される両方のDX値の16ビットの追加によって作成されます。 [nb 7]シリアル番号の上位ワードと下位ワードの両方のCX値の16ビット追加。または、一部のDR-DOSディスクユーティリティは、シリアル番号ではなく、月、日、時、分のBCDエンコードされた8ビット値から人間が読めるタイムスタンプ "mmdd-hhmm"ビルドを生成する/#オプションを提供します。

これは32ビット値であり、たとえば4425-7572として表示できます。これらの2つのパーティションはFAT32である必要があるため、おそらくEFIシステムパーティションです。

代わりに blkid コマンドを使用すると、より良い情報を取得できます(おそらく、いくつかの/dev/disks/by-*/エントリを解析することで得られます)。

# 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
6
A.B