We do run udevd at the initramfs stage in init-top and stop it in init-bottom:
➜ scripts git:(ubuntu/xenial-updates) ✗ grep -RiP udev
init-bottom/udev:# Stop udevd, we'll miss a few events while we run init, but we catch up
init-bottom/udev:udevadm control --exit
And, from what I can see after adding some logging to the udev rule and updating initramfs, KOBJ_CHANGE events generated by the bcache driver are processed by 69-bcache.rules:
So the UUID is present in the environment of the CHANGE uevent but the symlink is not present when I ssh into the system after the boot process.
I wonder why that happens as devtmpfs mounted at /dev is moved to the new rootfs before init script exits and systemd is started - so if it's created on that devtmpfs, it should be there at the end:
We do run udevd at the initramfs stage in init-top and stop it in init-bottom:
➜ scripts git:(ubuntu/ xenial- updates) ✗ grep -RiP udev udev:udevadm control --exit
init-bottom/udev:# Stop udevd, we'll miss a few events while we run init, but we catch up
init-bottom/
init-top/ udev:SYSTEMD_ LOG_LEVEL= $log_level /lib/systemd/ systemd- udevd --daemon --resolve- names=never udev:udevadm trigger --type=subsystems --action=add udev:udevadm trigger --type=devices --action=add udev:udevadm settle || true
init-top/
init-top/
init-top/
And, from what I can see after adding some logging to the udev rule and updating initramfs, KOBJ_CHANGE events generated by the bcache driver are processed by 69-bcache.rules:
http:// paste.ubuntu. com/26080228/ (rule)
https:/ /paste. ubuntu. com/26080236/ (dmesg) virtual/ block/bcache0 UUID: dd563676- f731-420c- a65d-93992321eb 14, LABEL: virtual/ block/bcache1 UUID: 3aec199f- d1d7-452f- a56d-9c946c72ca e1, LABEL: virtual/ block/bcache3 virtual/ block/bcache3 virtual/ block/bcache3 UUID: 2c8f2de3- a1a5-4f53- ad00-09294eb195 12, LABEL: virtual/ block/bcache2 virtual/ block/bcache2 virtual/ block/bcache2 UUID: dcdb4830- 78f2-494a- 905b-efa549b484 fc, LABEL:
[ 1.789254] AFTER DRIVER BCACHE: devpath: /devices/
[ 1.790563] AFTER DRIVER BCACHE: devpath: /devices/
[ 1.794265] PROBING BCACHE /devices/
[ 1.795957] BEFORE DRIVER BCACHE /devices/
[ 1.798215] AFTER DRIVER BCACHE: devpath: /devices/
[ 1.801311] PROBING BCACHE /devices/
[ 1.803180] BEFORE DRIVER BCACHE /devices/
[ 1.804731] AFTER DRIVER BCACHE: devpath: /devices/
So the UUID is present in the environment of the CHANGE uevent but the symlink is not present when I ssh into the system after the boot process.
I wonder why that happens as devtmpfs mounted at /dev is moved to the new rootfs before init script exits and systemd is started - so if it's created on that devtmpfs, it should be there at the end:
https:/ /git.launchpad. net/~usd- import- team/ubuntu/ +source/ systemd/ tree/debian/ extra/initramfs -tools/ scripts/ init-bottom/ udev?h= applied/ ubuntu/ xenial- updates