どのUSBポートに接続されていても、udevにUSBデバイスを認識させるにはどうすればよいですか?

どのUSBポートに接続されていても、udevにUSBデバイスを認識させるにはどうすればよいですか?

USBデバイスを任意のUSBスロットに接続するたびに、USBデバイスのデータをバックアップするスクリプトを作成したいと思います。これで識別子がわかりますが、問題はKERNEL=sdXスロットによって、他の機器を差し込んだかどうかによってsdX異なります。 udevでUSBデバイスを識別する最良の方法は何ですか?使ってみようかと思いましたpartuuidが、partuuidがそもそもどこに保存されているのか、どのように計算されるのかはよく分かりません。

ベストアンサー1

gdiskデバイスを分割する代わりにを使用する場合は、パーティションごとにfdiskPARTUUIDとPARTLABELを保持するGPTスタイルのパーティションテーブルを作成します。cのコマンドを使用すると、gdiskパーティション名(PARTLABEL)を設定できます。

パーティションに新しいファイルシステムを作成してパーティションを再フォーマットしても、これらのパーティションIDは変更されません。

ほとんどのファイルシステムでは、ファイルシステムからUUIDとLABELを取得または設定できます。これを行う方法は、ファイルシステムの種類によって異なります。たとえば、ext3/4の場合とtune2fs。 Linuxでは、UUIDとLABELで表されます。-U-L

これら 2 つの ID セットを混同しないでください。blkidすべて表示されます。

/dev/sdb1: LABEL="MYLABEL" UUID="A369-D716" TYPE="vfat" PARTLABEL="My new partition" \
  PARTUUID="f0817245-d3ce-408b-9457-e33dfc04aebe"

次のコマンドを使用してudevプロパティを表示できます。

$ udevadm info -p $(udevadm info -q path -n /dev/sdb1)
...
E: ID_FS_LABEL=MYLABEL
E: ID_FS_LABEL_ENC=MYLABEL
E: ID_FS_UUID=A369-D716
E: ID_FS_UUID_ENC=A369-D716
E: ID_PART_ENTRY_UUID=f0817245-d3ce-408b-9457-e33dfc04aebe
E: ID_PART_TABLE_UUID=7301d696-b66d-4f85-8272-7dd5e29175ae
E: ID_PART_ENTRY_NAME=My\x20new\x20partition

おすすめ記事