X-Git-Url: https://git.grml.org/?p=grml-autoconfig.git;a=blobdiff_plain;f=autoconfig.functions;h=23b39ac8783a9eff087a2cf587c2b1280044714c;hp=3cc12ee3ca8d9b067c2c03c8fe4a888b3f6ac552;hb=b64ae9e0e222edd2eef7ca2740c7ab7fb0a71c3e;hpb=34be1a5b46d770b134219692d080aa7f82070c09 diff --git a/autoconfig.functions b/autoconfig.functions index 3cc12ee..23b39ac 100755 --- a/autoconfig.functions +++ b/autoconfig.functions @@ -176,7 +176,7 @@ if checkbootparam 'log' || checkbootparam 'debug' ; then einfo "Bootparameter log found. Log files: ${DEBUG} and /var/log/boot" eindent einfo "Starting bootlogd." # known to be *very* unreliable :( - bootlogd -r -c 1>>$DEBUG 2>&1 ; eend $? + bootlogd -r -c >>$DEBUG 2>&1 ; eend $? eoutdent else DEBUG="/dev/null" @@ -189,7 +189,7 @@ config_fwtimeout(){ if checkbootparam 'fwtimeout' ; then TIMEOUT="$(getbootparam 'fwtimeout' 2>>$DEBUG)" einfo "Bootoption fwtimeout found. (Re)Loading firmware_class module." - rmmod firmware_class 1>>$DEBUG 2>&1 + rmmod firmware_class >>$DEBUG 2>&1 modprobe firmware_class ; eend $? fi if [ -z "$TIMEOUT" ] ; then @@ -208,16 +208,14 @@ config_language(){ einfo "Activating language settings:" eindent - # people can specify $LANGUAGE and $CONSOLEFONT in a config file: + # people can specify $LANGUAGE and $CONSOLEFONT in a config file [ -r /etc/grml/autoconfig ] && . /etc/grml/autoconfig - grep -q ' lang=.*-utf8' /proc/cmdline && UTF8='yes' || UTF8='' - - # check for bootoption which overrides config from /etc/grml/autoconfig: + # check for bootoption which overrides config from /etc/grml/autoconfig BOOT_LANGUAGE="$(getbootparam 'lang' 2>>$DEBUG)" [ -n "$BOOT_LANGUAGE" ] && LANGUAGE="$BOOT_LANGUAGE" - # set default to 'en' in live-cd mode if $LANGUAGE is not yet set: + # set default to 'en' in live-cd mode iff $LANGUAGE is not set yet if [ -z "$INSTALLED" ] ; then [ -n "$LANGUAGE" ] || LANGUAGE='en' fi @@ -235,8 +233,6 @@ config_language(){ # set console font if [ -z "$CONSOLEFONT" ] ; then if ! checkbootparam 'nodefaultfont' >>$DEBUG 2>&1 ; then - # [ -n "$UTF8" ] && CONSOLEFONT='LatArCyrHeb-16' || CONSOLEFONT='Lat15-Terminus16' - # if [ -r /usr/share/consolefonts/Lat15-Terminus16.psf.gz ] ; then if [ -r /usr/share/consolefonts/Uni3-Terminus16.psf.gz ] ; then CONSOLEFONT='Uni3-Terminus16' else @@ -306,7 +302,7 @@ config_language(){ if [ -r /etc/default/locale ] ; then if grep -q "LANG=.*UTF" /etc/default/locale ; then einfo "Setting up unicode environment." - unicode_start 2>>$DEBUG ; eend $? + unicode_start >>$DEBUG 2>&1 ; eend $? fi fi @@ -318,17 +314,21 @@ config_language(){ fi # we have to set up all consoles, therefore loop it over all ttys: - NUM_CONSOLES=$(fgconsole --next-available) - NUM_CONSOLES=$(expr ${NUM_CONSOLES} - 1) - [ ${NUM_CONSOLES} -eq 1 ] && NUM_CONSOLES=6 - CUR_CONSOLE=$(fgconsole) - + NUM_CONSOLES=$(fgconsole --next-available 2>/dev/null) + if [ -n "$NUM_CONSOLES" ] ; then + NUM_CONSOLES=$(expr ${NUM_CONSOLES} - 1) + [ ${NUM_CONSOLES} -eq 1 ] && NUM_CONSOLES=6 + fi + CUR_CONSOLE=$(fgconsole 2>/dev/null) if [ -n "$CHARMAP" ] ; then einfo "Running consolechars for ${CHARMAP}" - for vc in `seq 0 ${NUM_CONSOLES}` ; do + RC=0 + for vc in $(seq 0 ${NUM_CONSOLES}) ; do consolechars --tty=/dev/tty${vc} -m ${CHARMAP} ; RC=$? done - [ -n "$CUR_CONSOLE" ] && chvt $CUR_CONSOLE + if [ -n "$CUR_CONSOLE" ] ; then + [ "$CUR_CONSOLE" != "serial" ] && chvt $CUR_CONSOLE + fi eend $RC fi @@ -337,11 +337,14 @@ config_language(){ else if [ -n "$CONSOLEFONT" ] ; then einfo "Running consolechars using ${CONSOLEFONT}" - for vc in `seq 0 ${NUM_CONSOLES}` ; do + RC=0 + for vc in $(seq 0 ${NUM_CONSOLES}) ; do consolechars --tty=/dev/tty${vc} -f $CONSOLEFONT ; RC=$? done - [ -n "$CUR_CONSOLE" ] && chvt $CUR_CONSOLE - eend $? + if [ -n "$CUR_CONSOLE" ] ; then + [ "$CUR_CONSOLE" != "serial" ] && chvt $CUR_CONSOLE + fi + eend $RC fi fi @@ -353,6 +356,11 @@ config_language(){ config_hostname(){ if checkbootparam 'hostname' ; then HOSTNAME="$(getbootparam 'hostname' 2>>$DEBUG)" + if [ -z "$HOSTNAME" ] && [ -x /usr/bin/random-hostname ] ; then + einfo "Generating random hostname as no hostname was specified." + HOSTNAME="$(/usr/bin/random-hostname)" + eend $? + fi einfo "Setting hostname to $HOSTNAME as requested." grml-hostname $HOSTNAME >>$DEBUG ; RC=$? [ "$RC" = "0" ] && hostname $HOSTNAME @@ -572,21 +580,55 @@ fi # activate serial console {{{ config_console(){ if checkbootparam 'console'; then - einfo "Bootoption (for serial) console detected." - eindent - if [ -r /etc/mgetty/mgetty.config ] ; then - MODE=$(getbootparam 'console' | awk -F, '{print $2}') - MODE=${MODE%%n*} - [ -n "$MODE" ] || MODE=9600 # default mode - einfo "Setting speed in /etc/mgetty/mgetty.config to $MODE bps" - sed -i "s/speed [0-9]*/speed $MODE/" /etc/mgetty/mgetty.config ; eend $? - fi + local line + local ws + ws=' ' - einfo "Activating mgetty." - sed -i 's/^#T0/T0/' /etc/inittab - sed -i 's/^#T1/T1/' /etc/inittab - /sbin/telinit q ; eend $? - eoutdent + einfo "Bootoption for serial console detected:" + + line="$CMDLINE x " + this="" + line="${line#*[$ws]}" + local telinitq="" + while [ -n "$line" ]; do + case "$this" in + console=*) + local serial="$this" + local device="${this%%,*}" + local device="${device##*=}" + if echo $serial | grep -q ttyS ; then + local option="${serial##*,}" + # default (works for kvm & CO): + local speed="115200,57600,38400,19200,9600,4800,2400,1200"; + # ... unless overriden by command line: + case "$option" in + 115200*) speed=115200 ;; + 57600*) speed=57600 ;; + 38400*) speed=38400 ;; + 19200*) speed=19200 ;; + 9600*) speed=9600 ;; + 4800*) speed=4800 ;; + 2400*) speed=2400 ;; + 1200*) speed=1200 ;; + esac + eindent + einfo "Activating console login on device ${device} with speed ${speed}." + local number="${device#ttyS}" + sed -i "/^T$number:/d;/^#grmlserial#/iT$number:23:respawn:/bin/bash -c \"/sbin/getty -L $device -l /usr/bin/zsh-login $speed vt100 || sleep 30\"" /etc/inittab + eend $? + telinitq="1" + eoutdent + fi + ;; + esac + this="${line%%[$ws]*}" + line="${line#*[$ws]}" + done + + if [ -n "$telinitq" ]; then + /sbin/telinit q + fi + eend $? fi } # }}} @@ -683,7 +725,7 @@ else eindent einfo "$(discover --data-path=linux/module/name --data-path=linux/modules/options --format="%s %s" --data-version=`uname -r` --enable-bus all | sort -u | xargs echo)" eoutdent - /sbin/discover-modprobe -v 1>>$DEBUG 2>&1 & + /sbin/discover-modprobe -v >>$DEBUG 2>&1 & eend 0 else eerror "Application discover not available. Information: udev should handle hardware recognition." ; eend 0 @@ -740,11 +782,11 @@ if checkbootparam 'nohotplug' ; then else if [ -r /etc/init.d/hotplug ] ; then einfo "Starting hotplug system in background." - /etc/init.d/hotplug start 1>>$DEBUG 2>>$DEBUG & + /etc/init.d/hotplug start >>$DEBUG 2>>$DEBUG & eend 0 elif [ -r /etc/init.d/hotplug-light ] ; then einfo "Starting hotplug-light system in background." - /etc/init.d/hotplug-light start 1>>$DEBUG 2>>$DEBUG & + /etc/init.d/hotplug-light start >>$DEBUG 2>>$DEBUG & eend 0 else ewarn "No hotplug system found. Should be handled by udev. Skipping execution." ; eend 0 @@ -809,7 +851,7 @@ if [ -d /proc/acpi ]; then if ! ps x | grep -q /usr/sbin/acpid ; then if ! [ -r /var/run/dbus/pid ] ; then einfo "Starting acpi daemon." - /etc/init.d/acpid start 1>>$DEBUG 2>&1 ; eend $? + /etc/init.d/acpid start >>$DEBUG 2>&1 ; eend $? else eerror "acpid error: it seems you are running d-bus/hal, but acpid needs to be started before d-bus." eerror "Solution: please activate acpid via /etc/runlevel.conf" @@ -1086,7 +1128,7 @@ done </dev/null 2>&1 # avoid output "check_partitions:3: read-only file system" +check_partitions >/dev/null 2>&1 # avoid output "check_partitions:3: read-only file system" # }}} # {{{ Enable DMA for all IDE drives now if not disabled @@ -1297,59 +1339,6 @@ fi } # }}} -# {{{ helper functions -findfile(){ -FOUND="" -# search all partitions for a file in the root directory -for i in /mnt/[sh]d[a-z] /mnt/[sh]d[a-z][1-9] /mnt/[sh]d[a-z][1-9]?*; do -# See if it's already mounted - [ -f "$i/$1" ] && { echo "$i/$1"; return 0; } - if [ -d "$i" ] && mount -r "$i" 2>>$DEBUG; then - [ -f "$i/$1" ] && FOUND="$i/$1" - umount -l "$i" 2>>$DEBUG - [ -n "$FOUND" ] && { echo "$FOUND"; return 0; } - fi -done -return 2 -} - -fstype(){ -case "$(file -s $1)" in - *[Ff][Aa][Tt]*|*[Xx]86*) echo "vfat"; return 0;; - *[Rr][Ee][Ii][Ss][Ee][Rr]*) echo "reiserfs"; return 0;; - *[Xx][Ff][Ss]*) echo "xfs"; return 0;; - *[Ee][Xx][Tt]3*) echo "ext3"; return 0;; - *[Ee][Xx][Tt]2*) echo "ext2"; return 0;; - *data*) echo "invalid"; return 0;; - *) echo "auto"; return 0;; -esac -} - -# Try to mount this filesystem read-only, without or with encryption -trymount(){ -# Check if already mounted -case "$(cat /proc/mounts)" in *\ $2\ *) return 0;; esac -# Apparently, mount-aes DOES autodetect AES loopback files. -[ -b "$1" ] && { mount -t auto -o ro "$1" "$2" 2>>$DEBUG; RC="$?"; } -# We need to mount crypto-loop files with initial rw support -[ -f "$1" ] && { mount -t auto -o loop,rw "$1" "$2" 2>>$DEBUG; RC="$?"; } -# Mount succeeded? -[ "$RC" = "0" ] && return 0 -echo "" -einfo "Filesystem not autodetected, trying to mount $1 with AES256 encryption." -a="y" -while [ "$a" != "n" -a "$a" != "N" ]; do -# We need to mount crypto-loop files with initial rw support - mount -t auto -o loop,rw,encryption=AES256 "$1" "$2" && return 0 - echo -n "${RED}Mount failed, retry? [Y/n] ${NORMAL}" - # Problem with ioctl() from getpasswd()? - # read a - read a -done -return 1 -} -# }}} - # {{{ CPU-detection config_cpu(){ if checkbootparam 'nocpu'; then @@ -1421,21 +1410,23 @@ else . /usr/bin/cpufreq-detect.sh if [ -n "$MODULE" -a "$MODULE" != none ]; then einfo "Loading modules ${MODULE}" - modprobe "$MODULE" 1>>$DEBUG || modprobe "$MODULE_FALLBACK" 1>>$DEBUG + modprobe "$MODULE" >>$DEBUG || modprobe "$MODULE_FALLBACK" >>$DEBUG RC=$? - if [[ $RC == 0 ]]; then + if [[ "$RC" == 0 ]]; then eend 0 else SKIP_CPU_GOVERNOR=1 - eend $1 + eend $RC fi else - ewarn "Could not detect an appropriate CPU for use with cpu frequency scaling - skipping." && eend 1 + 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" + RC=0 if modprobe cpufreq_ondemand ; RC=$? ; then for file in $(find /sys/devices/system/cpu/ -name scaling_governor 2>/dev/null) ; do echo ondemand > $file @@ -1492,8 +1483,8 @@ if checkbootparam 'ssh' ; then fi einfo 'Starting secure shell server in background.' - /etc/init.d/rmnologin start 1>>$DEBUG 2>>$DEBUG - /etc/init.d/ssh start 1>>$DEBUG 2>>$DEBUG & + /etc/init.d/rmnologin start >>$DEBUG 2>>$DEBUG + /etc/init.d/ssh start >>$DEBUG 2>>$DEBUG & eend $? eindent @@ -1549,6 +1540,15 @@ if checkbootparam 'vnc' ; then /bin/chown -R "$USER": "$VNCDIR" fi fi + if checkbootparam 'vnc_connect' ; then + VNC_CONNECT='' + VNC_CONNECT="$(getbootparam 'vnc_connect' 2>>$DEBUG)" + einfo "Bootoption vnc_connect found, will start vnc with connect to $VNC_CONNECT." + #store the options in a file + VNCDIR="/home/${USER}/.vnc" + [ -d "$VNCDIR" ] || mkdir "$VNCDIR" + echo " --connect $VNC_CONNECT " >> $VNCDIR/options + fi fi } # }}} @@ -1573,84 +1573,8 @@ 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 # -n $HOMEDIR - - 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 # -f $MYHOMEDIR - - [ "$RC" = "0" ] && eend 0 || ( eerror "${ERROR}" ; eend 1 ) - - fi # mount -o remount,rw,... - break - ;; - esac # case "$mountpoint" in *$MYHOMEMOUNTPOINT*) - done </dev/null 2>>$DEBUG ; then + if amixer -q get Front >/dev/null 2>>$DEBUG ; then amixer -q set Front unmute &>/dev/null amixer -q set Front ${VOL}% &>/dev/null fi @@ -1829,7 +1753,7 @@ config_syslog(){ eerror "No syslog daemon found." ; eend 1 else einfo "Starting $SYSLOGD in background." - /etc/init.d/$SYSLOGD start 1>>$DEBUG & + /etc/init.d/$SYSLOGD start >>$DEBUG & eend 0 fi fi @@ -1845,8 +1769,8 @@ config_gpm(){ eerror "No mouse found - not starting GPM." ; eend 1 else einfo "Starting gpm in background." - /etc/init.d/gpm start 1>>$DEBUG & - # ( while [ ! -e /dev/psaux ]; do sleep 5; done; /etc/init.d/gpm start 1>>$DEBUG ) & + /etc/init.d/gpm start >>$DEBUG & + # ( while [ ! -e /dev/psaux ]; do sleep 5; done; /etc/init.d/gpm start >>$DEBUG ) & eend 0 fi fi @@ -1861,7 +1785,7 @@ config_services(){ SERVICENL=$(echo "$SERVICE" | sed 's/,/ /g') einfo "Starting service(s) ${SERVICENL} in background." for service in $(echo -e $SERVICELIST) ; do - /etc/init.d/${service} start 1>>$DEBUG & + /etc/init.d/${service} start >>$DEBUG & done [ "$?" == "0" ] ; eend $? fi @@ -1918,7 +1842,7 @@ config_netscript() { if get_remote_file ${CONFIG} ${SCRIPTFILE} ; then chmod +x ${SCRIPTFILE} - einfo "Running ${WHITE}${SCRIPTFILE}${NORMAL}:" && ${SCRIPTFILE} ; eend $? + einfo "Running ${WHITE}${SCRIPTFILE}${NORMAL}:" && NETSCRIPT=${CONFIG} ${SCRIPTFILE} ; eend $? fi fi @@ -1971,20 +1895,19 @@ if checkbootparam 'startx' && ! echo "$CMDLINE" | grep -q 'startx.*nostartx' ; t else einfo "Window manager ${WHITE}${WINDOWMANAGER}${NORMAL} found as bootoption." && eend 0 fi - einfo "Changing to runlevel 5 for starting grml-x ${WINDOWMANAGER}. Just exit X windows system to get full featured consoles." + einfo "Setting up and invoking grml-x ${WINDOWMANAGER}. Just exit X windows system to get full featured consoles." config_userfstab || fstabuser='grml' cat>|/etc/init.d/xstartup<>$DEBUG +su $fstabuser -c "/usr/bin/grml-x $WINDOWMANAGER" EOF chmod 755 /etc/init.d/xstartup # 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 + sed -i 's|^6:.*|6:2345:respawn:/bin/zsh --login -c "/etc/init.d/xstartup ; /usr/bin/zsh-login" >/dev/tty6 2>\&1 > /etc/inittab + echo '6:2345:respawn:/bin/zsh --login -c "/etc/init.d/xstartup ; /usr/bin/zsh-login" >/dev/tty6 2>&1 < /dev/tty6' >> /etc/inittab fi /sbin/telinit q ; eend $? @@ -2042,8 +1965,8 @@ else # We do need the following fix so floppy disk is available to blkid in any case :-/ if [ -r /dev/fd0 ] ; then einfo "Floppy device detected. Trying to access floppy disk." - if timeout 4 dd if=/dev/fd0 of=/dev/null bs=512 count=1 1>>$DEBUG 2>&1 ; then - blkid /dev/fd0 1>>$DEBUG 2>&1 + if timeout 4 dd if=/dev/fd0 of=/dev/null bs=512 count=1 >>$DEBUG 2>&1 ; then + blkid /dev/fd0 >>$DEBUG 2>&1 fi fi DCSDEVICE=$(blkid -t LABEL=GRMLCFG | head -1 | awk -F: '{print $1}') @@ -2064,7 +1987,7 @@ else ewarn "$DCSDEVICE already mounted on $DCSDIR"; eend 0 else [ -d $DCSMP ] || mkdir $DCSMP - umount $DCSMP 1>>$DEBUG 2>&1 # make sure it is not mounted + umount $DCSMP >>$DEBUG 2>&1 # make sure it is not mounted mount -o ro -t auto $DCSDEVICE $DCSMP ; RC="$?" if [[ $RC == 0 ]]; then einfo "Successfully mounted $DCSDEVICE to $DCSMP (readonly)." ; eend 0 @@ -2113,6 +2036,7 @@ fi # {{{ /cdrom/.*-options config_debs(){ if checkbootparam 'debs' ; then + iszsh && setopt localoptions shwordsplit DEBS="$(getbootparam 'debs' 2>>$DEBUG)" if ! echo $DEBS | grep -q '/'; then # backwards compatibility: if no path is given get debs from debs/ @@ -2248,7 +2172,7 @@ if checkbootparam 'distcc' ; then ) einfo "Starting distcc for network ${NET}, listening on ${IP}." - /etc/init.d/distcc start 1>/dev/null ; eend $? + /etc/init.d/distcc start >/dev/null ; eend $? eoutdent else eerror "No ip address for $INTERFACE found. distcc can not be used without it." ; eend 1 @@ -2435,6 +2359,10 @@ config_dmraid(){ for line in $(dmraid $1 ; echo errcode:$?); do case $line in + *'no block devices found'*) + einfo "No block devices found" ; eend 0 + break + ;; *'no raid disks'*) einfo "No active dmraid devices found" ; eend 0 break @@ -2487,7 +2415,7 @@ config_lvm(){ if ! [ -x /sbin/lvm -a -x /sbin/lvdisplay ] || ! [ -x /etc/init.d/lvm2 -o -x /etc/init.d/lvm ] ; then eerror "LVM not available, can not execute it." ; eend 1 else - if lvdisplay 2>&1 | grep -v 'No volume groups found' 1>/dev/null 2>&1 ; then + if lvdisplay 2>&1 | grep -v 'No volume groups found' >/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." @@ -2506,14 +2434,14 @@ config_lvm(){ # {{{ debnet: setup network based on an existing one found on a partition config_debnet(){ if checkbootparam 'debnet' ; then - iszsh && setopt shwordsplit + iszsh && setopt localoptions shwordsplit DEVICES="$(< /proc/partitions tail -n +3 | awk '{print "/dev/"$4}' | tr "\n" " ")" DEVICES="$DEVICES $(ls /dev/mapper/*)" FOUND_DEBNET="" einfo "Bootoption 'debnet' found. Searching for Debian network configuration: " eindent - if ! mount | grep '/mnt ' 1>/dev/null 2>&1 ; then + if ! mount | grep '/mnt ' >/dev/null 2>&1 ; then for i in $DEVICES; do if mount -o ro -t auto "$i" /mnt >/dev/null 2>&1; then einfo "Scanning on $i" @@ -2528,8 +2456,8 @@ if checkbootparam 'debnet' ; then if [ -n "$FOUND_DEBNET" ]; then einfo "Stopping network." - pump -k 1>/dev/null 2>&1 - /etc/init.d/networking stop 1>/dev/null 2>&1 ; eend $? + pump -k >/dev/null 2>&1 + /etc/init.d/networking stop >/dev/null 2>&1 ; eend $? einfo "Copying Debian network configuration from $FOUND_DEBNET to running system." rm -rf /etc/network/run cp -a /mnt/etc/network /etc