web-dev-qa-db-ja.com

パーティションフラグに一致するudevルール

VirtualBoxでWindowsパーティションを実行しようとしていますが、Windowsパーティションを識別してグループをvboxusersに変更するudevルールを作成したいと思います。現在、UUIDでパーティションを一致させるようにudevを設定していますが、より汎用的にしたいと思います。

これが私の現在のルールです:

# Rules to give VirtualBox raw access to Windows partitions

# Microsoft Reserved partition
SUBSYSTEM=="block", ATTRS{transport}=="pcie", ENV{ID_PART_ENTRY_UUID}=="df9bb75d-81b8-41cc-9faa-067f21b7089c", RUN+="/bin/chgrp vboxusers /dev/$name"

# Windows partition
SUBSYSTEM=="block", ATTRS{transport}=="pcie", ENV{ID_PART_ENTRY_UUID}=="8bad4d16-593c-4d50-a315-c8b33555888f", RUN+="/bin/chgrp vboxusers /dev/$name"

ID_PART_ENTRY_UUIDを使用する代わりに、これらのルールをmsftresおよびmsftdataパーティションフラグと一致させたいと思います。これは可能ですか?

udevadm info -n /dev/???を使用して属性と変数を一覧表示しようとしましたが、パーティションフラグに関連するものは何も見られませんでした。

3
Caleb Reister

GPTディスクの場合、UUIDはさまざまなパーティションタイプに割り当てられています。これは、の別のパラメータです。システムに接続されているディスクの場合は、lsblk -o +PARTTYPEを使用します。

Udevルールは次のようになります。

# Rules to give VirtualBox users raw access to Windows partitions

# Microsoft Reserved partitions (msftres)
SUBSYSTEM=="block", ENV{ID_PART_ENTRY_TYPE}=="e3c9e316-0b5c-4db8-817d-f92df00215ae", GROUP="vboxusers"

# Windows basic data partitions (msftdata)
SUBSYSTEM=="block", ENV{ID_PART_ENTRY_TYPE}=="ebd0a0a2-b9e5-4433-87c0-68b6b72699c7", GROUP="vboxusers"

これは、GPTを使用してパーティション分割されたディスクでのみ機能することに注意してください。 MBRディスク上のWindowsパーティションを検出するには、別の手法が必要になります。


UUID環境変数

UdevはさまざまなUUID環境変数にアクセスできるため、ここにそれらをリストしました。

  • ID_PART_TABLE_UUID:特定のパーティションテーブルに固有であり、ほとんどの場合、ディスクを一意に識別するために使用できます
  • ID_PART_ENTRY_TYPE:特定のタイプのパーティションに固有。 GPTパーティションタイプのリストは、 Wikipedia で入手できます。
  • ID_PART_ENTRY_UUID:GPTパーティションを一意に識別します
  • ID_FS_UUID:ファイルシステムを一意に識別します
    • パーティションが再フォーマットされると変更されます
    • 特定のファイルシステムがUUIDをサポートしていない場合は、短い識別子が使用されます。
2
Caleb Reister