Ich kann mit udev keinen symbolischen Link für eine mobile USB-Festplatte erstellen

Ich kann mit udev keinen symbolischen Link für eine mobile USB-Festplatte erstellen

Ich habe ein Problem bei der Verwendung udev: Ich möchte USB-Hotplug unter Ubuntu16.04 realisieren, daher habe ich die udevfolgende Regel geschrieben:

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

Wenn ich einen USB-Stick verwende, funktioniert es und der symbolische Link führt /dev/USBdirekt zu /dev/sda1oder /dev/sdb1,2,3...

Aber wenn ich eine mobile USB-Festplatte verwende, erfolgt die /dev/USBDirektverbindung zu /dev/sdboder /dev/sdc, aber nicht zur Partition. Ich teste die Auslösesequenz der Regeln und sie wird 2 Mal ausgelöst, zuerst sdb, dann sdb1.

Warum zeigt der /dev/USBLink auf sdbund nicht auf sdb1?

Dies ist das Systemprotokoll:

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

Das ist 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

wenn ich KERNEL=="sd[az][1-9]" versuche, kann kein symbolischer Link /dev/USB erstellt werden

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

Antwort1

Abgesehen von der Anstrengung, das Rätsel des unterschiedlichen Verhaltens von USB-Stick und Festplatte zu lösen, könnten Sie versuchen, die udevRegel so zu spezifizieren, dass siedürfennur auf Partitionen anwendbar,dhGerätekennungen, die mit einer Zahl enden, durch Angabe

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

als Bedingung.

verwandte Informationen