Removing getty and login wrappers, live-config takes care about that now.
[live-boot-grml.git] / scripts / live
index 4169c90..c525c80 100755 (executable)
@@ -8,6 +8,7 @@ echo "/root/lib" >> /etc/ld.so.conf
 echo "/root/usr/lib" >> /etc/ld.so.conf
 
 mountpoint="/live/image"
+alt_mountpoint="/media"
 LIVE_MEDIA_PATH="live"
 
 root_persistence="live-rw"
@@ -33,9 +34,6 @@ then
        touch /etc/mtab
 fi
 
-[ -f /etc/live.conf ] && . /etc/live.conf
-export USERNAME USERFULLNAME HOSTNAME
-
 . /scripts/live-helpers
 
 if [ ! -f /live.vars ]
@@ -53,19 +51,14 @@ Arguments ()
                case "${ARGUMENT}" in
                        skipconfig)
                                NOACCESSIBILITY="Yes"
-                               NOAPTCDROM="Yes"
                                NOAUTOLOGIN="Yes"
                                NOCONSOLEKEYBOARD="Yes"
                                NOFASTBOOT="Yes"
                                NOFSTAB="Yes"
-                               NOHOSTS="Yes"
-                               NOLOCALES="Yes"
                                NONETWORKING="Yes"
-                               NOTIMEZONE="Yes"
                                NOXAUTOCONFIG="Yes"
-                               NOXAUTOLOGIN="Yes"
 
-                               export NOACCESSIBILITY NOAPTCDROM NOAUTOLOGIN NOCONSOLEKEYBOARD NOFASTBOOT NOFSTAB NOHOSTS NOLOCALES NONETWORKING NOTIMEZONE NOXAUTOCONFIG NOXAUTOLOGIN
+                               export NOACCESSIBILITY NOAUTOLOGIN NOCONSOLEKEYBOARD NOFASTBOOT NOFSTAB NONETWORKING NOXAUTOCONFIG
                                ;;
 
                        access=*)
@@ -85,6 +78,17 @@ Arguments ()
                                set -x
                                ;;
 
+                       dhcp)
+                               # Force dhcp even while netbooting
+                               # Use for debugging in case somebody works on fixing dhclient
+                               DHCP="Force";
+                               export DHCP
+                               ;;
+
+                       nodhcp)
+                               unset DHCP
+                               ;;
+
                        ethdevice=*)
                                DEVICE="${ARGUMENT#ethdevice=}"
                                export DEVICE
@@ -125,18 +129,6 @@ Arguments ()
                                export FROMISO
                                ;;
 
-                       username=*)
-                               USERNAME="${ARGUMENT#username=}"
-                               LIVECONF="changed"
-                               export USERNAME LIVECONF
-                               ;;
-
-                       userfullname=*)
-                               USERFULLNAME="${ARGUMENT#userfullname=}"
-                               LIVECONF="changed"
-                               export USERFULLNAME LIVECONF
-                               ;;
-
                        ignore_uuid)
                                IGNORE_UUID="Yes"
                                export IGNORE_UUID
@@ -158,31 +150,6 @@ Arguments ()
                                export STATICIP
                                ;;
 
-                       keyb=*|kbd-chooser/method=*)
-                               KBD="${ARGUMENT#*=}"
-                               export KBD
-                               ;;
-
-                       klayout=*|console-setup/layoutcode=*)
-                               KLAYOUT="${ARGUMENT#*=}"
-                               export KLAYOUT
-                               ;;
-
-                       kvariant=*|console-setup/variantcode=*)
-                               KVARIANT="${ARGUMENT#*=}"
-                               export KVARIANT
-                               ;;
-
-                       kmodel=*|console-setup/modelcode=*)
-                               KMODEL="${ARGUMENT#*=}"
-                               export KMODEL
-                               ;;
-
-                       koptions=*)
-                               KOPTIONS="${ARGUMENT#koptions=}"
-                               export KOPTIONS
-                               ;;
-
                        live-getty)
                                LIVE_GETTY="1"
                                export LIVE_GETTY
@@ -213,17 +180,6 @@ Arguments ()
                                export LIVE_MEDIA_TIMEOUT
                                ;;
 
-                       language=*|debian-installer/language=*)
-                               language=${x#debian-installer/language=}
-                               locale="$(lang2locale "$language")"
-                               set_locale="true"
-                               ;;
-
-                       locale=*|debian-installer/locale=*)
-                               LOCALE="${ARGUMENT#*=}"
-                               export LOCALE
-                               ;;
-
                        module=*)
                                MODULE="${ARGUMENT#module=}"
                                export MODULE
@@ -249,26 +205,11 @@ Arguments ()
                                export NOACCESSIBILITY
                                ;;
 
-                       noaptcdrom)
-                               NOAPTCDROM="Yes"
-                               export NOAPTCDROM
-                               ;;
-
                        noautologin)
                                NOAUTOLOGIN="Yes"
                                export NOAUTOLOGIN
                                ;;
 
-                       noxautologin)
-                               NOXAUTOLOGIN="Yes"
-                               export NOXAUTOLOGIN
-                               ;;
-
-                       noconsolekeyboard)
-                               NOCONSOLEKEYBOARD="Yes"
-                               export NOCONSOLEKEYBOARD
-                               ;;
-
                        nofastboot)
                                NOFASTBOOT="Yes"
                                export NOFASTBOOT
@@ -279,16 +220,6 @@ Arguments ()
                                export NOFSTAB
                                ;;
 
-                       nohosts)
-                               NOHOSTS="Yes"
-                               export NOHOSTS
-                               ;;
-
-                       nolocales)
-                               NOLOCALES="Yes"
-                               export NOLOCALES
-                               ;;
-
                        nonetworking)
                                NONETWORKING="Yes"
                                export NONETWORKING
