summaryrefslogtreecommitdiff
path: root/rules.d
diff options
context:
space:
mode:
authorDarsey Litzenberger <dlitz@dlitz.net>2022-07-10 21:47:45 -0700
committerYu Watanabe <watanabe.yu+github@gmail.com>2022-07-15 07:54:14 +0900
commitb5e17d7fed3ab1f1f2c64a20d904390577b53fa9 (patch)
tree780be2370f614f3aae85c27d3d69e3eda911ef6f /rules.d
parentc043291774ab81cb9544efaf387f41711da5d1a2 (diff)
downloadsystemd-b5e17d7fed3ab1f1f2c64a20d904390577b53fa9.tar.gz
udev: add flag to allow disabling blkid probing
This can be useful for users of slow block devices. For example, the persistent-storage rules are needed for USB floppy drives be recognized by udisks2, but the extra blkid calls cause thrashing for 25+ seconds after every disk change. With this change, a user wishing to avoid the extra blkid invocation(s) could create /etc/udev/rules.d/55-floppy-noprobe.rules as follows: # Don't probe PC floppy drives SUBSYSTEM=="block", KERNEL=="fd*", \ ENV{UDEV_DISABLE_PERSISTENT_STORAGE_BLKID_FLAG}="1" # Don't probe USB floppy drives SUBSYSTEM=="block", SUBSYSTEMS=="usb", \ ATTRS{bInterfaceClass}=="08", ATTRS{bInterfaceSubClass}=="04", \ ENV{UDEV_DISABLE_PERSISTENT_STORAGE_BLKID_FLAG}="1" I didn't exclude floppies by default in this change, because floppy devices are also emulated by some BIOSes/hypervisors in some cases, and I don't know how many systems would fail to boot if /dev/disk/by-uuid/* became unavailable for 'floppy disks' on those systems.
Diffstat (limited to 'rules.d')
-rw-r--r--rules.d/60-persistent-storage.rules5
1 files changed, 5 insertions, 0 deletions
diff --git a/rules.d/60-persistent-storage.rules b/rules.d/60-persistent-storage.rules
index de08428207..03f0a619dc 100644
--- a/rules.d/60-persistent-storage.rules
+++ b/rules.d/60-persistent-storage.rules
@@ -99,6 +99,9 @@ ENV{DEVTYPE}=="partition", ENV{ID_PATH_ATA_COMPAT}=="?*", SYMLINK+="disk/by-path
KERNEL=="vd*[!0-9]", ENV{ID_PATH}=="pci-*", SYMLINK+="disk/by-path/virtio-$env{ID_PATH}"
KERNEL=="vd*[0-9]", ENV{ID_PATH}=="pci-*", SYMLINK+="disk/by-path/virtio-$env{ID_PATH}-part%n"
+# allow admin to disable probing the filesystem for slow devices like floppy disk drives
+ENV{UDEV_DISABLE_PERSISTENT_STORAGE_BLKID_FLAG}=="1", GOTO="persistent_storage_blkid_probe_end"
+
# probe filesystem metadata of optical drives which have a media inserted
KERNEL=="sr*", ENV{DISK_EJECT_REQUEST}!="?*", ENV{ID_CDROM_MEDIA_TRACK_COUNT_DATA}=="?*", ENV{ID_CDROM_MEDIA_SESSION_LAST_OFFSET}=="?*", \
IMPORT{builtin}="blkid --hint=session_offset=$env{ID_CDROM_MEDIA_SESSION_LAST_OFFSET}"
@@ -109,6 +112,8 @@ KERNEL=="sr*", ENV{DISK_EJECT_REQUEST}!="?*", ENV{ID_CDROM_MEDIA_TRACK_COUNT_DAT
# probe filesystem metadata of disks
KERNEL!="sr*|mmcblk[0-9]boot[0-9]", IMPORT{builtin}="blkid"
+LABEL="persistent_storage_blkid_probe_end"
+
# by-label/by-uuid links (filesystem metadata)
ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}"