From 5eb526da4b499c36c3f60443062817328b0c2d16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= Date: Mon, 21 Jan 2019 02:06:39 +0100 Subject: [PATCH] dracut: fix checking for "Root filesystem" label, improve udev sync Don't try to dereference "Root filesytem" partlabel symlink, unless it's really present (not only directory for it). Also, use udevadm settle for waiting for /dev/xvda, instead of naive wait sleep loop. --- dracut/full-dmroot/qubes_cow_setup.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dracut/full-dmroot/qubes_cow_setup.sh b/dracut/full-dmroot/qubes_cow_setup.sh index 59fdf91..cca950c 100644 --- a/dracut/full-dmroot/qubes_cow_setup.sh +++ b/dracut/full-dmroot/qubes_cow_setup.sh @@ -53,12 +53,12 @@ fi modprobe xenblk || modprobe xen-blkfront || warn "Qubes: Cannot load Xen Block Frontend..." log_begin "Waiting for /dev/xvda* devices..." -while ! [ -e /dev/xvda ]; do sleep 0.1; done +udevadm settle --exit-if-exists=/dev/xvda log_end # prefer partition if exists if [ -b /dev/xvda1 ]; then - if [ -d /dev/disk/by-partlabel ]; then + if [ -e "/dev/disk/by-partlabel/Root\\x20filesystem" ]; then ROOT_DEV=$(basename $(readlink "/dev/disk/by-partlabel/Root\\x20filesystem")) else ROOT_DEV=xvda3