You are not logged in.

#1 2012-02-10 10:30:30

j0ker
Member
Registered: 2012-02-10
Posts: 6

Unable to retrieve device ID with udev daemon

I've recently switched from Ubuntu to Arch (did not regret it yet wink). Currently, I'm trying to set up a backup. I have not done anything like that before so I cannot tell if my problem is Arch-specific but I guess, it's not.

Since I want to backup to an external HDD with no permanent connection to my laptop, I want a backup script to be triggered each time when the HDD is plugged in. So I created an udev rule in /etc/udev/rules.d/10-local.rules (had to created that file since this directory was empty):

ACTION=="add", SYSFS{idVendor}=="04e8", SYSFS{idProduct}=="60a6", RUN+="/usr/local/bin/makebak.sh"

What this rule should do: Execute the script makebak.sh each time I plug in the device with vendor ID 04e8 and product ID 60a6.
What this rule does: Nothing.

The output of lsusb for the device in question is

Bus 002 Device 014: ID 04e8:60a6 Samsung Electronics Co., Ltd 

I tested some things:
1. It works if I try ACTION=="add", RUN+="/usr/local/bin/makebak.sh", but then the script is executed something like 10 times for each device I plug in. This rule is just too generic. But it proves that udev seems unable to find the device ID.
2. I've found the command udevadm test that shows me some info about my device. However, the output is different if I execute it as root. I noticed that as root there are no informations concerning the vendor and the product id, but as regular user I can see them listed. I don't really know what this tool does but could the reason why my udev rule doesn't work be connected with that observation?

Here is the output of udevadm test /sys/block/sdb as regular user:

run_command: calling: test
adm_test: version 180
This program is for debugging only, it does not run any program,
specified by a RUN key. It may show incorrect results, because
some values may be different, or not available at a simulation run.

