Udev
無論插入的 USB 埠如何,如何讓 udev 辨識 USB 設備?
我想編寫一個腳本,每次將 USB 設備插入隨機 USB 插槽時備份數據。現在我知道了
KERNEL=sdX
標識符,但問題是取決於插槽以及其他設備是否已經插入,這sdX
將改變。在 udev 中辨識我的 USB 設備的最佳方法是什麼?我一直在考慮使用partuuid
,但我不知道如何使用,也不知道 partuuid 最初儲存在哪里或者它是如何計算出來的。
如果您使用
gdisk
而不是您對設備進行分區,fdisk
您將創建一個 GPT 樣式的分區表,對於每個分區,該表可以包含一個 PARTUUID 和一個 PARTLABEL。中的c
命令gdisk
允許您設置分區名稱,即 PARTLABEL。當您通過在分區上創建新文件系統來重新格式化分區時,這些分區 ID 不會更改。
大多數文件系統允許您在文件系統上獲取或設置 UUID 和 LABEL。這樣做的方法取決於文件系統類型,例如對於 ext3/4,它
tune2fs
帶有-U
and-L
。這些在 Linux 中顯示為 UUID 和 LABEL。不要混淆這兩組 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