@@ -304,11 +235,6 @@ Arguments ()
                                export NOXAUTOCONFIG
                                ;;
 
-                       noxscreensaver)
-                               NOXSCREENSAVER="Yes"
-                               export NOXSCREENSAVER
-                               ;;
-
                        persistent)
                                PERSISTENT="Yes"
                                export PERSISTENT
@@ -355,25 +281,6 @@ Arguments ()
                                export NOPRESEED
                                ;;
 
-                       url=*)
-                               URL_LOCATION="${ARGUMENT#url=}"
-
-                               mount -o bind /sys /root/sys
-                               mount -o bind /proc /root/proc
-                               mount -o bind /dev /root/dev
-
-                               mkdir -p /root/var/run/network
-                               [ "${NETBOOT}" ] || chroot /root dhclient eth0
-                               chroot /root wget -P /tmp "${URL_LOCATION}"
-                               [ "${NETBOOT}" ] || chroot /root ifconfig eth0 down
-
-                               umount /root/sys
-                               umount /root/proc
-                               umount /root/dev
-
-                               LOCATIONS="/tmp/$(basename ${URL_LOCATION}) ${LOCATIONS}"
-                               ;;
-
                        */*=*)
                                question="${ARGUMENT%%=*}"
                                value="${ARGUMENT#*=}"
@@ -391,21 +298,6 @@ Arguments ()
                                export SILENT
                                ;;
 
-                       textonly)
-                               TEXTONLY="Yes"
-                               export TEXTONLY
-                               ;;
-
-                       timezone=*)
-                               TIMEZONE="${ARGUMENT#timezone=}"
-                               export TIMEZONE
-                               ;;
-
-                       notimezone)
-                               NOTIMEZONE="Yes"
-                               export NOTIMEZONE
-                               ;;
-
                        todisk=*)
                                TODISK="${ARGUMENT#todisk=}"
                                export TODISK
@@ -699,8 +591,6 @@ copy_live_to ()
 
 do_netmount ()
 {
-       rc=1
-
        modprobe -q af_packet # For DHCP
 
        udevadm trigger
@@ -778,10 +668,12 @@ do_netmount ()
                NFSROOT=${ROOTSERVER}:${ROOTPATH}
        fi
 
-       if ( [ -n "${FETCH}" ] || [ -n "${HTTPFS}" ] || [ -n "${FTPFS}" ] ) && do_httpmount
+       rc=1
+
+       if ( [ -n "${FETCH}" ] || [ -n "${HTTPFS}" ] || [ -n "${FTPFS}" ] )
        then
-               rc=0
-               return ${rc}
+               do_httpmount
+               return $?
        fi
 
        if [ "${NFSROOT#*:}" = "${NFSROOT}" ] && [ "$NETBOOT" != "cifs" ]
@@ -808,19 +700,25 @@ do_netmount ()
 do_httpmount ()
 {
        rc=1
-       dest="${mountpoint}/${LIVE_MEDIA_PATH}"
-       mount -t ramfs ram "${mountpoint}"
-       mkdir -p "${dest}"
 
        for webfile in HTTPFS FTPFS FETCH
        do
-               url="$(eval echo \"\$\{${webfile}\}\")"
-               extension="$(echo "${url}" | sed 's/\(.*\)\.\(.*\)/\2/')"
+               local url="$(eval echo \"\$\{${webfile}\}\")"
+               local extension="$(echo "${url}" | sed 's/\(.*\)\.\(.*\)/\2/')"
 
                if [ -n "$url" ]
                then
                        case "${extension}" in
-                               squashfs|tgz|tar)
+                               iso|squashfs|tgz|tar)
+                                       if [ "${extension}" = "iso" ]
+                                       then
+                                               mkdir -p "${alt_mountpoint}"
+                                               dest="${alt_mountpoint}"
+                                       else
+                                               local dest="${mountpoint}/${LIVE_MEDIA_PATH}"
+                                               mount -t ramfs ram "${mountpoint}"
+                                               mkdir -p "${dest}"
+                                       fi
                                        if [ "${webfile}" = "FETCH" ]
                                        then
                                                case "$url" in
@@ -851,6 +749,12 @@ do_httpmount ()
                                        fi
                                        [ ${?} -eq 0 ] && rc=0
                                        [ "${extension}" = "tgz" ] && live_dest="ram"
+                                       if [ "${extension}" = "iso" ]
+                                       then
+                                               isoloop=$(setup_loop "${dest}/$(basename "${url}")" "loop" "/sys/block/loop*" "" '')
+                                               mount -t iso9660 "${isoloop}" "${mountpoint}"
+                                               rc=${?}
+                                       fi
                                        break
                                        ;;
 
@@ -863,7 +767,15 @@ do_httpmount ()
 
        if [ ${rc} != 0 ]
        then
-           umount "${mountpoint}"
+               if [ -d "${alt_mountpoint}" ]
+               then
+                       umount "${alt_mountpoint}"
+                       rmdir "${alt_mountpoint}"
+               fi
+               umount "${mountpoint}"
+       elif [ "${webfile}"  != "FETCH" ] ; then
+               NETBOOT="${webfile}"
+               export NETBOOT
        fi
 
        return ${rc}
@@ -1833,8 +1745,4 @@ mountroot ()
        exec 2>&7 7>&-
        kill ${tailpid}
        [ -w "${rootmnt}/var/log/" ] && cp live.log "${rootmnt}/var/log/" 2>/dev/null
-       if [ -f /etc/live.conf ]
-       then
-               cp /etc/live.conf "${rootmnt}/etc/"
-       fi
 }