# Authors: grml-team (grml.org), (c) Klaus Knopper <knopper@knopper.net>, (c) Michael Prokop <mika@grml.org>
# Bug-Reports: see http://grml.org/bugs/
# License: This file is licensed under the GPL v2.
-# Latest change: Fre Apr 13 12:49:52 CEST 2007 [mika]
+# Latest change: Sam Mai 12 00:46:15 CEST 2007 [mika]
################################################################################
# {{{ path, variables, signals, umask, zsh
ewarn "Not runnning unicode_start: grml-small with reduced language support detected." ; eend 0
else
einfo "Setting up unicode environment."
- unicode_start ; eend $?
+ unicode_start 2>>$DEBUG ; eend $?
fi
fi
fi
if grep -q $p /proc/swaps ; then
ewarn "Not using swap partition ${WHITE}${p}${NORMAL} as it is already in use." ; eend 0
else
+ if [ -b "$p" ] ; then
einfo "Using swap partition ${WHITE}${p}${NORMAL}."
swapon $p 2>>$DEBUG ; eend $?
+ else
+ ewarn "$p is not a valid block device - not using it therefore." ; eend 0
+ fi
fi
;;
esac # dd-check
*) continue ;;
# *) NONEFOUND='1'; continue ;;
esac
-
+
# use a swapfile
if [ -z "$NOSWAP" ] ; then
- mount -o "$MOUNTOPTS" -t $f $p $m 2>>$DEBUG || continue
+ mount -o "$MOUNTOPTS" -t $f $p $m 2>>$DEBUG && MOUNTED=1 || continue
# Activate swapfile, if exists
SWAPFILE="$(/bin/ls -1d $m/[Gg][Rr][Mm][Ll].[Ss][Ww][Pp] 2>/dev/null)"
fi
if [ -z "$NOSWAP" -a -n "$SWAPFILE" -a -f "$SWAPFILE" ]; then
mount -o remount,rw $m && MOUNTED=1
if swapon "$SWAPFILE" 2>>$DEBUG ; then
- einfo "Using GRML swapfile ${SWAPFILE}."
+ eindent
+ einfo "Using GRML swapfile ${WHITE}${SWAPFILE}${NORMAL}."
+ eoutdent
fnew="$SWAPFILE swap swap defaults 0 0"
stringinfile "$fnew" "/etc/fstab" || echo "$fnew" >> /etc/fstab
GRML_SWP="$GRML_SWP $SWAPFILE"
fi
mount -o remount,ro $m 2>>$DEBUG && MOUNTED=1
fi
-
+
# use a image as home
IMAGE="$(/bin/ls -1d $m/[Gg][Rr][Mm][Ll].[Ii][Mm][Gg] 2>/dev/null)"
if [ -z "$GRML_IMG" -a -n "$IMAGE" -a -f "$IMAGE" ]; then
fi
fi
eend 0
-
+
# Umount, if not in use
[ -n "$MOUNTED" ] && umount -r $m 2>/dev/null
-
+
done <<EOT
$(cat /etc/fstab)
EOT
EOF
chmod 755 /etc/init.d/xstartup
- sed -i 's#^6:.*#6:2345:respawn:/bin/zsh --login -c "/etc/init.d/xstartup ; /bin/zsh"#' /etc/inittab
+ # adjust inittab for xstartup
+ if grep -q '^6:' /etc/inittab ; then
+ sed -i 's|^6:.*|6:2345:respawn:/bin/zsh --login -c "/etc/init.d/xstartup ; /bin/zsh"|' /etc/inittab
+ else # just append tty6 to inittab if no definition is present:
+ echo '6:2345:respawn:/bin/zsh --login -c "/etc/init.d/xstartup ; /bin/zsh"' >> /etc/inittab
+ fi
/sbin/telinit q ; eend $?
# {{{ grml2hd: automatic installation
config_grml2hd(){
+if stringinstring "BOOT_IMAGE=grml2hd " "$CMDLINE" ; then
+
if checkbootparam "user" ; then
- NEWUSER=''
- NEWUSER="$(getbootparam 'user' 2>>$DEBUG)"
- sed -i "s/^NEWUSER=.*/NEWUSER=$NEWUSER/" /etc/grml2hd/config || export GRML2HD_FAIL=1
+ NEWUSER=''
+ NEWUSER="$(getbootparam 'user' 2>>$DEBUG)"
+ sed -i "s/^NEWUSER=.*/NEWUSER=$NEWUSER/" /etc/grml2hd/config || export GRML2HD_FAIL=1
fi
if checkbootparam "filesystem" ; then
- FILESYSTEM=''
- FILESYSTEM="$(getbootparam 'filesystem' 2>>$DEBUG)"
- sed -i "s/^FILESYSTEM=.*/FILESYSTEM=$FILESYSTEM/" /etc/grml2hd/config || export GRML2HD_FAIL=1
+ FILESYSTEM=''
+ FILESYSTEM="$(getbootparam 'filesystem' 2>>$DEBUG)"
+ sed -i "s/^FILESYSTEM=.*/FILESYSTEM=$FILESYSTEM/" /etc/grml2hd/config || export GRML2HD_FAIL=1
fi
if checkbootparam "partition" ; then
- PARTITION=''
- PARTITION="$(getbootparam 'partition' 2>>$DEBUG)"
- # notice: the following checks whether the given partition is available, if not the skip
- # execution of grml2hd as it might result in data loss...
- if [ -r $PARTITION ] ; then
- sed -i "s#^PARTITION=.*#PARTITION=$PARTITION#" /etc/grml2hd/config || export GRML2HD_FAIL=1
- else
- ewarn "Partition $PARTITION does not exist. Skipping execution of grml2hd therefore." ; eend 1
- fi
+ PARTITION=''
+ PARTITION="$(getbootparam 'partition' 2>>$DEBUG)"
+ # notice: the following checks whether the given partition is available, if not the skip
+ # execution of grml2hd as it might result in data loss...
+ if [ -r $PARTITION ] ; then
+ sed -i "s#^PARTITION=.*#PARTITION=$PARTITION#" /etc/grml2hd/config || export GRML2HD_FAIL=1
+ else
+ ewarn "Partition $PARTITION does not exist. Skipping execution of grml2hd therefore." ; eend 1
+ fi
fi
if checkbootparam "mbr" ; then
- BOOT_PARTITION=''
- BOOT_PARTITION="$(getbootparam 'mbr' 2>>$DEBUG)"
- sed -i "s#^BOOT_PARTITION=.*#BOOT_PARTITION=$BOOT_PARTITION#" /etc/grml2hd/config || export GRML2HD_FAIL=1
+ BOOT_PARTITION=''
+ BOOT_PARTITION="$(getbootparam 'mbr' 2>>$DEBUG)"
+ sed -i "s#^BOOT_PARTITION=.*#BOOT_PARTITION=$BOOT_PARTITION#" /etc/grml2hd/config || export GRML2HD_FAIL=1
fi
-if stringinstring "BOOT_IMAGE=grml2hd " "$CMDLINE" ; then
- cat>|/usr/bin/grml2hd_noninteractive<<EOF
+cat>|/usr/bin/grml2hd_noninteractive<<EOF
#!/bin/sh
GRML2HD_NONINTERACTIVE='yes' grml2hd
EOF
- chmod 755 /usr/bin/grml2hd_noninteractive
- einfo "Bootparameter grml2hd found. Running automatic installation via grml2hd using /etc/grml2hd/config." && eend 0
- if [ -z "$GRML2HD_FAIL" ] ; then
- screen /usr/bin/grml2hd_noninteractive ; einfo "Invoking a shell, just exit to continue booting..." ; /bin/zsh
- else
- ewarn "There was an error adjusting /etc/grml2hd/config. Skipping execution of grml2hd for security reasons." ; eend 1
+
+chmod 755 /usr/bin/grml2hd_noninteractive
+einfo "Bootoption grml2hd found. Running automatic installation via grml2hd using /etc/grml2hd/config." && eend 0
+if [ -z "$GRML2HD_FAIL" ] ; then
+ screen /usr/bin/grml2hd_noninteractive ; einfo "Invoking a shell, just exit to continue booting..." ; /bin/zsh
+else
+ ewarn "There was an error adjusting /etc/grml2hd/config. Skipping execution of grml2hd for security reasons." ; eend 1
+fi
+
+fi # if stringinstring "BOOT_IMAGE=grml2hd ...
+}
+# }}}
+
+# {{{ debootstrap: automatic installation
+config_debootstrap(){
+
+if stringinstring "BOOT_IMAGE=debian2hd " "$CMDLINE" ; then
+
+einfo "Bootoption debian2hd found. Setting up environment for automatic installation via grml-debootstrap." ; eend 0
+
+if ! [ -x /usr/sbin/grml-debootstrap ] ; then
+ eindent
+ eerror "Bootoption debian2hd found, but grml-debootstrap is not available." ; eend 1
+ eoutdent
+ exit 1
+fi
+
+if checkbootparam "target" ; then
+ TARGET=''
+ TARGET="$(getbootparam 'target' 2>>$DEBUG)"
+ # notice: the following checks whether the given partition is available, if not the skip
+ # execution of grml-debootstrap as it might result in data loss...
+ if ! [ -r "$TARGET" ] ; then
+ eerror "Target $TARGET does not exist. Skipping execution of grml-debootstrap therefore." ; eend 1
fi
+else
+ eindent
+ eerror "No bootoption named target found, can not continue execution of grml-debootstrap." ; eend 1
+ eoutdent
+ exit 1
+fi
+
+if checkbootparam "grub" ; then
+ GRUB=''
+ GRUB="$(getbootparam 'grub' 2>>$DEBUG)"
fi
+
+if checkbootparam "groot" ; then
+ GROOT=''
+ GROOT="$(getbootparam 'groot' 2>>$DEBUG)"
+fi
+
+if checkbootparam "release" ; then
+ RELEASE=''
+ RELEASE="$(getbootparam 'release' 2>>$DEBUG)"
+fi
+
+if checkbootparam "mirror" ; then
+ MIRROR=''
+ MIRROR="$(getbootparam 'mirror' 2>>$DEBUG)"
+fi
+
+if checkbootparam "boot_append" ; then
+ BOOT_APPEND=''
+ BOOT_APPEND="$(getbootparam 'boot_append' 2>>$DEBUG)"
+fi
+
+if checkbootparam "password" ; then
+ PASSWORD=''
+ PASSWORD="$(getbootparam 'password' 2>>$DEBUG)"
+fi
+
+# now check which options are available
+if [ -n "TARGET" ] ; then
+ TARGETCMD="--target $TARGET"
+else
+ TARGETCMD=''
+ eindent
+ eerror "Target not set via bootoption. Skipping execution of grml-debootstrap therefore."; eend 1
+ eoutdent
+ exit 1
+fi
+[ -n "$GRUB" ] && GRUBCMD="--grub $GRUB" || GRUBCMD=''
+[ -n "$GROOT" ] && GROOTCMD="--groot $GROOT" || GROOTCMD=''
+[ -n "$RELEASE" ] && RELEASECMD="--release $RELEASE" || RELEASECMD=''
+[ -n "$MIRROR" ] && MIRRORCMD="--mirror $MIRROR" || MIRRORCMD=''
+[ -n "$PASSWORD" ] && PASSWORDCMD="--password $PASSWORD" || PASSWORDCMD=''
+[ -n "$BOOT_APPEND" ] && BOOT_APPEND="--boot_append $BOOT_APPEND" || BOOT_APPEND=''
+
+# and finally write script and execute it
+cat>|/usr/bin/grml-debootstrap_noninteractive<<EOF
+#!/bin/sh
+AUTOINSTALL='yes' grml-debootstrap $TARGETCMD $GRUBCMD $GROOTCMD $RELEASECMD $MIRRORCMD $PASSWORDCMD $BOOT_APPEND
+EOF
+
+chmod 750 /usr/bin/grml-debootstrap_noninteractive
+
+screen /usr/bin/grml-debootstrap_noninteractive
+einfo "Invoking a shell, just exit to continue booting..."
+/bin/zsh
+
+fi # stringinstring "BOOT_IMAGE=debian2hd
}
# }}}
DISTRI="$(getbootparam 'distri' 2>>$DEBUG)"
if [ -r /cdrom/desktop/"$DISTRI".jpg ] ; then
[ -n "$BOOTDEBUG" ] && einfo "Debug: bootoption distri found and file /cdrom/desktop/$DISTRI present" && eend 0
+ # make sure the desktop.jpg file is not a symlink, so copying does not file then
+ [ -L /usr/share/grml/desktop.jpg ] && rm /usr/share/grml/desktop.jpg
cp /cdrom/desktop/"$DISTRI".jpg /usr/share/grml/desktop.jpg
fi
fi