On May 17, 2014, at 5:30 PM, Chris Murphy <li...@colorremedies.com> wrote:
> 
> No, the system definitely does not attempt to mount it if there's a missing 
> device. Systemd never executes /bin/mount at all in that case. A prerequisite 
> for the mount attempt is this line:
> 
> [    1.621517] localhost.localdomain systemd[1]: 
> dev-disk-by\x2duuid-9ff63135\x2dce42\x2d4447\x2da6de\x2dd7c9b4fb6d66.device 
> changed dead -> plugged
> 
> That line only appears if all devices are present. And mount attempt doesn't 
> happen. The system just hangs.
> 
> However, if I do an rd.break=pre-mount, and get to a dracut shell this 
> command works:
> 
> mount -t btrfs -o subvol=root,ro,degraded -U <uuid>
> 
> The volume UUID is definitely present even though not all devices are 
> present. So actually in this case it's confusing why this uuid hasn't gone 
> from dead to plugged. Until it's plugged, the mount command won't happen.

2 device Btrfs raid1, sda3 and sdb3. When both are available I get these lines:

[    2.168697] localhost.localdomain systemd-udevd[109]: creating link 
'/dev/disk/by-uuid/9ff63135-ce42-4447-a6de-d7c9b4fb6d66' to '/dev/sda3'
[    2.170232] localhost.localdomain systemd-udevd[135]: creating link 
'/dev/disk/by-uuid/9ff63135-ce42-4447-a6de-d7c9b4fb6d66' to '/dev/sdb3'

That precipitates systemd changing the by-uuid.device from dead to plugged. If 
I remove one device, then udev does not create a link from uuid to /dev for the 
remaining device. Therefore the expected uuid doesn't ever appear to systemd, 
and thus it doesn't attempt to mount it, and the system hangs indefinitely.




Chris Murphy

_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to