[systemd-devel] timed out waiting for device dev-disk-by\x2duuid

Chris Murphy lists at colorremedies.com
Sun May 18 11:24:25 PDT 2014


On May 17, 2014, at 5:30 PM, Chris Murphy <lists at 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



More information about the systemd-devel mailing list