I think we need a udev plumbing expert, I've exhausted my udev knowledge. For older releases such as bionic we have one event: UDEV [1304.304437] change /devices/virtual/block/bcache0 (block) .ID_FS_TYPE_NEW= ACTION=change CACHED_LABEL= CACHED_UUID=0192e0a7-9d8e-4771-9bb1-d730a2f66a9d DEVLINKS=/dev/bcache/by-uuid/0192e0a7-9d8e-4771-9bb1-d730a2f66a9d DEVNAME=/dev/bcache0 DEVPATH=/devices/virtual/block/bcache0 DEVTYPE=disk DRIVER=bcache ID_FS_TYPE= MAJOR=251 MINOR=0 SEQNUM=4384 SUBSYSTEM=block TAGS=:systemd: USEC_INITIALIZED=1304237024 that creates the expected symlink. --------- For focal, instead we get two events: UDEV [2763.370729] change /devices/virtual/block/bcache0 (block) ACTION=change DEVPATH=/devices/virtual/block/bcache0 SUBSYSTEM=block DRIVER=bcache CACHED_UUID=1522715e-a390-40db-8d47-06fb728014e5 CACHED_LABEL= DEVNAME=/dev/bcache0 DEVTYPE=disk SEQNUM=5523 USEC_INITIALIZED=2763323504 .ID_FS_TYPE_NEW= ID_FS_TYPE= MAJOR=251 MINOR=0 DEVLINKS=/dev/bcache/by-uuid/1522715e-a390-40db-8d47-06fb728014e5 TAGS=:systemd: KERNEL[2784.362374] change /devices/virtual/block/bcache0 (block) ACTION=change DEVPATH=/devices/virtual/block/bcache0 SUBSYSTEM=block SYNTH_UUID=0 DEVNAME=/dev/bcache0 DEVTYPE=disk SEQNUM=5524 MAJOR=251 MINOR=0 UDEV [2784.433618] change /devices/virtual/block/bcache0 (block) ACTION=change DEVPATH=/devices/virtual/block/bcache0 SUBSYSTEM=block SYNTH_UUID=0 DEVNAME=/dev/bcache0 DEVTYPE=disk SEQNUM=5524 USEC_INITIALIZED=2763323504 ID_FS_UUID=30b28bee-6a1e-423d-9d53-32c78ba5454a ID_FS_UUID_ENC=30b28bee-6a1e-423d-9d53-32c78ba5454a ID_FS_VERSION=1.0 ID_FS_TYPE=ext4 ID_FS_USAGE=filesystem .ID_FS_TYPE_NEW=ext4 MAJOR=251 MINOR=0 DEVLINKS=/dev/disk/by-uuid/30b28bee-6a1e-423d-9d53-32c78ba5454a TAGS=:systemd: This performs: pr 21 14:15:22 ubuntu-focal systemd-udevd[1870]: bcache0: Processing device (SEQNUM=5523, ACTION=change) Apr 21 14:15:22 ubuntu-focal systemd-udevd[1870]: bcache0: Removing watch Apr 21 14:15:22 ubuntu-focal systemd-udevd[1870]: value '[dmi/id]sys_vendor' is 'QEMU' Apr 21 14:15:22 ubuntu-focal systemd-udevd[1870]: value '[dmi/id]sys_vendor' is 'QEMU' Apr 21 14:15:22 ubuntu-focal systemd-udevd[1870]: bcache0: /usr/lib/udev/rules.d/60-persistent-storage.rules:109 Importing properties from results of builtin command 'blkid' Apr 21 14:15:22 ubuntu-focal systemd-udevd[1870]: bcache0: Probe /dev/bcache0 with raid and offset=0 Apr 21 14:15:22 ubuntu-focal systemd-udevd[1870]: bcache0: /usr/lib/udev/rules.d/69-bcache.rules:16 Importing properties from results of 'probe-bcache -o udev /dev/bcache0' Apr 21 14:15:22 ubuntu-focal systemd-udevd[1870]: bcache0: Starting 'probe-bcache -o udev /dev/bcache0' Apr 21 14:15:22 ubuntu-focal systemd-udevd[1870]: Successfully forked off '(spawn)' as PID 1912. Apr 21 14:15:22 ubuntu-focal systemd-udevd[1870]: bcache0: Process 'probe-bcache -o udev /dev/bcache0' succeeded. Apr 21 14:15:22 ubuntu-focal systemd-udevd[1870]: bcache0: /usr/lib/udev/rules.d/69-bcache.rules:27 LINK 'bcache/by-uuid/1522715e-a390-40db-8d47-06fb728014e5' Apr 21 14:15:22 ubuntu-focal systemd-udevd[1870]: bcache0: Handling device node '/dev/bcache0', devnum=b251:0 Apr 21 14:15:22 ubuntu-focal systemd-udevd[1870]: bcache0: Preserve already existing symlink '/dev/block/251:0' to '../bcache0' Apr 21 14:15:22 ubuntu-focal systemd-udevd[1870]: bcache0: Creating symlink '/dev/bcache/by-uuid/1522715e-a390-40db-8d47-06fb728014e5' to '../../bcache0' Apr 21 14:15:22 ubuntu-focal systemd-udevd[1870]: bcache0: sd-device: Created db file '/run/udev/data/b251:0' for '/devices/virtual/block/bcache0' Apr 21 14:15:22 ubuntu-focal systemd-udevd[1870]: bcache0: Adding watch on '/dev/bcache0' Apr 21 14:15:22 ubuntu-focal systemd-udevd[1870]: bcache0: sd-device: Created db file '/run/udev/data/b251:0' for '/devices/virtual/block/bcache0' Apr 21 14:15:22 ubuntu-focal systemd-udevd[1870]: bcache0: Device (SEQNUM=5523, ACTION=change) processed Apr 21 14:15:22 ubuntu-focal systemd-udevd[1870]: bcache0: sd-device-monitor: Passed 388 byte to netlink monitor followed by the extra action: Apr 21 14:15:43 ubuntu-focal systemd-udevd[1916]: bcache0: Processing device (SEQNUM=5524, ACTION=change) Apr 21 14:15:43 ubuntu-focal systemd-udevd[1916]: bcache0: Removing watch Apr 21 14:15:43 ubuntu-focal systemd-udevd[1916]: value '[dmi/id]sys_vendor' is 'QEMU' Apr 21 14:15:43 ubuntu-focal systemd-udevd[1916]: value '[dmi/id]sys_vendor' is 'QEMU' Apr 21 14:15:43 ubuntu-focal systemd-udevd[1916]: bcache0: /usr/lib/udev/rules.d/60-persistent-storage.rules:109 Importing properties from results of builtin command 'blkid' Apr 21 14:15:43 ubuntu-focal systemd-udevd[1916]: bcache0: Probe /dev/bcache0 with raid and offset=0 Apr 21 14:15:43 ubuntu-focal systemd-udevd[1916]: bcache0: /usr/lib/udev/rules.d/60-persistent-storage.rules:112 LINK 'disk/by-uuid/30b28bee-6a1e-423d-9d53-32c78ba5454a' Apr 21 14:15:43 ubuntu-focal systemd-udevd[1916]: bcache0: Updating old name, '/dev/bcache/by-uuid/1522715e-a390-40db-8d47-06fb728014e5' no longer belonging to '/devices/virtual/block/bcache0' Apr 21 14:15:43 ubuntu-focal systemd-udevd[1916]: bcache0: No reference left, removing '/dev/bcache/by-uuid/1522715e-a390-40db-8d47-06fb728014e5' Apr 21 14:15:43 ubuntu-focal systemd-udevd[1916]: bcache0: Handling device node '/dev/bcache0', devnum=b251:0 Apr 21 14:15:43 ubuntu-focal systemd-udevd[1916]: bcache0: Preserve already existing symlink '/dev/block/251:0' to '../bcache0' Apr 21 14:15:43 ubuntu-focal systemd-udevd[1916]: bcache0: Creating symlink '/dev/disk/by-uuid/30b28bee-6a1e-423d-9d53-32c78ba5454a' to '../../bcache0' Apr 21 14:15:43 ubuntu-focal systemd-udevd[1916]: bcache0: sd-device: Created db file '/run/udev/data/b251:0' for '/devices/virtual/block/bcache0' Apr 21 14:15:43 ubuntu-focal systemd-udevd[1916]: bcache0: Adding watch on '/dev/bcache0' Apr 21 14:15:43 ubuntu-focal systemd-udevd[1916]: bcache0: sd-device: Created db file '/run/udev/data/b251:0' for '/devices/virtual/block/bcache0' Apr 21 14:15:43 ubuntu-focal systemd-udevd[1916]: bcache0: Device (SEQNUM=5524, ACTION=change) processed Apr 21 14:15:43 ubuntu-focal systemd-udevd[1916]: bcache0: sd-device-monitor: Passed 471 byte to netlink monitor So it appears the symlink is being added to /dev/bcache/by-uuid/1522715e-a390-40db-8d47-06fb728014e5 and then the next udev action removes this symlink and adds dev/disk/by-uuid/30b28bee-6a1e-423d-9d53-32c78ba5454a instead.