Upstream bug https://github.com/dracutdevs/dracut/issues/947
Summary: If any of multiple devices for a btrfs file system are slow to appear during startup, systemd tries to mount too soon, mount fails, and then boot fails. There is /usr/lib/udev/rules.d/64-btrfs.rules which waits on btrfs device ready to make sure all devices have appeared before mount is attempted, thus ensuring it succeeds; but this rule isn't in the initramfs.
Solution: Unconditionally add btrfs udev rule, or check fstab for any btrfs file systems, and add the rule to the initramfs. I'm not sure if the btrfs module is also needed (don't think so) or just the rule.
Metadata Update from @chrismurphy: - Issue assigned to chrismurphy
This might be fixed in dracut-055. Needs testing. To test, make sure Btrfs is only used by a non sysroot volume, e.g. at /srv, because if sysroot is Btrfs it does get baked into the initramfs and what we need is for it to go into the initramfs when sysroot isn't btrfs (either unconditionally or whenever fstab indicates a btrfs file system).
Appears to be fixed https://github.com/dracutdevs/dracut/issues/947#issuecomment-785924107 https://github.com/systemd/systemd/pull/18802 https://github.com/dracutdevs/dracut/pull/1131
Metadata Update from @chrismurphy: - Issue close_status updated to: Fixed - Issue status updated to: Closed (was: Open)
Login to comment on this ticket.