X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=scripts%2Flive;h=fa76eb15970cbbb5f7dd19ddd89ec5ef289a9042;hb=0b23566984bd09f571b00153f351dbf7e32c6185;hp=0fa3900c5e7af3d3891e3dbc380c21b271ab8d82;hpb=75340e130768563c2282806aaa3e80f5f7b97b32;p=live-boot-grml.git diff --git a/scripts/live b/scripts/live index 0fa3900..fa76eb1 100755 --- a/scripts/live +++ b/scripts/live @@ -97,6 +97,11 @@ Arguments () export HOSTNAME LIVECONF ;; + isofrom=*|fromiso=*) + FROMISO="${ARGUMENT#*=}" + export FROMISO + ;; + username=*) USERNAME="${ARGUMENT#username=}" LIVECONF="changed" @@ -1384,6 +1389,17 @@ check_dev () devname="${2}" skip_uuid_check="${3}" + # support for fromiso=.../isofrom=.... + if [ -n "$FROMISO" ] + then + mkdir /isofrom + ISO_DEVICE="$(echo $FROMISO | sed 's|\(/dev/[a-z]*[0-9]*\).*|\1|')" + mount "$ISO_DEVICE" /isofrom + ISO_NAME="$(echo $FROMISO | sed 's|/dev/[a-z]*[0-9]*/||')" + loopdevname=$(setup_loop "/isofrom/${ISO_NAME}" "loop" "/sys/block/loop*" "" '') + devname="${loopdevname}" + fi + if [ -z "${devname}" ] then devname=$(sys2dev "${sysdev}") @@ -1655,6 +1671,15 @@ mountroot () log_end_msg fi + # if we do not unmount the ISO we can't run "fsck /dev/ice" later on + # because the mountpoint is left behind in /proc/mounts, so let's get + # rid of it when running from RAM + if [ -n "$FROMISO" ] && [ "${TORAM}" ] + then + losetup -d /dev/loop0 + grep -q /isofrom /proc/mounts && umount /isofrom + fi + if [ -n "${MODULETORAMFILE}" ] || [ -n "${PLAIN_ROOT}" ] then setup_unionfs "${livefs_root}" "${rootmnt}"