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/???
を使用して属性と変数を一覧表示しようとしましたが、パーティションフラグに関連するものは何も見られませんでした。
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パーティションを検出するには、別の手法が必要になります。
UdevはさまざまなUUID環境変数にアクセスできるため、ここにそれらをリストしました。
ID_PART_TABLE_UUID
:特定のパーティションテーブルに固有であり、ほとんどの場合、ディスクを一意に識別するために使用できますID_PART_ENTRY_TYPE
:特定のタイプのパーティションに固有。 GPTパーティションタイプのリストは、 Wikipedia で入手できます。ID_PART_ENTRY_UUID
:GPTパーティションを一意に識別しますID_FS_UUID
:ファイルシステムを一意に識別します