.device units wait for *udev* to broadcast the uevent about that device being added, which happens after udev has 1. received the initial kernel uevent (either real or produced by systemd-udev-trigger.service) and 2. finished processing all its .rules for that device (which means everything that rules launched from RUN= must have exited, etc).
Only devices that udev rules have tagged with TAG+="systemd" will produce .device units; generally 99-systemd.rules will add that to disk devices. If any of the rules have marked the device with ENV{SYSTEMD_READY}="0", the .device unit will keep waiting until another event removes that. On Sat, Sep 16, 2023, 07:54 Philip Couling <coul...@gmail.com> wrote: > I'm trying to understand what a system is timing out waiting for a device > in /etc/fstab when a simple "mount -av" will succeed. > > To reach systemd, initramfs has already mounted the device as the base > layer to an overlay mount used as the root file system, so it's definitely > ready to use in the Linux kernel. In /etc/fstab, fsck is set to 0. > > What condition does systemd wait for that could be timing out on a device > that's already mounted? > >