udevを使用してUSBハードドライブへのシンボリックリンクを作成することはできません。

udevを使用してUSBハードドライブへのシンボリックリンクを作成することはできません。

使用中に問題が発生しましたudev。 Ubuntu16.04でUSBホットプラグを実装したいので、udev次のようにルールを作成しました。

KERNEL=="sd[a-z]*", ACTION=="add",SUBSYSTEM=="block",SYMLINK+="USB",RUN+="/bin/sh /root/load_device.sh %k"

USBスティックを使用すると機能し、シンボリックリンクは次のものを/dev/USB直接指します。/dev/sda1/dev/sdb1,2,3

ところで USB モバイルハードディスクを使用するとき、 、 に直接行くのに/dev/USBそのパーティションに到達しません。ルールの実行順序をテストしましたが、最初と2番目に2回実行されました。/dev/sdb/dev/sdcsdbsdb1

/dev/USBリンクがsdbtoの代わりに指しているのはなぜですかsdb1

これはシステムログです。

Apr 16 09:28:40 ntfs-3g[1928]: Version 2015.3.14AR.1 integrated FUSE 28 Apr 16 09:28:40 ntfs-3g[1928]: Mounted /dev/sdb1 (Read-Write, label "BOOTCAMP", NTFS 3.1)
Apr 16 09:28:40 ntfs-3g[1928]: Cmdline options: rw Apr 16 09:28:40 ntfs-3g[1928]: Mount options: rw,allow_other,nonempty,relatime,fsname=/dev/sdb1,blkdev,blksize=4096
Apr 16 09:28:40 ntfs-3g[1928]: Ownership and permissions disabled, configuration type 7
Apr 16 09:28:40 systemd[1029]: dev-USB.device: Dev dev-USB.device appeared twice with different sysfs paths /sys/devices/pci0000:00/0000:00:15.0/usb2/2-4/2-4:1.0/host2/target2:0:0/2:0:0:0/block/sdb and /sys/devices/pci0000:00/0000:00:15.0/usb2/2-4/2-4:1.0/host2/target2:0:0/2:0:0:0/block/sdb/sdb1
Apr 16 09:28:40 systemd[869]: dev-USB.device: Dev dev-USB.device appeared twice with different sysfs paths /sys/devices/pci0000:00/0000:00:15.0/usb2/2-4/2-4:1.0/host2/target2:0:0/2:0:0:0/block/sdb and /sys/devices/pci0000:00/0000:00:15.0/usb2/2-4/2-4:1.0/host2/target2:0:0/2:0:0:0/block/sdb/sdb1
Apr 16 09:28:40 systemd[1]: dev-USB.device: Dev dev-USB.device appeared twice with different sysfs paths /sys/devices/pci0000:00/0000:00:15.0/usb2/2-4/2-4:1.0/host2/target2:0:0/2:0:0:0/block/sdb and /sys/devices/pci0000:00/0000:00:15.0/usb2/2-4/2-4:1.0/host2/target2:0:0/2:0:0:0/block/sdb/sdb1

これはudevinfo

P: /devices/pci0000:00/0000:00:15.0/usb2/2-4/2-4:1.0/host3/target3:0:0/3:0:0:0/block/sdc
N: sdc
S: USB
S: disk/by-id/ata-Samsung_SSD_840_EVO_120GB_S1D5NSBF494918T
S: disk/by-id/wwn-0x50025388a03b9a88
S: disk/by-path/pci-0000:00:15.0-usb-0:4:1.0-scsi-0:0:0:0
E: DEVLINKS=/dev/disk/by-id/ata-Samsung_SSD_840_EVO_120GB_S1D5NSBF494918T /dev/disk/by-id/wwn-0x50025388a03b9a88 /dev/disk/by-path/pci-0000:00:15.0-usb-0:4:1.0-scsi-0:0:0:0 /dev/USB
E: DEVNAME=/dev/sdc E: DEVPATH=/devices/pci0000:00/0000:00:15.0/usb2/2-4/2-4:1.0/host3/target3:0:0/3:0:0:0/block/sdc
E: DEVTYPE=disk
E: ID_ATA=1
E: ID_ATA_DOWNLOAD_MICROCODE=1
E: ID_ATA_FEATURE_SET_HPA=1
E: ID_ATA_FEATURE_SET_HPA_ENABLED=1
E: ID_ATA_FEATURE_SET_PM=1
E: ID_ATA_FEATURE_SET_PM_ENABLED=1
E: ID_ATA_FEATURE_SET_SECURITY=1
E: ID_ATA_FEATURE_SET_SECURITY_ENABLED=0
E: ID_ATA_FEATURE_SET_SECURITY_ENHANCED_ERASE_UNIT_MIN=8
E: ID_ATA_FEATURE_SET_SECURITY_ERASE_UNIT_MIN=2
E: ID_ATA_FEATURE_SET_SMART=1
E: ID_ATA_FEATURE_SET_SMART_ENABLED=1
E: ID_ATA_ROTATION_RATE_RPM=0
E: ID_ATA_SATA=1
E: ID_ATA_SATA_SIGNAL_RATE_GEN1=1
E: ID_ATA_SATA_SIGNAL_RATE_GEN2=1
E: ID_ATA_WRITE_CACHE=1
E: ID_ATA_WRITE_CACHE_ENABLED=1
E: ID_BUS=ata
E: ID_MODEL=Samsung_SSD_840_EVO_120GB
E: ID_MODEL_ENC=Samsung\x20SSD\x20840\x20EVO\x20120GB\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
E: ID_PART_TABLE_TYPE=dos
E: ID_PART_TABLE_UUID=5be6511f
E: ID_PATH=pci-0000:00:15.0-usb-0:4:1.0-scsi-0:0:0:0
E: ID_PATH_TAG=pci-0000_00_15_0-usb-0_4_1_0-scsi-0_0_0_0
E: ID_REVISION=EXT0BB6Q
E: ID_SERIAL=Samsung_SSD_840_EVO_120GB_S1D5NSBF494918T
E: ID_SERIAL_SHORT=S1D5NSBF494918T
E: ID_TYPE=disk
E: ID_WWN=0x50025388a03b9a88
E: ID_WWN_WITH_EXTENSION=0x50025388a03b9a88
E: MAJOR=8
E: MINOR=32
E: SUBSYSTEM=block
E: TAGS=:systemd:
E: USEC_INITIALIZED=1066199633

