[systemd-devel] Using btrfs subvolumes with systemd

Andrei Borzenkov arvidjaar at gmail.com
Fri Jun 10 08:36:50 UTC 2016


10.06.2016 11:01, Florent Peterschmitt пишет:
> 10 juin 2016 08:06 "Andrei Borzenkov" <arvidjaar at gmail.com> a écrit:
>> 09.06.2016 23:30, Florent Peterschmitt пишет:
>>
>>> The log with systemd.log_level=debug at boot is located here:
>>> http://data.peterschmitt.fr/systemd.log
>>
>> Unfortunately this log while being verbose does not add any useful
>> information.
>>
>>> Here is the output from udevadm about /dev/mapper/root:
>>>
>>> # udevadm info /dev/mapper/root
>>> P: /devices/virtual/block/dm-0
>>> N: dm-0
>>> E: DEVNAME=/dev/dm-0
>>> E: DEVPATH=/devices/virtual/block/dm-0
>>> E: DEVTYPE=disk
>>> E: DM_UDEV_DISABLE_DISK_RULES_FLAG=1
>>> E: DM_UDEV_DISABLE_OTHER_RULES_FLAG=1
>>> E: DM_UDEV_DISABLE_SUBSYSTEM_RULES_FLAG=1
>>> E: MAJOR=253
>>> E: MINOR=0
>>> E: SUBSYSTEM=block
>>> E: SYSTEMD_READY=0
>>
>> Which explains why systemd ignores this device.
>>
>> Look in initrd udev rules for SYSTEMD_READY assignment and post all
>> rules that do it.
> 
> cat initrd | cpio -idv && grep -rn SYSTEMD_READY returns nothing.
> 

SYSTEMD_READY must be set explicitly. There must be rule that does it.

Most likely your distro is using early cpio image, which means initrd is
concatenation of two archives - one plain cpio with processor firmware,
another compressed cpio with actual initramfs. That also explains that
you did not need to uncompress it.

Dracut has helper script to skip early cpio. May be your toolset offers
something similar.

> Perhaps genkernel (the tool used to make an initrd) is really not compatible with systemd.
> 
> This remembers me that "genkernel-next" exists and has an "UDEV=" variable, but didn't used it because the btrfs binary wasn't embedded.
> 
> I'll check it again, also i could try with dracut.
> 
> Thanks for your time, i'll give news about this.
> 
> Florent Peterschmitt
> 



More information about the systemd-devel mailing list