私のシステムには複数のハードドライブパーティションがあります(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のサイズが異なるのはなぜですか?
答え1
実際普遍的に一意の識別子sは長さが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 (システム日付のインポート) [nb 7] および INT 21h/AH=2Ch (システム日付のインポート) によって返される DX 値を 16 ビット追加します。生成されます。システム時間)[nb 7]はシリアル番号の上位ワードに使用され、2つのCX値の別の16ビット追加はシリアル番号の下位ワードに使用されます。または、一部のDR-DOSディスクユーティリティは、BCDでエンコードされた月、日、時、分の8ビット値に基づいて人間が読み取ることができるタイムスタンプ「mmdd-hhmm」を生成するための/#オプションを提供します。代わりに)。数字)。
たとえば、4425-7572と表示できる32ビット値です。これら2つのパーティションはFAT32である必要があるため、EFIシステムパーティションである可能性が高いです。
より良い情報を得ることができます(おそらく複数の/dev/disks/by-*/
項目を解析することによって)blkid
コマンドは次のように変更されます。
# blkid
または、次の短い項目のみを使用してください。
# blkid /dev/sda1 /dev/sdb1
取扱説明書では使用をお勧めします。lsblk
逆に、ルートは必要ありません。したがって、正しい選択はです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