[systemd-devel] fsck, /home, btrfs, multiple partitions/drives, boot failure [Ubuntu 15.04]

Roger Binns rogerb at rogerbinns.com
Thu May 28 11:41:27 PDT 2015


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 05/28/2015 02:37 AM, Andrei Borzenkov wrote:
> I was wrong here, device is opened by btrfs driver so there should
> be no collision here. Still obviously scanning fails (and it fails 
> actively, setting ID_BTRFS_READY). This needs some debugging on
> udev side.

I just tried booting with fsck.mode=skip and that didn't make any
difference, seemingly supporting your diagnosis (it being the device
stage rather than fsck stage where the problem lies).

Note that this problem is very silly.  The systemd binary is running
from the very devices it claims aren't ready!  If it actually tried to
mount /home then it would succeed every time.

Prior to Ubuntu 15.04/systemd, I had my drives in a different
configuration.  My motherboard has two SATA controllers, each with 4
ports (one is Intel, one is ASMedia).  I had the two drives making up
/ and /home on different controllers, and everything worked fine.  My
hypothesis is that the boot sequence looked like this:

1.  Wait for all storage controllers and all devices on them to be
enumerated

2.  Run btrfs device scan

3.  Mount root and pivot

4.  Within new root, attempt to mount everything in /etc/fstab without
any detection of availability etc

With 15.04 (both upstart and systemd, hence "blame" likely lying with
initrd+udev), things look concurrent:

1.  Enumerate storage controllers and all devices on them

1.  Simultaneously run btrfs device scan each time a new device is found

1.  Simultaneously, the moment /dev/disk/by-uuid/ROOTUUID shows up,
attempt to mount root filesystem

With the two halves of the btrfs filesystem on different controllers,
mounting of root failed.  Doing so at the emergency root shell worked
just fine.  I had to rewire my drives so they were on the same
controller which fixed this issue.

Is there any more information I can gather to make progress on this
issue?  Does systemd support any flags in /etc/fstab where I can tell
it just go ahead and mount instead of waiting for devices?

Roger
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iEYEARECAAYFAlVnYVMACgkQmOOfHg372QTLMwCfRUnluXxvRsRvFTULJ0Y1ORZO
5SkAnR8rM6++4yePhel+nfPlUNh/iRfN
=UF1T
-----END PGP SIGNATURE-----



More information about the systemd-devel mailing list