X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=scripts%2Fboot%2F9990-overlay.sh;h=d377d3433196e4fd704d03e2fa16a01f69aa5885;hb=c0b91e4572ddbbfa5da4e61bfd99ad20bc2f3dc1;hp=597ff50fcec72ad7ecbc2ac380f7baaa20baf1b9;hpb=2dc6316b33d2bdf0807e72393929c9c1b6e1a383;p=live-boot-grml.git diff --git a/scripts/boot/9990-overlay.sh b/scripts/boot/9990-overlay.sh index 597ff50..d377d34 100755 --- a/scripts/boot/9990-overlay.sh +++ b/scripts/boot/9990-overlay.sh @@ -405,11 +405,30 @@ setup_unionfs () done fi + # make /root/live writable for moving filesystems mkdir -p "${rootmnt}/live" - mount -o move /live "${rootmnt}/live" >/dev/null 2>&1 || mount -o bind /live "${rootmnt}/live" || log_warning_msg "Unable to move or bind /live to ${rootmnt}/live" + mount -t tmpfs tmpfs "${rootmnt}/live" + + # move all mountpoints to root filesystem + for _DIRECTORY in rofs persistence + do + if [ -d "/live/${_DIRECTORY}" ] + then + mkdir -p "${rootmnt}/live/${_DIRECTORY}" + + for _MOUNT in $(ls /live/${_DIRECTORY}) + do + mkdir -p "${rootmnt}/live/${_DIRECTORY}/${_MOUNT}" + mount -o move "/live/${_DIRECTORY}/${_MOUNT}" "${rootmnt}/live/${_DIRECTORY}/${_MOUNT}" > /dev/null 2>&1 || \ + mount -o bind "/live/${_DIRECTORY}/${_MOUNT}" "${rootmnt}/live/${_DIRECTORY}/${_MOUNT}" || \ + log_warning_msg "W: failed to mount /live/${_DIRECTORY}/${_MOUNT} to ${rootmnt}/live/${_DIRECTORY}/${_MOUNT}" + done + fi + done - # shows cow fs on /overlay (FIXME: do we still need/want this? probably yes) mkdir -p "${rootmnt}/live/overlay" - mount -o move /live/overlay "${rootmnt}/live/overlay" >/dev/null 2>&1 || mount -o bind /overlay "${rootmnt}/live/overlay" || log_warning_msg "Unable to move or bind /overlay to ${rootmnt}/live/overlay" + mount -o move /live/overlay "${rootmnt}/live/overlay" > /dev/null 2>&1 || \ + mount -o bind /overlay "${rootmnt}/live/overlay" || \ + log_warning_msg "W: failed to mount /overlay to ${rootmnt}/live/overlay" }