From 84188910cf54d07aac2079de7897932bf94ede66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= Date: Sun, 9 Jun 2019 22:10:06 +0200 Subject: [PATCH] initrd: mount / rw for the overlayfs setup time overlayfs refuse to use R/O upperdir. Since dmroot is properly set already, it's ok to mount it R/W. But remount it later R/O, to not confuse startup scripts. Fixes QubesOS/qubes-issues#5087 --- dracut/simple/init.sh | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/dracut/simple/init.sh b/dracut/simple/init.sh index 7a924e3..72479a1 100644 --- a/dracut/simple/init.sh +++ b/dracut/simple/init.sh @@ -86,7 +86,7 @@ fi /sbin/modprobe ext4 mkdir -p /sysroot -mount /dev/mapper/dmroot /sysroot -o ro +mount /dev/mapper/dmroot /sysroot -o rw NEWROOT=/sysroot kver="`uname -r`" @@ -99,18 +99,14 @@ if ! [ -d "$NEWROOT/lib/modules/$kver/kernel" ]; then if /sbin/modprobe overlay; then # if overlayfs is supported, use that to provide fully writable /lib/modules if ! [ -d "$NEWROOT/lib/.modules_work" ]; then - mount "$NEWROOT" -o remount,rw mkdir -p "$NEWROOT/lib/.modules_work" - mount "$NEWROOT" -o remount,ro fi mount -t overlay none $NEWROOT/lib/modules -o lowerdir=/tmp/modules,upperdir=$NEWROOT/lib/modules,workdir=$NEWROOT/lib/.modules_work else # otherwise mount only `uname -r` subdirectory, to leave the rest of # /lib/modules writable if ! [ -d "$NEWROOT/lib/modules/$kver" ]; then - mount "$NEWROOT" -o remount,rw mkdir -p "$NEWROOT/lib/modules/$kver" - mount "$NEWROOT" -o remount,ro fi mount --bind "/tmp/modules/$kver" "$NEWROOT/lib/modules/$kver" fi @@ -119,5 +115,6 @@ if ! [ -d "$NEWROOT/lib/modules/$kver/kernel" ]; then fi umount /dev /sys /proc +mount "$NEWROOT" -o remount,ro exec /sbin/switch_root $NEWROOT /sbin/init