X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=scripts%2Fboot%2F9990-overlay.sh;h=55254c7c1f29a49d273914f320a194414c5b4ec4;hb=5078ff3dd0fd6b5c2d9e1606ecceb4ea5bf47946;hp=9318f9b4f0d04c635ac7aed0805dc1848cbff8e2;hpb=5fdc7f1fd20cee26443879022c1e6a3d0377a2b3;p=live-boot-grml.git diff --git a/scripts/boot/9990-overlay.sh b/scripts/boot/9990-overlay.sh index 9318f9b..55254c7 100755 --- a/scripts/boot/9990-overlay.sh +++ b/scripts/boot/9990-overlay.sh @@ -350,34 +350,28 @@ setup_unionfs () fi live_rofs_list="" - # SHOWMOUNTS is necessary for custom mounts with the union option - # Since we may want to do custom mounts in user-space it's best to always enable SHOWMOUNTS - if true #[ -n "${SHOWMOUNTS}" ] || ( [ -n "${PERSISTENCE}" ] && [ -z "${NOPERSISTENCE}" ] 1) - then - # XXX: is the for loop really necessary? rofslist can only contain one item (see above XXX about EXPOSEDROOT) and this is also assumed elsewhere above (see use of $rofs above). - for d in ${rofslist} - do - live_rofs="/live/rofs/${d##*/}" - live_rofs_list="${live_rofs_list} ${live_rofs}" - mkdir -p "${live_rofs}" - case d in - *.dir) - # do nothing # mount -o bind "${d}" "${live_rofs}" - ;; - *) - case "${UNIONTYPE}" in - unionfs-fuse) - mount -o bind "${d}" "${live_rofs}" - ;; - - *) - mount -o move "${d}" "${live_rofs}" - ;; - esac - ;; - esac - done - fi + for d in ${rofslist} + do + live_rofs="/live/rofs/${d##*/}" + live_rofs_list="${live_rofs_list} ${live_rofs}" + mkdir -p "${live_rofs}" + case d in + *.dir) + # do nothing # mount -o bind "${d}" "${live_rofs}" + ;; + *) + case "${UNIONTYPE}" in + unionfs-fuse) + mount -o bind "${d}" "${live_rofs}" + ;; + + *) + mount -o move "${d}" "${live_rofs}" + ;; + esac + ;; + esac + done # Adding custom persistence if [ -n "${PERSISTENCE}" ] && [ -z "${NOPERSISTENCE}" ] @@ -405,29 +399,34 @@ setup_unionfs () done fi - # make /root/live writable for moving filesystems - mkdir -p "${rootmnt}/live" - mount -t tmpfs tmpfs "${rootmnt}/live" + # make /root/lib/live writable for moving filesystems + mkdir -p "${rootmnt}/lib/live" + mount -t tmpfs tmpfs "${rootmnt}/lib/live" # move all mountpoints to root filesystem for _DIRECTORY in rofs persistence do if [ -d "/live/${_DIRECTORY}" ] then - mkdir -p "${rootmnt}/live/${_DIRECTORY}" + mkdir -p "${rootmnt}/lib/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}" + mkdir -p "${rootmnt}/lib/live/${_DIRECTORY}/${_MOUNT}" + mount -o move "/live/${_DIRECTORY}/${_MOUNT}" "${rootmnt}/lib/live/${_DIRECTORY}/${_MOUNT}" > /dev/null 2>&1 || \ + mount -o bind "/live/${_DIRECTORY}/${_MOUNT}" "${rootmnt}/lib/live/${_DIRECTORY}/${_MOUNT}" || \ + log_warning_msg "W: failed to mount /live/${_DIRECTORY}/${_MOUNT} to ${rootmnt}/lib/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" + mkdir -p "${rootmnt}/lib/live/overlay" + mount -o move /live/overlay "${rootmnt}/lib/live/overlay" > /dev/null 2>&1 || \ + mount -o bind /live/overlay "${rootmnt}/lib/live/overlay" || \ + log_warning_msg "W: failed to mount /live/overlay to ${rootmnt}/lib/live/overlay" + # ensure that a potentially stray tmpfs gets removed + # otherways, initramfs-tools is unable to remove /live + # and fails to boot + umount /live/overlay || true }