builtin_kmod_init: load module index
add_matching_files: unable to open '/run/udev/rules.d': No such file or directory
parse_file: reading '/lib/udev/rules.d/10-dm.rules' as rules file
parse_file: reading '/etc/udev/rules.d/10-local.rules' as rules file
parse_file: reading '/lib/udev/rules.d/11-dm-lvm.rules' as rules file
parse_file: reading '/lib/udev/rules.d/13-dm-disk.rules' as rules file
parse_file: reading '/lib/udev/rules.d/40-gphoto.rules' as rules file
add_rule: IMPORT found builtin 'usb_id --export %p', replacing /lib/udev/rules.d/40-gphoto.rules:11
parse_file: reading '/lib/udev/rules.d/42-qemu-usb.rules' as rules file
parse_file: reading '/lib/udev/rules.d/50-udev-default.rules' as rules file
parse_file: reading '/lib/udev/rules.d/53-sane.rules' as rules file
(... much more rules parsing ...)
udev_rules_new: rules use 216120 bytes tokens (18010 * 12 bytes), 28505 bytes buffer
udev_rules_new: temporary index used 52000 bytes (2600 * 20 bytes)
udev_device_new_from_syspath: device 0x155b6d0 has devpath '/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1:1.0/host16/target16:0:0/16:0:0:0/block/sdb'
udev_device_new_from_syspath: device 0x156ade0 has devpath '/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1:1.0/host16/target16:0:0/16:0:0:0/block/sdb'
udev_device_read_db: device 0x156ade0 filled with db file data
udev_rules_apply_to_event: RUN '/usr/local/bin/makebak.sh' /etc/udev/rules.d/10-local.rules:1
udev_device_new_from_syspath: device 0x155d490 has devpath '/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1:1.0/host16/target16:0:0/16:0:0:0'
udev_device_new_from_syspath: device 0x155dc90 has devpath '/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1:1.0/host16/target16:0:0'
udev_device_new_from_syspath: device 0x155e480 has devpath '/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1:1.0/host16'
udev_device_new_from_syspath: device 0x155ec60 has devpath '/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1:1.0'
udev_device_new_from_syspath: device 0x155f420 has devpath '/devices/pci0000:00/0000:00:1d.7/usb2/2-1'
udev_device_new_from_syspath: device 0x155fc00 has devpath '/devices/pci0000:00/0000:00:1d.7/usb2'
udev_device_new_from_syspath: device 0x15603d0 has devpath '/devices/pci0000:00/0000:00:1d.7'
udev_device_new_from_syspath: device 0x1560b70 has devpath '/devices/pci0000:00'
udev_rules_apply_to_event: GROUP 6 /lib/udev/rules.d/50-udev-default.rules:67
udev_rules_apply_to_event: IMPORT 'ata_id --export /dev/sdb' /lib/udev/rules.d/60-persistent-storage.rules:37
udev_event_spawn: starting 'ata_id --export /dev/sdb'
spawn_wait: 'ata_id --export /dev/sdb' [2250] exit with return code 1
udev_rules_apply_to_event: IMPORT builtin 'usb_id' /lib/udev/rules.d/60-persistent-storage.rules:39
builtin_usb_id: /sys/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1:1.0: if_class 8 protocol 6
udev_builtin_add_property: ID_VENDOR=Samsung
udev_builtin_add_property: ID_VENDOR_ENC=Samsung\x20
udev_builtin_add_property: ID_VENDOR_ID=04e8
udev_builtin_add_property: ID_MODEL=S2_Portable_3
udev_builtin_add_property: ID_MODEL_ENC=S2\x20Portable\x203\x20\x20\x20
udev_builtin_add_property: ID_MODEL_ID=60a6
udev_builtin_add_property: ID_REVISION=2AM1
udev_builtin_add_property: ID_SERIAL=Samsung_S2_Portable_3_000000000000011E0A60-0:0
udev_builtin_add_property: ID_SERIAL_SHORT=000000000000011E0A60
udev_builtin_add_property: ID_TYPE=disk
udev_builtin_add_property: ID_INSTANCE=0:0
udev_builtin_add_property: ID_BUS=usb
udev_builtin_add_property: ID_USB_INTERFACES=:080650:
udev_builtin_add_property: ID_USB_INTERFACE_NUM=00
udev_builtin_add_property: ID_USB_DRIVER=usb-storage
udev_rules_apply_to_event: LINK 'disk/by-id/usb-Samsung_S2_Portable_3_000000000000011E0A60-0:0' /lib/udev/rules.d/60-persistent-storage.rules:44
udev_rules_apply_to_event: IMPORT builtin 'path_id' /lib/udev/rules.d/60-persistent-storage.rules:61
udev_builtin_add_property: ID_PATH=pci-0000:00:1d.7-usb-0:1:1.0-scsi-0:0:0:0
udev_builtin_add_property: ID_PATH_TAG=pci-0000_00_1d_7-usb-0_1_1_0-scsi-0_0_0_0
udev_rules_apply_to_event: LINK 'disk/by-path/pci-0000:00:1d.7-usb-0:1:1.0-scsi-0:0:0:0' /lib/udev/rules.d/60-persistent-storage.rules:62
udev_rules_apply_to_event: IMPORT builtin 'blkid' /lib/udev/rules.d/60-persistent-storage.rules:76
error: /dev/sdb: Permission denied
udev_rules_apply_to_event: IMPORT 'udisks-part-id /dev/sdb' /lib/udev/rules.d/80-udisks.rules:88
udev_event_spawn: starting 'udisks-part-id /dev/sdb'
spawn_read: 'udisks-part-id /dev/sdb'(err) 'libudev: udev_device_new_from_syspath: device 0x1cc2680 has devpath '/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1:1.0/host16/target16:0:0/16:0:0:0/block/sdb''
spawn_read: 'udisks-part-id /dev/sdb'(err) 'libudev: udev_device_read_db: device 0x1cc2680 filled with db file data'
spawn_read: 'udisks-part-id /dev/sdb'(err) 'using device_file=/dev/sdb syspath=/sys/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1:1.0/host16/target16:0:0/16:0:0:0/block/sdb, offset=0 ao=0 and number=0 for /dev/sdb'
spawn_read: 'udisks-part-id /dev/sdb'(err) 'Error opening /dev/sdb: Permission denied'
spawn_wait: 'udisks-part-id /dev/sdb' [2251] exit with return code 0
udev_rules_apply_to_event: IMPORT 'udisks-probe-ata-smart /dev/sdb' /lib/udev/rules.d/80-udisks.rules:112
udev_event_spawn: starting 'udisks-probe-ata-smart /dev/sdb'
spawn_read: 'udisks-probe-ata-smart /dev/sdb'(err) 'Failed to open disk /dev/sdb: Permission denied'
spawn_wait: 'udisks-probe-ata-smart /dev/sdb' [2252] exit with return code 1
udev_node_update_old_links: update old name, '/dev/disk/by-id/ata-SAMSUNG_HM100UZ_C5071E86AA22JN' no longer belonging to '/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1:1.0/host16/target16:0:0/16:0:0:0/block/sdb'
link_find_prioritized: found 'b8:16' claiming '/run/udev/links/disk\x2fby-id\x2fata-SAMSUNG_HM100UZ_C5071E86AA22JN'
link_update: no reference left, remove '/dev/disk/by-id/ata-SAMSUNG_HM100UZ_C5071E86AA22JN'
udev_node_update_old_links: update old name, '/dev/disk/by-id/wwn-0x50000f00aaeb0022' no longer belonging to '/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1:1.0/host16/target16:0:0/16:0:0:0/block/sdb'
link_find_prioritized: found 'b8:16' claiming '/run/udev/links/disk\x2fby-id\x2fwwn-0x50000f00aaeb0022'
link_update: no reference left, remove '/dev/disk/by-id/wwn-0x50000f00aaeb0022'
udev_node_add: handling device node '/dev/sdb', devnum=b8:16, mode=0660, uid=0, gid=6
node_fixup: preserve permissions /dev/sdb, 060660, uid=0, gid=6
node_symlink: preserve already existing symlink '/dev/block/8:16' to '../sdb'
link_update: creating link '/dev/disk/by-id/usb-Samsung_S2_Portable_3_000000000000011E0A60-0:0' to '/dev/sdb'
node_symlink: creating symlink '/dev/disk/by-id/usb-Samsung_S2_Portable_3_000000000000011E0A60-0:0' to '../../sdb'
node_symlink: atomically replace '/dev/disk/by-id/usb-Samsung_S2_Portable_3_000000000000011E0A60-0:0'
node_symlink: symlink '../../sdb' '/dev/disk/by-id/usb-Samsung_S2_Portable_3_000000000000011E0A60-0:0.udev-tmp' failed: Permission denied
link_find_prioritized: found 'b8:16' claiming '/run/udev/links/disk\x2fby-path\x2fpci-0000:00:1d.7-usb-0:1:1.0-scsi-0:0:0:0'
link_update: creating link '/dev/disk/by-path/pci-0000:00:1d.7-usb-0:1:1.0-scsi-0:0:0:0' to '/dev/sdb'
node_symlink: preserve already existing symlink '/dev/disk/by-path/pci-0000:00:1d.7-usb-0:1:1.0-scsi-0:0:0:0' to '../../sdb'
udev_device_update_db: unable to create temporary db file '/run/udev/data/b8:16.tmp': Permission denied
ACTION=add
DEVLINKS=/dev/disk/by-id/usb-Samsung_S2_Portable_3_000000000000011E0A60-0:0 /dev/disk/by-path/pci-0000:00:1d.7-usb-0:1:1.0-scsi-0:0:0:0
DEVNAME=/dev/sdb
DEVPATH=/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1:1.0/host16/target16:0:0/16:0:0:0/block/sdb
DEVTYPE=disk
ID_BUS=usb
ID_INSTANCE=0:0
ID_MODEL=S2_Portable_3
ID_MODEL_ENC=S2\x20Portable\x203\x20\x20\x20
ID_MODEL_ID=60a6
ID_PATH=pci-0000:00:1d.7-usb-0:1:1.0-scsi-0:0:0:0
ID_PATH_TAG=pci-0000_00_1d_7-usb-0_1_1_0-scsi-0_0_0_0
ID_REVISION=2AM1
ID_SERIAL=Samsung_S2_Portable_3_000000000000011E0A60-0:0
ID_SERIAL_SHORT=000000000000011E0A60
ID_TYPE=disk
ID_USB_DRIVER=usb-storage
ID_USB_INTERFACES=:080650:
ID_USB_INTERFACE_NUM=00
ID_VENDOR=Samsung
ID_VENDOR_ENC=Samsung\x20
ID_VENDOR_ID=04e8
MAJOR=8
MINOR=16
SUBSYSTEM=block
UDEV_LOG=6
UDISKS_PRESENTATION_NOPOLICY=0
USEC_INITIALIZED=2063008397
run: '/usr/local/bin/makebak.sh'
builtin_kmod_exit: unload module index

