On 21.03.2015, Chris Murphy wrote:
I don't think systemd has any concept of filesystems (volume
formats).
It gets all of this from libblkid, udev, and the kernel. So I'd say
one of those three things is confused, and then confuses everything
else.
Didn't have much time today to further debug this thing, but I can confirm that
"something" is getting confused when rebooting for the first time with the new
partition.
Precisely: when I reformat /home with nilfs2 and check the assigned UUID
afterward, all is good. No /dev/sda with an erroneous UUID. Then I reboot, and
systemd claims it can't mount /home because "/dev/sda is busy". After
dropping
into runlevel 1, lsblk shows why: now /dev/sda has the same UUID as /home, and
of course can't /dev/sda not be mounted.
So whatever it is in the system that can't handle a nilfs2 mount wrecks it
here. Will dig further into it, but it seems like it's systemd itself. I took a
look into the systemd source, and it uses common /bin/mount to mount the
filesystems. Manually mounting /home and going to runlevel 5 works flawlessly.
Something in the boot process is wrong.
The fact you get a difference in output between lsblk and blkid is
itself a bug.
I'm afraid it isn't, because blkid doesn't show the toplevel physical device,
while lsblk -f does. Anyway, that's obviously not the problem here. Something
claims /dev/sda has the same UUID as /home, and then systemd looks up the UUID,
grabs the first assigned device and tries to mount it. And I don't get why the f*ck
/dev/sda should have a UUID or what wrecks it..