X-Git-Url: https://git.grml.org/?p=grml-autoconfig.git;a=blobdiff_plain;f=autoconfig.functions;h=06e5168358d358b712bbaf8f00c0044879c9a43a;hp=2209e5fbdddea620cde96d38bcaea07f16a6b8b3;hb=116e4450535d67c4008b6c18b4b9e5fffc029196;hpb=cae8d6a90b42088c284095130c68b2a9093c39a9 diff --git a/autoconfig.functions b/autoconfig.functions index 2209e5f..06e5168 100755 --- a/autoconfig.functions +++ b/autoconfig.functions @@ -4,7 +4,7 @@ # Authors: grml-team (grml.org), (c) Klaus Knopper , (c) Michael Prokop # Bug-Reports: see http://grml.org/bugs/ # License: This file is licensed under the GPL v2. -# Latest change: Die Apr 03 17:02:59 CEST 2007 [mika] +# Latest change: Mit Jul 04 12:02:35 CEST 2007 [mika] ################################################################################ # {{{ path, variables, signals, umask, zsh @@ -273,9 +273,12 @@ config_language(){ # activate unicode console if running within utf8 environment if [ -r /etc/default/locale ] ; then if grep -q "LANG=.*UTF" /etc/default/locale ; then - einfo "Setting up unicode environment." - unicode_start - eend $? + if checkgrmlsmall && [ -z "$INSTALLED" ] ; then + ewarn "Not runnning unicode_start: grml-small with reduced language support detected." ; eend 0 + else + einfo "Setting up unicode environment." + unicode_start 2>>$DEBUG ; eend $? + fi fi fi @@ -389,10 +392,12 @@ if checkbootparam novmware ; then ewarn "Skipping running vmware specific stuff as requested on boot commandline." ; eend 0 else if [ -z "$INSTALLED" ] ; then - if ! checkbootparam qemu || vmware-detect || stringinstring "BOOT_IMAGE=vmware " "$CMDLINE" ; then - if [ -r /etc/X11/xorg.conf.vmware ] ; then - einfo "VMware: Copying /etc/X11/xorg.conf.vmware to /etc/X11/xorg.conf" - cp /etc/X11/xorg.conf.vmware /etc/X11/xorg.conf ; eend $? + if vmware-detect || stringinstring "BOOT_IMAGE=vmware " "$CMDLINE" ; then + if ! checkbootparam qemu ; then + if [ -r /etc/X11/xorg.conf.vmware ] ; then + einfo "VMware: Copying /etc/X11/xorg.conf.vmware to /etc/X11/xorg.conf" + cp /etc/X11/xorg.conf.vmware /etc/X11/xorg.conf ; eend $? + fi fi fi fi @@ -991,118 +996,123 @@ config_fstab(){ NOSWAP="yes" # we do not use swap by default! if checkbootparam "swap" -o checkbootparam "anyswap" ; then NOSWAP='' + checkbootparam "anyswap" && export ANYSWAP='yes' || export ANYSWAP="" fi if checkbootparam "nofstab" -o checkbootparam "forensic" ; then ewarn "Skipping /etc/fstab creation as requested on boot commandline." ; eend 0 else - checkbootparam "anyswap" && export ANYSWAP='yes' || export ANYSWAP="" einfo "Scanning for harddisk partitions and creating /etc/fstab. (Disable this via boot option: nofstab)" iszsh && setopt nonomatch if [ -x /usr/sbin/rebuildfstab ] ; then - config_userfstab || fstabuser=grml - /usr/sbin/rebuildfstab -r -u $fstabuser -g $fstabuser ; eend $? + config_userfstab || fstabuser=grml + /usr/sbin/rebuildfstab -r -u $fstabuser -g $fstabuser ; eend $? else - ewarn "Command rebuildfstab not found. Install package grml-rebuildfstab." ; eend 1 - fi - if [ -e /var/run/rebuildfstab.pid ]; then - # Another instance of rebuildfstab, probably from hotplug, is still running, so just wait. - sleep 8 - fi -fi -# Scan for swap, config, homedir -if [ -z "$NOSWAP" ]; then - einfo "Searching for swap partition(s) as requested." -fi -GRML_IMG="" -GRML_SWP="" -HOMEDIR="$(getbootparam home)" -if [ -n "$partitions" ]; then - while read p m f relax; do - case "$p" in *fd0*|*proc*|*sys*|*\#*) continue;; esac - partoptions="users,exec" - fnew="" - case "$f" in swap) - eindent - if [ -n "$NOSWAP" ]; then - if [ -z "$INSTALLED" ] ; then - ewarn "Ignoring swap partition ${WHITE}$p${NORMAL}. (Force usage via boot option 'swap', or execute grml-swapon)" ; eend 0 - fi - else - case "$(dd if=$p bs=1 count=6 skip=4086 2>/dev/null)" in - S1SUSP|S2SUSP|pmdisk|[zZ]*) - if [ -n "$ANYSWAP" ] ; then - einfo "Using swap partition ${WHITE}${p}${NORMAL} [bootoption anyswap found]." - swapon $p 2>>$DEBUG ; eend $? - else - ewarn "Suspend signature on ${WHITE}${p}${NORMAL} found, not using as swap. (Force usage via boot option: anyswap)" - fi - ;; - *) - if [[ "$p" == LABEL* ]] ; then - p=$(blkid -t $p | awk -F: '{print $1}') - 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 - einfo "Using swap partition ${WHITE}${p}${NORMAL}." - swapon $p 2>>$DEBUG ; eend $? - fi - ;; - esac - fi - eoutdent - continue - ;; - esac -# Create mountdir if not already present, but don't try to create stuff like /proc/bus/usb -# Notice: grml-rebuildfstab >= 0.3-1 handles this now -# case "$m" in *none*|*proc*|*sys*|'') continue ;; esac -# [ -d "$m" ] || mkdir -p "$m" -# WARNING: NTFS RW mounts are only safe since Kernel 2.6.11 - [ "$f" = "ntfs" -a "${KERNEL%.*}" != "2.6" ] && continue - MOUNTOPTS="ro" - case "$f" in - vfat|msdos|ntfs) MOUNTOPTS="$MOUNTOPTS,uid=${fstabuser},gid=${fstabuser}" ;; - ext2|ext3|reiserfs|jfs|reiser4|xfs) MOUNTOPTS="$MOUNTOPTS,noatime" ;; - *) continue ;; - # *) NONEFOUND='1'; continue ;; - esac - if [ -z "$NOSWAP" ] ; then - mount -o "$MOUNTOPTS" -t $f $p $m 2>>$DEBUG || continue - # Activate swapfile, if exists - SWAPFILE="$(/bin/ls -1d $m/[Gg][Rr][Mm][Ll].[Ss][Ww][Pp] 2>/dev/null)" + ewarn "Command rebuildfstab not found. Install package grml-rebuildfstab." ; eend 1 fi - if [ -z "$NOSWAP" -a -n "$SWAPFILE" -a -f "$SWAPFILE" ]; then - mount -o remount,rw $m - if swapon "$SWAPFILE" 2>>$DEBUG ; then - einfo "Using GRML swapfile ${SWAPFILE}." - fnew="$SWAPFILE swap swap defaults 0 0" - stringinfile "$fnew" "/etc/fstab" || echo "$fnew" >> /etc/fstab - GRML_SWP="$GRML_SWP $SWAPFILE" - eend 0 - fi - mount -o remount,ro $m 2>>$DEBUG - fi - IMAGE="$(/bin/ls -1d $m/[Gg][Rr][Mm][Ll].[Ii][Mm][Gg] 2>/dev/null)" - if [ -z "$INSTALLED" -a -z "$GRML_IMG" -a -n "$IMAGE" -a -f "$IMAGE" ]; then - if [ -n "$HOMEDIR" ]; then - if [ "$HOMEDIR" != "scan" -a "$HOMEDIR" != "$IMAGE" -a "$HOMEDIR" != "${IMAGE%/*.*}" ]; then - continue - fi - fi - if type -a grml-image >/dev/null 2>&1 && grml-image "$IMAGE" /dev/console 2>&1; then - GRML_IMG="$IMAGE" - mount -o remount,ro $m 2>>$DEBUG - fi - fi - eend 0 - # Umount, if not in use - umount -r $m 2>/dev/null - done </dev/null)" in + S1SUSP|S2SUSP|pmdisk|[zZ]*) + if [ -n "$ANYSWAP" ] ; then + einfo "Using swap partition ${WHITE}${p}${NORMAL} [bootoption anyswap found]." + swapon $p 2>>$DEBUG ; eend $? + else + ewarn "Suspend signature on ${WHITE}${p}${NORMAL} found, not using as swap. (Force usage via boot option: anyswap)" + fi + ;; + *) + if [[ "$p" == LABEL* ]] ; then + p=$(blkid -t $p | awk -F: '{print $1}') + 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 + fi # -n "$NOSWAP + eoutdent + continue + ;; + esac # it's a swap partition? + + # mount read-only + MOUNTOPTS="ro" + case "$f" in + vfat|msdos|ntfs) MOUNTOPTS="$MOUNTOPTS,uid=${fstabuser},gid=${fstabuser}" ;; + ext2|ext3|reiserfs|jfs|reiser4|xfs) MOUNTOPTS="$MOUNTOPTS,noatime" ;; + *) continue ;; + # *) NONEFOUND='1'; continue ;; + esac + + # use a swapfile + if [ -z "$NOSWAP" ] ; then + 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 + 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" + eend 0 + 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 + if [ -n "$HOMEDIR" ]; then + if [ "$HOMEDIR" != "scan" -a "$HOMEDIR" != "$IMAGE" -a "$HOMEDIR" != "${IMAGE%/*.*}" ]; then + continue + fi + fi + if type -a grml-image >/dev/null 2>&1 && grml-image "$IMAGE" /dev/console 2>&1; then + GRML_IMG="$IMAGE" + mount -o remount,ro $m 2>>$DEBUG && MOUNTED=1 + fi + fi + eend 0 + + # Umount, if not in use + [ -n "$MOUNTED" ] && umount -r $m 2>/dev/null + + done <>$DEBUG` " ; eend 0 fi + # Disclaimer: sorry for the tons of if/then/else... but this makes sure we use: + # * it only if we have the according kernel modules available + # * cpufreq only on laptops (check via /usr/sbin/laptop-detect) + # * current version of /etc/init.d/loadcpufreq from Debian (to stay in sync) + # -> parse output of the initscript and output it according to our look'n'feel + # * our own cpufreq-detect.sh if /etc/init.d/loadcpufreq isn't present if ! cpufreq_check ; then ewarn "Skipping cpufreq setup as module dependencies are not fulfilled." ; eend 1 else - if /usr/sbin/laptop-detect ; then + if /usr/sbin/laptop-detect 1>/dev/null 2>&1 ; then einfo "Detected Laptop - trying to use cpu frequency scaling:" - if [ -r /usr/bin/cpufreq-detect.sh ] ; then - eindent + eindent + if [ -x /etc/init.d/loadcpufreq ] ; then + SKIP_CPU_GOVERNOR='' + LOADCPUFREQ=$(mktemp) + /etc/init.d/loadcpufreq start >"$LOADCPUFREQ" 2>&1 ; RC=$? + if grep -q FATAL "$LOADCPUFREQ" ; then + eindent + SKIP_CPU_GOVERNOR=1 + oldIFS="$IFS" + IFS=" +" + for line in $(grep FATAL "$LOADCPUFREQ" | sed 's/.*FATAL: //; s/ (.*)//') ; do + eerror "$line" ; eend $RC + done + IFS="$oldIFS" + eoutdent + elif grep -q done "$LOADCPUFREQ" ; then + MODULE=$(grep done "$LOADCPUFREQ" | sed 's/.*done (\(.*\))./\1/') + if [ -n "$MODULE" -a "$MODULE" != none ]; then + einfo "Loading cpufreq kernel module $MODULE" ; eend 0 + else + ewarn "Could not find an appropriate kernel module for cpu frequency scaling." ; eend 1 + fi + fi + rm -f $LOADCPUFREQ + elif [ -r /usr/bin/cpufreq-detect.sh ] ; then . /usr/bin/cpufreq-detect.sh if [ -n "$MODULE" -a "$MODULE" != none ]; then - einfo "Loading modules ${MODULE} and cpufreq_ondemand, setting ondemand governor" + einfo "Loading modules ${MODULE}" modprobe "$MODULE" 1>>$DEBUG || modprobe "$MODULE_FALLBACK" 1>>$DEBUG - if modprobe cpufreq_ondemand && RC=0 || RC=1 ; then - for file in $(find /sys/devices/system/cpu/ -name scaling_governor 2>/dev/null) ; do - echo ondemand > $file - done + RC=$? + if [[ $RC == 0 ]]; then + eend 0 + else + SKIP_CPU_GOVERNOR=1 + eend $1 fi - eend $RC else ewarn "Could not detect an appropriate CPU for use with cpu frequency scaling - skipping." && eend 1 + fi # $MODULE + fi # loadcpufreq + + if [ -z "$SKIP_CPU_GOVERNOR" ] ; then + einfo "Loading cpufreq_ondemand, setting ondemand governor" + if modprobe cpufreq_ondemand ; RC=$? ; then + for file in $(find /sys/devices/system/cpu/ -name scaling_governor 2>/dev/null) ; do + echo ondemand > $file + done fi - eoutdent - fi # cpufreq-detect + eend $RC + fi # cpu-governor + + eoutdent + fi # laptop-detect fi # cpufreq_check fi # checkbootparam nocpu @@ -1308,79 +1361,83 @@ fi # {{{ Check for persistent homedir option and eventually mount /home from there, or use a loopback file. config_homedir(){ if checkbootparam home ; then -HOMEDIR="$(getbootparam home)" -MYHOMEDEVICE="" -MYHOMEMOUNTPOINT="" -MYHOMEDIR="" -if [ -n "$HOMEDIR" ]; then - einfo "Bootoption home detected." && eend 0 - case "$HOMEDIR" in - /dev/*) - MYHOMEDEVICE="${HOMEDIR##/dev/}" - MYHOMEDEVICE="/dev/${MYHOMEDEVICE%%/*}" - MYHOMEMOUNTPOINT="/mnt/${MYHOMEDEVICE##/dev/}" - MYHOMEDIR="/mnt/${HOMEDIR##/dev/}" - ;; - /mnt/*) - MYHOMEDEVICE="${HOMEDIR##/mnt/}" - MYHOMEDEVICE="/dev/${MYHOMEDEVICE%%/*}" - MYHOMEMOUNTPOINT="/mnt/${MYHOMEDEVICE##/dev/}" - MYHOMEDIR="$HOMEDIR" - ;; - [Aa][Uu][Tt][Oo]|[Ss][Cc][Aa][Nn]|[Ff][Ii][Nn][Dd]) - MYHOMEDIR="$(findfile grml.img)" - MYHOMEDEVICE="${MYHOMEDIR##/mnt/}" - MYHOMEDEVICE="/dev/${MYHOMEDEVICE%%/*}" - MYHOMEMOUNTPOINT="/mnt/${MYHOMEDEVICE##/dev/}" - ;; - *) - eerror "Invalid home= option '$HOMEDIR' specified (must start with /dev/ or /mnt/ or 'scan')." ; eend 1 - eerror "Option ignored." ; eend 1 - ;; - esac -fi - -if [ -n "$MYHOMEDIR" ]; then - if trymount "$MYHOMEDEVICE" "$MYHOMEMOUNTPOINT"; then - [ -f "$MYHOMEMOUNTPOINT/grml.img" ] && MYHOMEDIR="$MYHOMEMOUNTPOINT/grml.img" - while read device mountpoint fs relax; do - case "$mountpoint" in *$MYHOMEMOUNTPOINT*) - case "$fs" in *[Nn][Tt][Ff][Ss]*) - umount "$MYHOMEMOUNTPOINT"; eerror "Error: will not mount NTFS filesystem on $MYHOMEDEVICE read/write!" ; eend 1 - break - ;; - *[Ff][Aa][Tt]*) - # Note: This currently won't work with encrypted partitions - umount "$MYHOMEMOUNTPOINT"; mount -t vfat -o rw,uid=grml,gid=grml,umask=002 "$MYHOMEDEVICE" "$MYHOMEMOUNTPOINT" - if [ ! -f "$MYHOMEDIR" ]; then - ewarn "WARNING: FAT32 is not a good filesystem option for /home/grml (missing socket/symlink support)." - ewarn "WARNING: Better use an ext2 loopback file on this device, and boot with home=$MYHOMEDEVICE/grml.img." - fi - ;; - esac - if mount -o remount,rw "$MYHOMEMOUNTPOINT"; then - einfo "Mounting ${WHITE}$MYHOMEDIR${NORMAL} as ${WHITE}/home/grml${NORMAL}." - if [ -f "$MYHOMEDIR" ]; then - # It's a loopback file, mount it over the /home/grml directory - trymount "$MYHOMEDIR" /home/grml - RC="$?" - [ "$RC" = "0" ] && ERROR="$(mount -o remount,rw /home/grml 2>&1)" - RC="$?" - else - # Do a --bind mount - ERROR="$(mount --bind "$MYHOMEDIR" /home/grml 2>&1)" - RC="$?" - fi - [ "$RC" = "0" ] && eend 0 || ( eerror "${ERROR}" ; eend 1 ) - fi - break + HOMEDIR="$(getbootparam home)" + MYHOMEDEVICE="" + MYHOMEMOUNTPOINT="" + MYHOMEDIR="" + if [ -n "$HOMEDIR" ]; then + einfo "Bootoption home detected." && eend 0 + case "$HOMEDIR" in + /dev/*) + MYHOMEDEVICE="${HOMEDIR##/dev/}" + MYHOMEDEVICE="/dev/${MYHOMEDEVICE%%/*}" + MYHOMEMOUNTPOINT="/mnt/${MYHOMEDEVICE##/dev/}" + MYHOMEDIR="/mnt/${HOMEDIR##/dev/}" + ;; + /mnt/*) + MYHOMEDEVICE="${HOMEDIR##/mnt/}" + MYHOMEDEVICE="/dev/${MYHOMEDEVICE%%/*}" + MYHOMEMOUNTPOINT="/mnt/${MYHOMEDEVICE##/dev/}" + MYHOMEDIR="$HOMEDIR" ;; - esac - done <&1)" + RC="$?" + fi # -f $MYHOMEDIR + + [ "$RC" = "0" ] && eend 0 || ( eerror "${ERROR}" ; eend 1 ) + + fi # mount -o remount,rw,... + break + ;; + esac # case "$mountpoint" in *$MYHOMEMOUNTPOINT*) + done <>$DEBUG 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 $? @@ -2025,6 +2087,33 @@ config_swraid(){ } # }}} +# {{{ LVM (Logical Volumes) +config_lvm(){ + if [ -z "$INSTALLED" ] ; then + # notice: checkbootparam "forensic" is just for users who don't know how to really use the bootoption + if checkbootparam 'nolvm' ; then + ewarn "Skipping LVM code as requested on boot commandline." ; eend 0 + else + if ! [ -x /sbin/lvm -a -x /etc/init.d/lvm2 -a -x /sbin/lvdisplay ] ; then + eerror "LVM not available, can not execute it." ; eend 1 + else + if lvdisplay 1>/dev/null 2>&1 ; then + einfo "You seem to have logical volumes (LVM) on your system." + eindent + einfo "Just run 'Start lvm2' to activate them or boot using 'lvm' as bootoption for autostart." + eend 0 + if checkbootparam 'lvm' ; then + einfo "Bootoption LVM found. Searching for logical volumes:" + /etc/init.d/lvm2 start ; eend $? + fi + eoutdent + fi + fi # check for lvm binary + fi # check for bootoption nolvm + fi # run only in live-cd mode +} +# }}} + # {{{ debnet: setup network based on an existing one found on a partition config_debnet(){ if checkbootparam "debnet" ; then @@ -2083,49 +2172,144 @@ fi # {{{ 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<|/usr/bin/grml2hd_noninteractive<|/usr/bin/grml-debootstrap_noninteractive<