And executed as root:

run_command: calling: test
adm_test: version 180
This program is for debugging only, it does not run any program,
specified by a RUN key. It may show incorrect results, because
some values may be different, or not available at a simulation run.

builtin_kmod_init: load module index
add_matching_files: unable to open '/run/udev/rules.d': No such file or directory
parse_file: reading '/lib/udev/rules.d/10-dm.rules' as rules file
parse_file: reading '/etc/udev/rules.d/10-local.rules' as rules file
parse_file: reading '/lib/udev/rules.d/11-dm-lvm.rules' as rules file
parse_file: reading '/lib/udev/rules.d/13-dm-disk.rules' as rules file
parse_file: reading '/lib/udev/rules.d/40-gphoto.rules' as rules file
add_rule: IMPORT found builtin 'usb_id --export %p', replacing /lib/udev/rules.d/40-gphoto.rules:11
parse_file: reading '/lib/udev/rules.d/42-qemu-usb.rules' as rules file
parse_file: reading '/lib/udev/rules.d/50-udev-default.rules' as rules file
parse_file: reading '/lib/udev/rules.d/53-sane.rules' as rules file
(... much more rules parsing ...)
udev_rules_new: rules use 216120 bytes tokens (18010 * 12 bytes), 28505 bytes buffer
udev_rules_new: temporary index used 52000 bytes (2600 * 20 bytes)
udev_device_new_from_syspath: device 0x21816d0 has devpath '/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1:1.0/host16/target16:0:0/16:0:0:0/block/sdb'
udev_device_new_from_syspath: device 0x2190de0 has devpath '/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1:1.0/host16/target16:0:0/16:0:0:0/block/sdb'
udev_device_read_db: device 0x2190de0 filled with db file data
udev_rules_apply_to_event: RUN '/usr/local/bin/makebak.sh' /etc/udev/rules.d/10-local.rules:1
udev_device_new_from_syspath: device 0x2183490 has devpath '/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1:1.0/host16/target16:0:0/16:0:0:0'
udev_device_new_from_syspath: device 0x2183c90 has devpath '/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1:1.0/host16/target16:0:0'
udev_device_new_from_syspath: device 0x2184480 has devpath '/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1:1.0/host16'
udev_device_new_from_syspath: device 0x2184c60 has devpath '/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1:1.0'
udev_device_new_from_syspath: device 0x2185420 has devpath '/devices/pci0000:00/0000:00:1d.7/usb2/2-1'
udev_device_new_from_syspath: device 0x2185c00 has devpath '/devices/pci0000:00/0000:00:1d.7/usb2'
udev_device_new_from_syspath: device 0x21863d0 has devpath '/devices/pci0000:00/0000:00:1d.7'
udev_device_new_from_syspath: device 0x2186b70 has devpath '/devices/pci0000:00'
udev_rules_apply_to_event: GROUP 6 /lib/udev/rules.d/50-udev-default.rules:67
udev_rules_apply_to_event: IMPORT 'ata_id --export /dev/sdb' /lib/udev/rules.d/60-persistent-storage.rules:37
udev_event_spawn: starting 'ata_id --export /dev/sdb'
spawn_read: 'ata_id --export /dev/sdb'(out) 'ID_ATA=1'
spawn_read: 'ata_id --export /dev/sdb'(out) 'ID_TYPE=disk'
spawn_read: 'ata_id --export /dev/sdb'(out) 'ID_BUS=ata'
spawn_read: 'ata_id --export /dev/sdb'(out) 'ID_MODEL=SAMSUNG_HM100UZ'
spawn_read: 'ata_id --export /dev/sdb'(out) 'ID_MODEL_ENC=SAMSUNG\x20HM100UZ\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'
spawn_read: 'ata_id --export /dev/sdb'(out) 'ID_REVISION=2AM10010'
spawn_read: 'ata_id --export /dev/sdb'(out) 'ID_SERIAL=SAMSUNG_HM100UZ_C5071E86AA22JN'
spawn_read: 'ata_id --export /dev/sdb'(out) 'ID_SERIAL_SHORT=C5071E86AA22JN'
spawn_read: 'ata_id --export /dev/sdb'(out) 'ID_ATA_WRITE_CACHE=1'
spawn_read: 'ata_id --export /dev/sdb'(out) 'ID_ATA_WRITE_CACHE_ENABLED=1'
spawn_read: 'ata_id --export /dev/sdb'(out) 'ID_ATA_FEATURE_SET_HPA=1'
spawn_read: 'ata_id --export /dev/sdb'(out) 'ID_ATA_FEATURE_SET_HPA_ENABLED=1'
spawn_read: 'ata_id --export /dev/sdb'(out) 'ID_ATA_FEATURE_SET_PM=1'
spawn_read: 'ata_id --export /dev/sdb'(out) 'ID_ATA_FEATURE_SET_PM_ENABLED=1'
spawn_read: 'ata_id --export /dev/sdb'(out) 'ID_ATA_FEATURE_SET_SECURITY=1'
spawn_read: 'ata_id --export /dev/sdb'(out) 'ID_ATA_FEATURE_SET_SECURITY_ENABLED=0'
spawn_read: 'ata_id --export /dev/sdb'(out) 'ID_ATA_FEATURE_SET_SECURITY_ERASE_UNIT_MIN=232'
spawn_read: 'ata_id --export /dev/sdb'(out) 'ID_ATA_FEATURE_SET_SECURITY_ENHANCED_ERASE_UNIT_MIN=232'
spawn_read: 'ata_id --export /dev/sdb'(out) 'ID_ATA_FEATURE_SET_SMART=1'
spawn_read: 'ata_id --export /dev/sdb'(out) 'ID_ATA_FEATURE_SET_SMART_ENABLED=1'
spawn_read: 'ata_id --export /dev/sdb'(out) 'ID_ATA_FEATURE_SET_AAM=1'
spawn_read: 'ata_id --export /dev/sdb'(out) 'ID_ATA_FEATURE_SET_AAM_ENABLED=0'
spawn_read: 'ata_id --export /dev/sdb'(out) 'ID_ATA_FEATURE_SET_AAM_VENDOR_RECOMMENDED_VALUE=254'
spawn_read: 'ata_id --export /dev/sdb'(out) 'ID_ATA_FEATURE_SET_AAM_CURRENT_VALUE=0'
spawn_read: 'ata_id --export /dev/sdb'(out) 'ID_ATA_FEATURE_SET_PUIS=1'
spawn_read: 'ata_id --export /dev/sdb'(out) 'ID_ATA_FEATURE_SET_PUIS_ENABLED=0'
spawn_read: 'ata_id --export /dev/sdb'(out) 'ID_ATA_FEATURE_SET_APM=1'
spawn_read: 'ata_id --export /dev/sdb'(out) 'ID_ATA_FEATURE_SET_APM_ENABLED=0'
spawn_read: 'ata_id --export /dev/sdb'(out) 'ID_ATA_DOWNLOAD_MICROCODE=1'
spawn_read: 'ata_id --export /dev/sdb'(out) 'ID_ATA_SATA=1'
spawn_read: 'ata_id --export /dev/sdb'(out) 'ID_ATA_SATA_SIGNAL_RATE_GEN2=1'
spawn_read: 'ata_id --export /dev/sdb'(out) 'ID_ATA_SATA_SIGNAL_RATE_GEN1=1'
spawn_read: 'ata_id --export /dev/sdb'(out) 'ID_ATA_ROTATION_RATE_RPM=5400'
spawn_read: 'ata_id --export /dev/sdb'(out) 'ID_WWN=0x50000f00aaeb0022'
spawn_read: 'ata_id --export /dev/sdb'(out) 'ID_WWN_WITH_EXTENSION=0x50000f00aaeb0022'
spawn_wait: 'ata_id --export /dev/sdb' [2273] exit with return code 0
udev_rules_apply_to_event: LINK 'disk/by-id/ata-SAMSUNG_HM100UZ_C5071E86AA22JN' /lib/udev/rules.d/60-persistent-storage.rules:44
udev_rules_apply_to_event: PROGRAM 'scsi_id --whitelisted --replace-whitespace -p0x80 -d /dev/sdb' /lib/udev/rules.d/60-persistent-storage.rules:52
udev_event_spawn: starting 'scsi_id --whitelisted --replace-whitespace -p0x80 -d /dev/sdb'
spawn_wait: 'scsi_id --whitelisted --replace-whitespace -p0x80 -d /dev/sdb' [2274] exit with return code 1
udev_rules_apply_to_event: IMPORT builtin 'path_id' /lib/udev/rules.d/60-persistent-storage.rules:61
udev_builtin_add_property: ID_PATH=pci-0000:00:1d.7-usb-0:1:1.0-scsi-0:0:0:0
udev_builtin_add_property: ID_PATH_TAG=pci-0000_00_1d_7-usb-0_1_1_0-scsi-0_0_0_0
udev_rules_apply_to_event: LINK 'disk/by-path/pci-0000:00:1d.7-usb-0:1:1.0-scsi-0:0:0:0' /lib/udev/rules.d/60-persistent-storage.rules:62
udev_rules_apply_to_event: IMPORT builtin 'blkid' /lib/udev/rules.d/60-persistent-storage.rules:76
builtin_blkid: probe /dev/sdb raid offset=0
udev_builtin_add_property: ID_PART_TABLE_TYPE=dos
udev_rules_apply_to_event: LINK 'disk/by-id/wwn-0x50000f00aaeb0022' /lib/udev/rules.d/60-persistent-storage.rules:86
udev_rules_apply_to_event: IMPORT 'udisks-part-id /dev/sdb' /lib/udev/rules.d/80-udisks.rules:88
udev_event_spawn: starting 'udisks-part-id /dev/sdb'
spawn_read: 'udisks-part-id /dev/sdb'(err) 'libudev: udev_device_new_from_syspath: device 0x1af8680 has devpath '/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1:1.0/host16/target16:0:0/16:0:0:0/block/sdb''
spawn_read: 'udisks-part-id /dev/sdb'(err) 'libudev: udev_device_read_db: device 0x1af8680 filled with db file data'
spawn_read: 'udisks-part-id /dev/sdb'(err) 'using device_file=/dev/sdb syspath=/sys/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1:1.0/host16/target16:0:0/16:0:0:0/block/sdb, offset=0 ao=0 and number=0 for /dev/sdb'
spawn_read: 'udisks-part-id /dev/sdb'(err) 'Entering MS-DOS parser (offset=0, size=1000204886016)'
spawn_read: 'udisks-part-id /dev/sdb'(err) 'MSDOS_MAGIC found'
spawn_read: 'udisks-part-id /dev/sdb'(err) 'looking at part 0 (offset 1048576, size 524288000000, type 0x07)'
spawn_read: 'udisks-part-id /dev/sdb'(err) 'new part entry'
spawn_read: 'udisks-part-id /dev/sdb'(err) 'looking at part 1 (offset 524289048576, size 475915091968, type 0x83)'
spawn_read: 'udisks-part-id /dev/sdb'(err) 'new part entry'
spawn_read: 'udisks-part-id /dev/sdb'(err) 'looking at part 2 (offset 0, size 0, type 0x00)'
spawn_read: 'udisks-part-id /dev/sdb'(err) 'new part entry'
spawn_read: 'udisks-part-id /dev/sdb'(err) 'looking at part 3 (offset 0, size 0, type 0x00)'
spawn_read: 'udisks-part-id /dev/sdb'(err) 'new part entry'
spawn_read: 'udisks-part-id /dev/sdb'(err) 'Exiting MS-DOS parser'
spawn_read: 'udisks-part-id /dev/sdb'(err) 'MSDOS partition table detected'
spawn_read: 'udisks-part-id /dev/sdb'(out) 'UDISKS_PARTITION_TABLE=1'
spawn_read: 'udisks-part-id /dev/sdb'(out) 'UDISKS_PARTITION_TABLE_SCHEME=mbr'
spawn_read: 'udisks-part-id /dev/sdb'(out) 'UDISKS_PARTITION_TABLE_COUNT=2'
spawn_wait: 'udisks-part-id /dev/sdb' [2276] exit with return code 0
udev_rules_apply_to_event: IMPORT 'udisks-probe-ata-smart /dev/sdb' /lib/udev/rules.d/80-udisks.rules:115
udev_event_spawn: starting 'udisks-probe-ata-smart /dev/sdb'
spawn_read: 'udisks-probe-ata-smart /dev/sdb'(err) 'libudev: udev_device_new_from_syspath: device 0x25b2c90 has devpath '/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1:1.0/host16/target16:0:0/16:0:0:0/block/sdb''
spawn_read: 'udisks-probe-ata-smart /dev/sdb'(err) 'libudev: udev_device_read_db: device 0x25b2c90 filled with db file data'
spawn_read: 'udisks-probe-ata-smart /dev/sdb'(err) 'libudev: udev_device_new_from_syspath: device 0x25b5230 has devpath '/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1:1.0/host16/target16:0:0/16:0:0:0''
spawn_read: 'udisks-probe-ata-smart /dev/sdb'(err) 'libudev: udev_device_new_from_syspath: device 0x25b5720 has devpath '/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1:1.0/host16/target16:0:0''
spawn_read: 'udisks-probe-ata-smart /dev/sdb'(err) 'libudev: udev_device_new_from_syspath: device 0x25b5d40 has devpath '/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1:1.0/host16''
spawn_read: 'udisks-probe-ata-smart /dev/sdb'(err) 'libudev: udev_device_new_from_syspath: device 0x25b6350 has devpath '/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1:1.0''
spawn_read: 'udisks-probe-ata-smart /dev/sdb'(err) 'libudev: udev_device_new_from_syspath: device 0x25b6940 has devpath '/devices/pci0000:00/0000:00:1d.7/usb2/2-1''
spawn_read: 'udisks-probe-ata-smart /dev/sdb'(out) 'UDISKS_ATA_SMART_IS_AVAILABLE=1'
spawn_wait: 'udisks-probe-ata-smart /dev/sdb' [2278] exit with return code 0
udev_node_add: handling device node '/dev/sdb', devnum=b8:16, mode=0660, uid=0, gid=6
node_fixup: preserve permissions /dev/sdb, 060660, uid=0, gid=6
node_symlink: preserve already existing symlink '/dev/block/8:16' to '../sdb'
link_find_prioritized: found 'b8:16' claiming '/run/udev/links/disk\x2fby-id\x2fata-SAMSUNG_HM100UZ_C5071E86AA22JN'
link_update: creating link '/dev/disk/by-id/ata-SAMSUNG_HM100UZ_C5071E86AA22JN' to '/dev/sdb'
node_symlink: preserve already existing symlink '/dev/disk/by-id/ata-SAMSUNG_HM100UZ_C5071E86AA22JN' to '../../sdb'
link_find_prioritized: found 'b8:16' claiming '/run/udev/links/disk\x2fby-id\x2fwwn-0x50000f00aaeb0022'
link_update: creating link '/dev/disk/by-id/wwn-0x50000f00aaeb0022' to '/dev/sdb'
node_symlink: preserve already existing symlink '/dev/disk/by-id/wwn-0x50000f00aaeb0022' to '../../sdb'
link_find_prioritized: found 'b8:16' claiming '/run/udev/links/disk\x2fby-path\x2fpci-0000:00:1d.7-usb-0:1:1.0-scsi-0:0:0:0'
link_update: creating link '/dev/disk/by-path/pci-0000:00:1d.7-usb-0:1:1.0-scsi-0:0:0:0' to '/dev/sdb'
node_symlink: preserve already existing symlink '/dev/disk/by-path/pci-0000:00:1d.7-usb-0:1:1.0-scsi-0:0:0:0' to '../../sdb'
udev_device_update_db: created db file '/run/udev/data/b8:16' for '/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1:1.0/host16/target16:0:0/16:0:0:0/block/sdb'
ACTION=add
DEVLINKS=/dev/disk/by-id/ata-SAMSUNG_HM100UZ_C5071E86AA22JN /dev/disk/by-id/wwn-0x50000f00aaeb0022 /dev/disk/by-path/pci-0000:00:1d.7-usb-0:1:1.0-scsi-0:0:0:0
DEVNAME=/dev/sdb
DEVPATH=/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1:1.0/host16/target16:0:0/16:0:0:0/block/sdb
DEVTYPE=disk
ID_ATA=1
ID_ATA_DOWNLOAD_MICROCODE=1
ID_ATA_FEATURE_SET_AAM=1
ID_ATA_FEATURE_SET_AAM_CURRENT_VALUE=0
ID_ATA_FEATURE_SET_AAM_ENABLED=0
ID_ATA_FEATURE_SET_AAM_VENDOR_RECOMMENDED_VALUE=254
ID_ATA_FEATURE_SET_APM=1
ID_ATA_FEATURE_SET_APM_ENABLED=0
ID_ATA_FEATURE_SET_HPA=1
ID_ATA_FEATURE_SET_HPA_ENABLED=1
ID_ATA_FEATURE_SET_PM=1
ID_ATA_FEATURE_SET_PM_ENABLED=1
ID_ATA_FEATURE_SET_PUIS=1
ID_ATA_FEATURE_SET_PUIS_ENABLED=0
ID_ATA_FEATURE_SET_SECURITY=1
ID_ATA_FEATURE_SET_SECURITY_ENABLED=0
ID_ATA_FEATURE_SET_SECURITY_ENHANCED_ERASE_UNIT_MIN=232
ID_ATA_FEATURE_SET_SECURITY_ERASE_UNIT_MIN=232
ID_ATA_FEATURE_SET_SMART=1
ID_ATA_FEATURE_SET_SMART_ENABLED=1
ID_ATA_ROTATION_RATE_RPM=5400
ID_ATA_SATA=1
ID_ATA_SATA_SIGNAL_RATE_GEN1=1
ID_ATA_SATA_SIGNAL_RATE_GEN2=1
ID_ATA_WRITE_CACHE=1
ID_ATA_WRITE_CACHE_ENABLED=1
ID_BUS=ata
ID_MODEL=SAMSUNG_HM100UZ
ID_MODEL_ENC=SAMSUNG\x20HM100UZ\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
ID_PART_TABLE_TYPE=dos
ID_PATH=pci-0000:00:1d.7-usb-0:1:1.0-scsi-0:0:0:0
ID_PATH_TAG=pci-0000_00_1d_7-usb-0_1_1_0-scsi-0_0_0_0
ID_REVISION=2AM10010
ID_SERIAL=SAMSUNG_HM100UZ_C5071E86AA22JN
ID_SERIAL_SHORT=C5071E86AA22JN
ID_TYPE=disk
ID_WWN=0x50000f00aaeb0022
ID_WWN_WITH_EXTENSION=0x50000f00aaeb0022
MAJOR=8
MINOR=16
SUBSYSTEM=block
UDEV_LOG=6
UDISKS_ATA_SMART_IS_AVAILABLE=1
UDISKS_PARTITION_TABLE=1
UDISKS_PARTITION_TABLE_COUNT=2
UDISKS_PARTITION_TABLE_SCHEME=mbr
UDISKS_PRESENTATION_NOPOLICY=0
USEC_INITIALIZED=2063008397
run: '/usr/local/bin/makebak.sh'
builtin_kmod_exit: unload module index

