/usr/lib/udev/rules.d
NameSizeModeActions
10-dm.rules74920444editdlrm
11-dm-lvm.rules26290444editdlrm
11-dm-parts.rules14420644editdlrm
13-dm-disk.rules23060444editdlrm
40-elevator.rules7280644editdlrm
40-redhat.rules20140644editdlrm
40-usb-blacklist.rules4580644editdlrm
50-udev-default.rules54030644editdlrm
60-autosuspend.rules7040644editdlrm
60-block.rules7030644editdlrm
60-cdrom_id.rules10710644editdlrm
60-drm.rules4130644editdlrm
60-evdev.rules9900644editdlrm
60-fido-id.rules4910644editdlrm
60-input-id.rules2820644editdlrm
60-net.rules1290644editdlrm
60-persistent-alsa.rules6160644editdlrm
60-persistent-input.rules27190644editdlrm
60-persistent-storage-tape.rules22040644editdlrm
60-persistent-storage.rules109010644editdlrm
60-persistent-v4l.rules7690644editdlrm
60-sensor.rules16180644editdlrm
60-serial.rules11360644editdlrm
60-tpm-udev.rules2430644editdlrm
61-scsi-sg3_id.rules63590644editdlrm
63-fc-wwpn-id.rules6240644editdlrm
63-scsi-sg3_symlink.rules29700644editdlrm
64-btrfs.rules6160644editdlrm
65-scsi-cciss_id.rules7320644editdlrm
66-kpartx.rules13920644editdlrm
68-del-part-nodes.rules11420644editdlrm
69-dm-lvm.rules36920444editdlrm
70-camera.rules2810644editdlrm
70-joystick.rules4320644editdlrm
70-memory.rules1840644editdlrm
70-mouse.rules7340644editdlrm
70-power-switch.rules5760644editdlrm
70-touchpad.rules4730644editdlrm
70-uaccess.rules37520644editdlrm
71-prefixdevname.rules4030644editdlrm
71-seat.rules38180644editdlrm
73-seat-late.rules6430644editdlrm
75-net-description.rules5120644editdlrm
75-probe_mtd.rules1740644editdlrm
78-sound-card.rules48160644editdlrm
80-drivers.rules6000644editdlrm
80-net-setup-link.rules2950644editdlrm
81-net-dhcp.rules5280644editdlrm
84-nm-drivers.rules5330644editdlrm
85-nm-unmanaged.rules20130644editdlrm
90-nm-thunderbolt.rules5880644editdlrm
90-vconsole.rules4890644editdlrm
91-drm-modeset.rules560644editdlrm
95-dm-notify.rules4830444editdlrm
98-kexec.rules9060644editdlrm
99-nfs.rules950644editdlrm
99-systemd.rules50390644editdlrm
README4350644editdlrm
Edit: /usr/lib/udev/rules.d/69-dm-lvm.rules (3692B)
# Copyright (C) 2012,2021 Red Hat, Inc. All rights reserved. # # This file is part of LVM. # # This rule requires blkid to be called on block devices before so only devices # used as LVM PVs are processed (ID_FS_TYPE="LVM2_member"). SUBSYSTEM!="block", GOTO="lvm_end" ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}=="1", GOTO="lvm_end" # Ignore PVs on LVs. # This is usually a case of an LV being used for a guest VM # image, where the guest is using lvm. The host should # ignore lvm data from the guest and not attempt to scan or # activate guest PVs/LVs. (To enable functions in this file # for PVs layered on LVs, set LVM_PVSCAN_ON_LVS="1" from a # custom udev rule.) ENV{ID_FS_TYPE}=="LVM2_member", ENV{DM_UUID}=="LVM-?*", ENV{LVM_PVSCAN_ON_LVS}!="1", GOTO="lvm_end" # Only process devices already marked as a PV - this requires blkid to be called before. ENV{ID_FS_TYPE}!="LVM2_member", GOTO="lvm_end" ENV{DM_MULTIPATH_DEVICE_PATH}=="1", GOTO="lvm_end" ACTION=="remove", GOTO="lvm_end" # Create /dev/disk/by-id/lvm-pv-uuid- symlink for each PV ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-id/lvm-pv-uuid-$env{ID_FS_UUID_ENC}" # If the PV is a special device listed below, scan only if the device is # properly activated. These devices are not usable after an ADD event, # but they require an extra setup and they are ready after a CHANGE event. # Also support coldplugging with ADD event but only if the device is already # properly activated. # This logic should be eventually moved to rules where those particular # devices are processed primarily (MD and loop). # DM device: KERNEL!="dm-[0-9]*", GOTO="next" ENV{DM_UDEV_PRIMARY_SOURCE_FLAG}=="1", ENV{DM_ACTIVATION}=="1", GOTO="lvm_scan" GOTO="lvm_end" # MD device: LABEL="next" KERNEL!="md[0-9]*", GOTO="next" IMPORT{db}="LVM_MD_PV_ACTIVATED" ACTION=="add", ENV{LVM_MD_PV_ACTIVATED}=="1", GOTO="lvm_scan" ACTION=="change", ENV{LVM_MD_PV_ACTIVATED}!="1", TEST=="md/array_state", ENV{LVM_MD_PV_ACTIVATED}="1", GOTO="lvm_scan" ACTION=="add", KERNEL=="md[0-9]*p[0-9]*", GOTO="lvm_scan" GOTO="lvm_end" # Loop device: LABEL="next" KERNEL!="loop[0-9]*", GOTO="next" IMPORT{db}="LVM_LOOP_PV_ACTIVATED" ACTION=="add", ENV{LVM_LOOP_PV_ACTIVATED}=="1", GOTO="lvm_scan" ACTION=="change", ENV{LVM_LOOP_PV_ACTIVATED}!="1", TEST=="loop/backing_file", ENV{LVM_LOOP_PV_ACTIVATED}="1", GOTO="lvm_scan" GOTO="lvm_end" LABEL="next" ACTION!="add", GOTO="lvm_end" LABEL="lvm_scan" # pvscan will check if this device completes a VG, # i.e. all PVs in the VG are now present with the # arrival of this PV. If so, it prints to stdout: # LVM_VG_NAME_COMPLETE='foo' # # When the VG is complete it can be activated, so # vgchange -aay is run. It is run via # systemd since it can take longer to run than # udev wants to block when processing rules. # (if there are hundreds of LVs to activate, # the vgchange can take many seconds.) # # pvscan only reads the single device specified, # and uses temp files under /run/lvm to check if # other PVs in the VG are present. # # If event_activation=0 in lvm.conf, this pvscan # (using checkcomplete) will do nothing, so that # no event-based autoactivation will be happen. # # TODO: adjust the output of vgchange -aay so that # it's better suited to appearing in the journal. IMPORT{program}="/usr/sbin/lvm pvscan --cache --listvg --checkcomplete --vgonline --autoactivation event --udevoutput --journal=output $env{DEVNAME}" ENV{LVM_VG_NAME_COMPLETE}=="?*", RUN+="/usr/bin/systemd-run --no-block --property DefaultDependencies=no --unit lvm-activate-$env{LVM_VG_NAME_COMPLETE} /usr/sbin/lvm vgchange -aay --autoactivation event $env{LVM_VG_NAME_COMPLETE}" GOTO="lvm_end" LABEL="lvm_end"