编写 udev 规则时(例如对于 USB 存储卷),我可以使用以下任一方式显示插入设备的相关属性:
$ udevadm info -q property -n /dev/sdc1
/devices/pci0000:00/0000:00:1d.7/usb2/2-3/2-3.1/2-3.1.3/2-3.1.3:1.0/host5/target5:0:0/5:0:0:0/block/sdc/sdc1
sdc1
disk/by-id/usb-Hitachi_HTS541612J9AT00-0:0-part1
disk/by-path/pci-0000:00:1d.7-usb-0:3.1.3:1.0-scsi-0:0:0:0-part1
DEVLINKS=/dev/disk/by-id/usb-Hitachi_HTS541612J9AT00-0:0-part1 /dev/disk/by-path/pci-0000:00:1d.7-usb-0:3.1.3:1.0-scsi-0:0:0:0-part1
DEVNAME=/dev/sdc1
DEVPATH=/devices/pci0000:00/0000:00:1d.7/usb2/2-3/2-3.1/2-3.1.3/2-3.1.3:1.0/host5/target5:0:0/5:0:0:0/block/sdc/sdc1
DEVTYPE=partition
ID_BUS=usb
ID_INSTANCE=0:0
ID_MODEL=HTS541612J9AT00
ID_MODEL_ENC=HTS541612J9AT00\x20
ID_MODEL_ID=0702
ID_PART_ENTRY_DISK=8:32
ID_PART_ENTRY_NUMBER=1
ID_PART_ENTRY_OFFSET=2048
...
或者
$ udevadm info -q all -n /dev/sdc1
P: /devices/pci0000:00/0000:00:1d.7/usb2/2-3/2-3.1/2-3.1.3/2-3.1.3:1.0/host5/target5:0:0/5:0:0:0/block/sdc/sdc1
N: sdc1
S: disk/by-id/usb-Hitachi_HTS541612J9AT00-0:0-part1
S: disk/by-path/pci-0000:00:1d.7-usb-0:3.1.3:1.0-scsi-0:0:0:0-part1
E: DEVLINKS=/dev/disk/by-id/usb-Hitachi_HTS541612J9AT00-0:0-part1 /dev/disk/by-path/pci-0000:00:1d.7-usb-0:3.1.3:1.0-scsi-0:0:0:0-part1
E: DEVNAME=/dev/sdc1
E: DEVPATH=/devices/pci0000:00/0000:00:1d.7/usb2/2-3/2-3.1/2-3.1.3/2-3.1.3:1.0/host5/target5:0:0/5:0:0:0/block/sdc/sdc1
E: DEVTYPE=partition
E: ID_BUS=usb
E: ID_INSTANCE=0:0
E: ID_MODEL=HTS541612J9AT00
E: ID_MODEL_ENC=HTS541612J9AT00\x20
E: ID_MODEL_ID=0702
E: ID_PART_ENTRY_DISK=8:32
E: ID_PART_ENTRY_NUMBER=1
E: ID_PART_ENTRY_OFFSET=2048
...
... 明显的区别是第二种情况下的 P、N、S、E 前缀。
我无法在和的手册页中或使用搜索引擎来追踪它们的udev
含义udevadm
。问)有人可以指点我吗?
答案1
答案就在man udevadm
:
--query=type
Query the database for specified type of device data. It needs the
--path or --name to identify the specified device. Valid queries
are: name, symlink, path, property, all.
所以:
N
: 表示 /dev 中的设备名称S
: 是 /dev 中该设备名称的符号链接P
: 表示 /sys 中的设备路径E
: 用于 udev 中的设备属性