Does anyone know what the problem could be (and the solution)?
Thanks in advance!

Offline

#2 2012-02-10 13:32:42

falconindy
Developer
From: New York, USA
Registered: 2009-10-22
Posts: 4,111
Website

Re: Unable to retrieve device ID with udev daemon

I'd advise you not to fork a long running process from a udev rule. udev workers have a maximum lifetime (measured in seconds) and will be killed if they exceed this.

Offline

#3 2012-02-10 16:22:24

j0ker
Member
Registered: 2012-02-10
Posts: 6

Re: Unable to retrieve device ID with udev daemon

That's really good to know, thanks! Can you suggest any other possibilities?

I thought about doing it the other way round. Using rsnapshot I could create a cron job that would trigger once in a week, telling me that he wants to do a backup and that I should plug in the HDD. I think I could do this notify-and-wait with zenity under gnome. After I plugged in the HDD, I could click 'yes' on the notification and cron could trigger the backup. Do you see any drawbacks in this idea?

PS: The reason why I don't just plug the HDD in and trigger the backup manually is that I would forget that after some days. Thus, my second idea might be the more useful one.

Offline

#4 2012-02-10 18:16:34

falconindy
Developer
From: New York, USA
Registered: 2009-10-22
Posts: 4,111
Website

Re: Unable to retrieve device ID with udev daemon

Sure, a loop that waits up to a certain number of seconds for you to mount the device is far more preferrable. Something like...

#!/bin/bash

# max time to wait
timeout=60

# label of device to wait for
devlabel=blackhole

# where to look for it
devmount=/mnt/backup

dev_mounted() {
  mountpoint -q "$devmount" &&
    [[ $(findmnt -runo LABEL "$devmount") = "$devlabel" ]]
}

if ! dev_mounted; then
  printf "==> Waiting %s seconds for %s to be mounted on %s" "$devlabel" "$devmount"
  until dev_mounted; do
    sleep 1
    if (( --timeout == 0 )); then
      print "==> ERROR: device didn't show up after %s seconds!\n" "$timeout"
      exit 1
    fi
  done
fi

# do backup stuff here...

Offline

Board footer

Powered by FluxBB