KERNEL=="sd[az][1-9]" を試行すると、シンボリックリンク /dev/USB の作成に失敗します。

Apr 18 01:35:31  kernel: [ 1059.884210] usb 2-4: new SuperSpeed USB device number 9 using xhci_hcd
Apr 18 01:35:31  kernel: [ 1059.909016] usb 2-4: New USB device found, idVendor=152d, idProduct=9561
Apr 18 01:35:31  kernel: [ 1059.909021] usb 2-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Apr 18 01:35:31  kernel: [ 1059.909023] usb 2-4: Product: Fanxiang P101/240GB
Apr 18 01:35:31  kernel: [ 1059.909025] usb 2-4: Manufacturer: Fanxiang P101/240GB
Apr 18 01:35:31  kernel: [ 1059.909026] usb 2-4: SerialNumber: 000000000443
Apr 18 01:35:31  kernel: [ 1059.914003] scsi host2: uas
Apr 18 01:35:31  mtp-probe: checking bus 2, device 9: "/sys/devices/pci0000:00/0000:00:15.0/usb2/2-4"
Apr 18 01:35:31  mtp-probe: bus: 2, device: 9 was not an MTP device
Apr 18 01:35:31  kernel: [ 1059.916507] scsi 2:0:0:0: Direct-Access     Fanxiang P101/240GB       1508 PQ: 0 ANSI: 6
Apr 18 01:35:31  kernel: [ 1059.917452] sd 2:0:0:0: Attached scsi generic sg1 type 0
Apr 18 01:35:32  kernel: [ 1060.658766] sd 2:0:0:0: [sdb] 468862128 512-byte logical blocks: (240 GB/224 GiB)
Apr 18 01:35:32  kernel: [ 1060.658770] sd 2:0:0:0: [sdb] 4096-byte physical blocks
Apr 18 01:35:32  kernel: [ 1060.659275] sd 2:0:0:0: [sdb] Write Protect is off
Apr 18 01:35:32  kernel: [ 1060.659280] sd 2:0:0:0: [sdb] Mode Sense: 53 00 00 08
Apr 18 01:35:32  kernel: [ 1060.659617] sd 2:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
Apr 18 01:35:32  kernel: [ 1060.667689]  sdb: sdb1
Apr 18 01:35:32  kernel: [ 1060.669525] sd 2:0:0:0: [sdb] Attached SCSI disk
Apr 18 01:35:33  ntfs-3g[2768]: Version 2015.3.14AR.1 integrated FUSE 28
Apr 18 01:35:33  ntfs-3g[2768]: Mounted /dev/sdb1 (Read-Write, label "longtian", NTFS 3.1)
Apr 18 01:35:33  ntfs-3g[2768]: Cmdline options: rw
Apr 18 01:35:33  ntfs-3g[2768]: Mount options: rw,allow_other,nonempty,relatime,fsname=/dev/sdb1,blkdev,blksize=4096
Apr 18 01:35:33  ntfs-3g[2768]: Ownership and permissions disabled, configuration type 7

答え1

USBスティックやハードドライブの様々な動作に対する謎を解きほぐす努力をし、ルールを具体udev的に作ってできるパーティションにのみ適用されます。つまり次の数字で終わるデバイス識別子。

KERNEL=="sd[a-z][1-9]"

条件として。

関連情報