Adding skipconfig parameter to disable most customization.
[live-boot-grml.git] / scripts / live
index 0fa3900..e17f66f 100755 (executable)
@@ -49,6 +49,35 @@ Arguments ()
        for ARGUMENT in $(cat /proc/cmdline)
        do
                case "${ARGUMENT}" in
+                       skipconfig)
+                               NOACCESSIBILITY="Yes"
+                               NOAPPARMOR="Yes"
+                               NOAPTCDROM="Yes"
+                               NOAUTOLOGIN="Yes"
+                               NOCONSOLEKEYBOARD="Yes"
+                               NOFASTBOOT="Yes"
+                               NOFSTAB="Yes"
+                               NOGNOMEPANEL="Yes"
+                               NOHOSTS="Yes"
+                               NOJOCKEY="Yes"
+                               NOKPERSONALIZER="Yes"
+                               NOLANGUAGESELECTOR="Yes"
+                               NOLOCALES="Yes"
+                               NONETWORKING="Yes"
+                               NOPOLKITCONF="Yes"
+                               NOPOWERMANAGEMENT="Yes"
+                               NOPROGRAMCRASHES="Yes"
+                               NOSUDO="Yes"
+                               NOTIMEZONE="Yes"
+                               NOUPDATENOTIFIER="Yes"
+                               NOUSER="Yes"
+                               NOXAUTOCONFIG="Yes"
+                               NOXAUTOLOGIN="Yes"
+                               NOXSCREENSAVER="Yes"
+
+                               export NOACCESSIBILITY NOAPPARMOR NOAPTCDROM NOAUTOLOGIN NOCONSOLEKEYBOARD NOFASTBOOT NOFSTAB NOGNOMEPANEL NOHOSTS NOJOCKEY NOKPERSONALIZER NOLANGUAGESELECTOR NOLOCALES NONETWORKING NOPOLKITCONF NOPOWERMANAGEMENT NOPROGRAMCRASHES NOSUDO NOTIMEZONE NOUPDATENOTIFIER NOUSER NOXAUTOCONFIG NOXAUTOLOGIN NOXSCREENSAVER
+                               ;;
+
                        access=*)
                                ACCESS="${ARGUMENT#access=}"
                                export ACCESS
@@ -66,6 +95,11 @@ Arguments ()
                                set -x
                                ;;
 
+                       ethdevice=*)
+                               DEVICE="${ARGUMENT#ethdevice=}"
+                               export DEVICE
+                               ;;
+
                        fetch=*)
                                 FETCH="${ARGUMENT#fetch=}"
                                 export FETCH
@@ -97,6 +131,11 @@ Arguments ()
                                export HOSTNAME LIVECONF
                                ;;
 
+                       isofrom=*|fromiso=*)
+                               FROMISO="${ARGUMENT#*=}"
+                               export FROMISO
+                               ;;
+
                        username=*)
                                USERNAME="${ARGUMENT#username=}"
                                LIVECONF="changed"
@@ -380,9 +419,9 @@ Arguments ()
                                mount -o bind /dev /root/dev
 
                                mkdir -p /root/var/run/network
-                               chroot /root dhclient eth0
+                               [ "${NETBOOT}" ] || chroot /root dhclient eth0
                                chroot /root wget -P /tmp "${location}"
-                               chroot /root ifconfig eth0 down
+                               [ "${NETBOOT}" ] || chroot /root ifconfig eth0 down
 
                                umount /root/sys
                                umount /root/proc
@@ -611,7 +650,7 @@ is_nice_device ()
 {
        sysfs_path="${1#/sys}"
 
-       if /lib/udev/path_id "${sysfs_path}" | grep -E -q "ID_PATH=(usb|pci-)"
+       if /lib/udev/path_id "${sysfs_path}" | grep -E -q "ID_PATH=(usb|pci-|platform-mmc)"
        then
                return 0
        elif echo "${sysfs_path}" | grep -q '^/block/vd[a-z]$'
@@ -1384,6 +1423,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 +1705,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}"