ラベルはどのようにID_PART_ENTRY_UUID
計算されますか?から始めることができますかID_PART_TABLE_UUID
?ID_PART_ENTRY_UUID
GPT
パーティションテーブルといくつかのパーティションを持つディスクがあります。
マイディスクに関連付けられているパーティションを確認する必要があります。ディスク上のすべてのパーティションは、そのディスクのパーティションテーブルを参照します。このパーティションテーブルIDを見つけることができますudevadm
。
$ sudo udevadm info /dev/loop18p1 | grep ID_PART_TABLE_UUID
E: ID_PART_TABLE_UUID=75e3b937-1ff1-4166-a51f-524b98278e6e
しかし、残念ながら私には機能しないudevadm
などparted
の方法を使用する必要があります。blkid
ディスク上のパーティションテーブルIDを見つけることができます。
$ sudo blkid -po udev /dev/loop18 | grep ID_PART_TABLE_UUID
ID_PART_TABLE_UUID=75e3b937-1ff1-4166-a51f-524b98278e6e
ただし、ID_PART_TABLE_UUID
パーティションには存在しません。
$ sudo blkid -po udev /dev/loop18p1
ID_PART_ENTRY_SCHEME=gpt
ID_PART_ENTRY_NAME=primary
ID_PART_ENTRY_UUID=bcf5e461-90db-4625-a471-6c1d61126773
ID_PART_ENTRY_TYPE=0fc63daf-8483-4772-8e79-3d69d8477de4
ID_PART_ENTRY_NUMBER=1
ID_PART_ENTRY_OFFSET=34
ID_PART_ENTRY_SIZE=195279
ID_PART_ENTRY_DISK=7:18
のみID_PART_ENTRY_UUID
。MBR
パーティションテーブルにパーティションのシリアル番号ID_PART_ENTRY_UUID
だけを追加すると、簡単に処理できます。ID_PART_TABLE_UUID
しかし、GPT
テーブルはID_PART_ENTRY_UUID
トリッキーなハッシュです。私はこのハッシュが関連していると思い、ID_PART_TABLE_UUID
それを使ってディスクパーティションを識別できます。
それでは、このハッシュ値はどのようにID_PART_ENTRY_UUID
計算されますか?ID_PART_TABLE_UUID
から始めることができますかID_PART_ENTRY_UUID
?
udevadm
可能だから可能だと思います。
liblkid
更新:私は実際にCLIの代わりにバインディングを使用していますが、blkid
それは重要だとは思わない。
答え1
GPTに関連しない場合、これはID_PART_TABLE_UUID
GPTヘッダー(for)とGPTパーティションエントリ(for)のID_PART_ENTRY_UUID
一意のUUID(または実際にはlibblkidからUUIDに変換されたGUID)です。ID_PART_TABLE_UUID
ID_PART_ENTRY_UUID
UDevには親と子の関係に関する基本的な知識があり、パーティションの場合、親(ディスク)の一部の基本情報がパーティションデータに追加されるため、この情報のみがあります(参照:60-永続-storage.rules UDevルール)。