/usr/lib/udev/rules.d
NameSizeModeActions
01-md-raid-creating.rules3210644editdlrm
40-usb_modeswitch.rules428610644editdlrm
40-vm-hotadd.rules6550644editdlrm
50-apport.rules1650644editdlrm
50-firmware.rules2100644editdlrm
50-udev-default.rules53610644editdlrm
55-dm.rules72820644editdlrm
55-scsi-sg3_id.rules66640644editdlrm
56-dm-mpath.rules45640644editdlrm
56-dm-parts.rules14420644editdlrm
56-lvm.rules24240644editdlrm
58-scsi-sg3_symlink.rules28630644editdlrm
60-autosuspend.rules7040644editdlrm
60-block.rules7030644editdlrm
60-cdrom_id.rules10710644editdlrm
60-dmi-id.rules6370644editdlrm
60-drm.rules8340644editdlrm
60-evdev.rules10930644editdlrm
60-fido-id.rules4910644editdlrm
60-infiniband.rules3790644editdlrm
60-input-id.rules2820644editdlrm
60-multipath.rules39810644editdlrm
60-open-vm-tools.rules2500644editdlrm
60-persistent-alsa.rules7270644editdlrm
60-persistent-input.rules32650644editdlrm
60-persistent-storage-dm.rules19640644editdlrm
60-persistent-storage-mtd.rules4110644editdlrm
60-persistent-storage-tape.rules26060644editdlrm
60-persistent-storage.rules96930644editdlrm
60-persistent-v4l.rules10900644editdlrm
60-sensor.rules16180644editdlrm
60-serial.rules14270644editdlrm
60-tpm-udev.rules2430644editdlrm
61-persistent-storage-android.rules4550644editdlrm
63-md-raid-arrays.rules26110644editdlrm
64-btrfs-dm.rules3870644editdlrm
64-btrfs-zoned.rules3460644editdlrm
64-btrfs.rules6160644editdlrm
64-md-raid-assembly.rules18510644editdlrm
64-xfs.rules6470644editdlrm
66-azure-ephemeral.rules19510644editdlrm
68-del-part-nodes.rules11410644editdlrm
69-bcache.rules10440644editdlrm
69-lvm.rules35710644editdlrm
69-md-clustered-confirm-device.rules8460644editdlrm
70-camera.rules2800644editdlrm
70-iscsi-network-interface.rules2340644editdlrm
70-joystick.rules4320644editdlrm
70-memory.rules1840644editdlrm
70-mouse.rules7340644editdlrm
70-open-iscsi.rules2530644editdlrm
70-power-switch.rules5760644editdlrm
70-touchpad.rules4730644editdlrm
70-uaccess.rules34380644editdlrm
71-power-switch-proliant.rules4610644editdlrm
71-seat.rules38180644editdlrm
73-seat-late.rules6430644editdlrm
73-special-net-names.rules9690644editdlrm
75-net-description.rules4800644editdlrm
75-probe_mtd.rules1740644editdlrm
77-mm-broadmobi-port-types.rules9360644editdlrm
77-mm-cinterion-port-types.rules43950644editdlrm
77-mm-dell-port-types.rules17670644editdlrm
77-mm-dlink-port-types.rules8660644editdlrm
77-mm-ericsson-mbm.rules80840644editdlrm
77-mm-fibocom-port-types.rules66850644editdlrm
77-mm-foxconn-port-types.rules16030644editdlrm
77-mm-gosuncn-port-types.rules9070644editdlrm
77-mm-haier-port-types.rules5250644editdlrm
77-mm-huawei-net-port-types.rules25960644editdlrm
77-mm-linktop-port-types.rules6970644editdlrm
77-mm-longcheer-port-types.rules144340644editdlrm
77-mm-mtk-legacy-port-types.rules36200644editdlrm
77-mm-mtk-port-types.rules5840644editdlrm
77-mm-nokia-port-types.rules21760644editdlrm
77-mm-qcom-soc.rules16190644editdlrm
77-mm-qdl-device-blacklist.rules31550644editdlrm
77-mm-quectel-port-types.rules97410644editdlrm
77-mm-sierra.rules32550644editdlrm
77-mm-simtech-port-types.rules42250644editdlrm
77-mm-telit-port-types.rules122560644editdlrm
77-mm-tplink-port-types.rules7390644editdlrm
77-mm-ublox-port-types.rules50570644editdlrm
77-mm-x22x-port-types.rules46020644editdlrm
77-mm-zte-port-types.rules171790644editdlrm
78-graphics-card.rules9650644editdlrm
78-sound-card.rules48160644editdlrm
80-debian-compat.rules5940644editdlrm
80-drivers.rules6000644editdlrm
80-mm-candidate.rules16140644editdlrm
80-net-setup-link.rules2950644editdlrm
80-udisks2.rules105630644editdlrm
81-net-dhcp.rules5280644editdlrm
85-hdparm.rules820644editdlrm
90-bolt.rules3590644editdlrm
90-console-setup.rules2650644editdlrm
90-fwupd-devices.rules2810644editdlrm
90-iocost.rules7690644editdlrm
95-dm-notify.rules4790644editdlrm
95-kpartx.rules15180644editdlrm
96-e2scrub.rules1710644editdlrm
99-lxd-agent.rules3510644editdlrm
99-systemd.rules51030644editdlrm
99-vmware-scsi-udev.rules4330644editdlrm
Edit: /usr/lib/udev/rules.d/60-multipath.rules (3981B)
# Set DM_MULTIPATH_DEVICE_PATH if the device should be handled by multipath SUBSYSTEM!="block", GOTO="end_mpath" KERNEL!="sd*|dasd*|nvme*", GOTO="end_mpath" ACTION=="remove", TEST=="/run/multipath/find_multipaths/$major:$minor", \ RUN+="/usr/bin/rm -f /run/multipath/find_multipaths/$major:$minor" ACTION!="add|change", GOTO="end_mpath" IMPORT{cmdline}="nompath" ENV{nompath}=="?*", GOTO="end_mpath" IMPORT{cmdline}="multipath" ENV{multipath}=="off", GOTO="end_mpath" ENV{DEVTYPE}!="partition", GOTO="test_dev" IMPORT{parent}="DM_MULTIPATH_DEVICE_PATH" ENV{DM_MULTIPATH_DEVICE_PATH}=="1", ENV{ID_FS_TYPE}="none", \ ENV{SYSTEMD_READY}="0" GOTO="end_mpath" LABEL="test_dev" ENV{MPATH_SBIN_PATH}="/sbin" TEST!="$env{MPATH_SBIN_PATH}/multipath", ENV{MPATH_SBIN_PATH}="/usr/sbin" # FIND_MULTIPATHS_WAIT_UNTIL is the timeout (in seconds after the # epoch). IMPORT{db}="FIND_MULTIPATHS_WAIT_UNTIL" ENV{.SAVED_FM_WAIT_UNTIL}="$env{FIND_MULTIPATHS_WAIT_UNTIL}" # multipath -u needs to know if this device has ever been exported IMPORT{db}="DM_MULTIPATH_DEVICE_PATH" # multipath -u sets DM_MULTIPATH_DEVICE_PATH and, # if "find_multipaths smart", also FIND_MULTIPATHS_WAIT_UNTIL. IMPORT{program}="$env{MPATH_SBIN_PATH}/multipath -u %k" # case 1: this is definitely multipath ENV{DM_MULTIPATH_DEVICE_PATH}=="1", \ ENV{ID_FS_TYPE}="mpath_member", ENV{SYSTEMD_READY}="0", \ GOTO="stop_wait" # case 2: this is definitely not multipath, or timeout has expired ENV{DM_MULTIPATH_DEVICE_PATH}!="2", \ GOTO="stop_wait" # Code below here is only run in "smart" mode. # multipath -u has indicated this is "maybe" multipath. # Note that DM_MULTIPATH_DEVICE_PATH has the value 2 at this point. # This value will never propagate to other rules files, because # it will be reset to 1 in the "pretend_multipath" section below. # This shouldn't happen, just in case. ENV{FIND_MULTIPATHS_WAIT_UNTIL}!="?*", GOTO="end_mpath" # Be careful not to start the timer twice. ACTION!="add", GOTO="pretend_mpath" ENV{.SAVED_FM_WAIT_UNTIL}=="?*", GOTO="pretend_mpath" # At this point, we are seeing this path for the first time, and it's "maybe" multipath. # The actual start command for the timer. # # The purpose of this command is only to make sure we will receive another # uevent eventually. *Any* uevent may cause waiting to finish if it either ends # in case 1-3 above, or if it arrives after FIND_MULTIPATHS_WAIT_UNTIL. # # Note that this will try to activate multipathd if it isn't running yet. # If that fails, the unit starts and expires nonetheless. If multipathd # startup needs to wait for other services, this wait time will add up with # the --on-active timeout. # # We must trigger an "add" event because LVM2 will only act on those. RUN+="/usr/bin/systemd-run --unit=cancel-multipath-wait-$kernel --description 'cancel waiting for multipath siblings of $kernel' --no-block --timer-property DefaultDependencies=no --timer-property Conflicts=shutdown.target --timer-property Before=shutdown.target --timer-property Conflicts=initrd-cleanup.service --timer-property Before=initrd-cleanup.service --timer-property AccuracySec=500ms --property DefaultDependencies=no --property Conflicts=shutdown.target --property Before=shutdown.target --property Conflicts=initrd-cleanup.service --property Before=initrd-cleanup.service --on-active=$env{FIND_MULTIPATHS_WAIT_UNTIL} /usr/bin/udevadm trigger --action=add $sys$devpath" LABEL="pretend_mpath" ENV{DM_MULTIPATH_DEVICE_PATH}="1" ENV{SYSTEMD_READY}="0" GOTO="end_mpath" LABEL="stop_wait" # If timeout hasn't expired but we're not in "maybe" state any more, stop timer # Do this only once, and only if the timer has been started before IMPORT{db}="FIND_MULTIPATHS_WAIT_CANCELLED" ENV{FIND_MULTIPATHS_WAIT_CANCELLED}!="?*", \ ENV{FIND_MULTIPATHS_WAIT_UNTIL}=="?*", \ ENV{FIND_MULTIPATHS_WAIT_UNTIL}!="0", \ ENV{FIND_MULTIPATHS_WAIT_CANCELLED}="1", \ RUN+="/usr/bin/systemctl stop cancel-multipath-wait-$kernel.timer" LABEL="end_mpath"