systemd/rules.d
Roland Hieber 3af66c089b udev: generate system-unique storage symlinks using device path
When the same disk image is written to multiple storage units, for
example an external SD card and an internal eMMC, the symlinks in
/dev/disk/by-{label,uuid,partlabel,partuuid}/ are no longer unique, and
will point to the device that is probed last.

Adressing partitions via labels and UUIDs is nice to work with, and
depending on the use case, it might also be more robust than using the
symlinks in /dev/disk/by-path/ containing the partition number. Combine
the two approaches to create unique symlinks containing both the device
path as well as the respective UUIDs or labels, and throw in a symlink
using the devpath and the partition number for the sake of completeness.

For an exemplary GPT-partitioned disk at "platform-2198000.mmc" with a
partition containing an ext4 file system, this might create symlinks of
the following form:

  /dev/disk/by-path/platform-2198000.mmc-part/by-partnum/1
  /dev/disk/by-path/platform-2198000.mmc-part/by-partuuid/e5a75233-3b90-4aec-8075-b4dd7132b48d
  /dev/disk/by-path/platform-2198000.mmc-part/by-partlabel/rootfs
  /dev/disk/by-path/platform-2198000.mmc-part/by-uuid/b2c92f24-8215-4680-b931-f423aae5f1c9
  /dev/disk/by-path/platform-2198000.mmc-part/by-label/rootfs

Signed-off-by: Roland Hieber <rhi@pengutronix.de>
2023-12-06 22:22:08 +01:00
..
50-udev-default.rules.in udev: add new builtin net_driver 2023-11-01 16:00:19 +00:00
60-autosuspend.rules Add support to set autosuspend delay via hwdb 2022-05-09 21:14:12 -05:00
60-block.rules Rename udev's rules/ to rules.d/ 2019-10-10 00:53:09 +01:00
60-cdrom_id.rules Rename udev's rules/ to rules.d/ 2019-10-10 00:53:09 +01:00
60-dmi-id.rules rules: split out DMI related rules from udev-default.rules 2023-06-20 14:44:36 +02:00
60-drm.rules udev: add USB revision in ID_PATH 2023-05-20 14:27:10 +09:00
60-evdev.rules rules: add missing line continuation 2022-12-21 09:52:07 +01:00
60-fido-id.rules rules: Move ID_SMARTCARD_READER definition to a <70 configuration. 2021-03-03 15:18:55 +01:00
60-infiniband.rules udev/rules: add by-path and by-ibdev links to infiniband verbs 2022-10-14 12:18:08 +09:00
60-input-id.rules Rename udev's rules/ to rules.d/ 2019-10-10 00:53:09 +01:00
60-persistent-alsa.rules udev: add USB revision in ID_PATH 2023-05-20 14:27:10 +09:00
60-persistent-input.rules udev: add USB revision in ID_PATH 2023-05-20 14:27:10 +09:00
60-persistent-storage-mtd.rules rules: add mtd/by-name symlinks 2023-10-17 11:43:30 +02:00
60-persistent-storage-tape.rules udev: add USB revision in ID_PATH 2023-05-20 14:27:10 +09:00
60-persistent-storage.rules.in udev: generate system-unique storage symlinks using device path 2023-12-06 22:22:08 +01:00
60-persistent-v4l.rules udev: add USB revision in ID_PATH 2023-05-20 14:27:10 +09:00
60-sensor.rules udev: hwdb: Add rules to match cros-ec-accel by 'location' sysfs file 2022-08-18 21:17:19 +03:00
60-serial.rules udev: add USB revision in ID_PATH 2023-05-20 14:27:10 +09:00
64-btrfs.rules.in Drop split-usr and unmerged-usr support 2023-07-28 19:34:03 +01:00
70-camera.rules rules: remove stray whitespace before comma between tokens 2023-03-27 10:00:30 +00:00
70-joystick.rules Rename udev's rules/ to rules.d/ 2019-10-10 00:53:09 +01:00
70-memory.rules udev: Extract RAM properties from DMI information 2020-12-16 18:32:29 +01:00
70-mouse.rules Rename udev's rules/ to rules.d/ 2019-10-10 00:53:09 +01:00
70-power-switch.rules meson: move udev rules to rules.d/ 2022-05-05 11:51:44 +02:00
70-touchpad.rules Rename udev's rules/ to rules.d/ 2019-10-10 00:53:09 +01:00
70-uaccess.rules.in hwdb: Allow users access to USB serial for analysers 2022-08-09 18:12:19 +02:00
71-seat.rules.in Drop split-usr and unmerged-usr support 2023-07-28 19:34:03 +01:00
73-seat-late.rules.in meson: move udev rules to rules.d/ 2022-05-05 11:51:44 +02:00
75-net-description.rules Rename udev's rules/ to rules.d/ 2019-10-10 00:53:09 +01:00
75-probe_mtd.rules Rename udev's rules/ to rules.d/ 2019-10-10 00:53:09 +01:00
78-sound-card.rules Rename udev's rules/ to rules.d/ 2019-10-10 00:53:09 +01:00
80-drivers.rules udev-builtin-kmod: support to run without arguments 2022-10-14 21:32:24 +09:00
80-net-setup-link.rules udev: re-assign ID_NET_DRIVER=, ID_NET_LINK_FILE=, ID_NET_NAME= properties on non-'add' uevent 2020-09-15 11:29:35 +09:00
81-net-dhcp.rules network: enable DHCP broadcast flag if required by interface 2021-04-21 18:11:18 +02:00
82-net-auto-link-local.rules hwdb,rules: mark host-to-host network devices as only requiring link local addressing 2023-10-30 18:57:41 +01:00
90-iocost.rules udev/iocost: invert DEVTYPE match 2023-04-26 14:50:25 +09:00
90-vconsole.rules.in rules: start systemd-vconsole-setup via unit 2023-05-19 17:46:47 +02:00
99-systemd.rules.in rules: go to the end of rules indeed when dm is suspended 2023-11-29 09:57:55 +01:00
meson.build rules: add mtd/by-name symlinks 2023-10-17 11:43:30 +02:00
README docs: Fixing typo in systemd.device man page and README. 2021-09-29 22:18:38 +01:00

Files in this directory contain configuration for systemd-udevd.service, a
daemon that manages symlinks to device nodes, permissions of devices nodes,
emits device events for userspace, and renames network interfaces.

See man:udev(7) for an overview of the configuration file format, and
man:systemd-udevd.service(8) for a description of service itself.

Use 'systemd-analyze cat-config udev/rules.d' to display the effective config.