Bug#762395: systemd is not abel to boot systems with btrfs and without initramfs

Dimitri John Ledkov xnox at debian.org
Sat Oct 11 19:58:58 BST 2014


On 11 October 2014 18:09, Michael Biebl <biebl at debian.org> wrote:
> Am 11.10.2014 um 18:57 schrieb Dimitri John Ledkov:
>> Can someone from systemd experts say whether or not
>> systemd-udev-trigger is run before local-fs target?
>
> That's not quite how it works.
> local-fs.target is a dynamic target which all the mounts in /etc/fstab
> hook into.
> If you look at "systemctl show local-fs.target", you'll see that it has
> After=foo.mount bar.mount baz.mount
>
> So local-fs.target is delayed until all mount points as defined in
> /etc/fstab have shown up or a timeout is reached.
>
>
> mount units themselves are triggered via udev and mounted once the
> devices show up. Therefore, there is no explicit ordering between
> systemd-udev-trigger.service and local-fs.target.
>
>

So what needs doing? Because to mount btrfs /dev/sdb,
systemd-udev-trigger is needed to generate "block" "add" event and
thus execute btrfs scan, in the initramfs-less case.
And ate the moment systemd-udev-trigger is only called after local-fs.
This is far from the only filesystem that requires things to happen
and be available before one can mount it.


>> Original bug reporter, Can you change before/after/wants on the udevd
>> units such that systemd-udev-trigger unit is executed before local-fs
>> target and see if that resolves your problem or not?
>
> That should not be necessary.
>

btrfs scan is necessary to mount btrfs fstab entry.
with initramfs, this happens there.
without initramfs, it must happen before local-fs target.

-- 
Regards,

Dimitri.




More information about the Pkg-systemd-maintainers mailing list