X-Git-Url: http://git.grml.org/?p=grml-autoconfig.git;a=blobdiff_plain;f=autoconfig.functions;h=5307d544820872e9954cec0ce742635f668eddc2;hp=e69b04144ca0606477c6574a3f717048efc63cf6;hb=af7c237c82776e604a17963fe2bec0ff87c8fb28;hpb=95a14daaa06e6984945a7854cbe0a61480e94982 diff --git a/autoconfig.functions b/autoconfig.functions index e69b041..5307d54 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: Fre Nov 10 00:33:15 CET 2006 [mika] +# Latest change: Mon Nov 27 21:02:23 CET 2006 [mika] ################################################################################ # {{{ path, variables, signals, umask, zsh @@ -89,6 +89,7 @@ mount_sys(){ # }}} # {{{ Read in boot parameters +[ -f /proc/version ] || mount_proc # make sure we can access /proc/cmdline when sourcing this file too CMDLINE="$(cat /proc/cmdline)" [ -d /cdrom/bootparams/ ] && CMDLINE="$CMDLINE $(cat /cdrom/bootparams/* | tr '\n' ' ')" # }}} @@ -315,7 +316,13 @@ config_hostname(){ # fstabuser (needed when running from harddisk with username != grml {{{ config_userfstab(){ - fstabuser=$(getent passwd 1000 | cut -d: -f1) + [ -r /etc/grml/autoconfig ] && . /etc/grml/autoconfig + if [ -n "$CONFIG_FSTAB_USER" ] ; then + fstabuser="$CONFIG_FSTAB_USER" + else + fstabuser=$(getent passwd 1000 | cut -d: -f1) + fi + # if not yet set fall back to default 'grml' user [ -n "$fstabuser" ] || fstabuser='grml' } # }}} @@ -897,7 +904,7 @@ check_partitions 1>/dev/null 2>&1 # avoid output "check_partitions:3: read-only # }}} # {{{ Enable DMA for all IDE drives now if not disabled -# Notice: Already done by linuxrc, maybe not on hd-installations +# Notice: Already done by linuxrc, but make sure it's done also on harddisk-installed systems config_dma(){ if checkbootparam "nodma"; then ewarn "Skipping DMA accelleration as requested on boot commandline." ; eend 0 @@ -920,9 +927,9 @@ fi # {{{ Start creating /etc/fstab with HD partitions and USB SCSI devices now config_fstab(){ -NOSWAP="" -if checkbootparam "noswap" -o checkbootparam "forensic" ; then - NOSWAP="yes" +NOSWAP="yes" # we do not use swap by default! +if checkbootparam "swap" -o checkbootparam "anyswap" ; then + NOSWAP='' fi if checkbootparam "nofstab" -o checkbootparam "forensic" ; then @@ -943,8 +950,8 @@ else fi fi # Scan for swap, config, homedir -if [ -z "$NOSWAP" -o -z "$INSTALLED" ]; then - einfo "Checking for swap partition(s)." +if [ -z "$NOSWAP" ]; then + einfo "Searching for swap partition(s) as requested." fi GRML_IMG="" GRML_SWP="" @@ -957,7 +964,9 @@ if [ -n "$partitions" ]; then case "$f" in swap) eindent if [ -n "$NOSWAP" ]; then - ewarn "Ignoring swap partition ${WHITE}$p${NORMAL} as requested." ; eend 0 + 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]*) @@ -1890,55 +1899,64 @@ fi config_swraid(){ if [ -z "$INSTALLED" ] ; then # notice: checkbootparam "forensic" is just for users who don't know how to really use the bootoption - if checkbootparam "noraid" -o checkbootparam "forensic" -o checkbootparam "raid=noautodetect" ; then - ewarn "Skipping search for SW-RAID as requested on boot commandline." ; eend 0 + if checkbootparam 'noraid' -o checkbootparam 'noswraid' -o \ + checkbootparam 'forensic' -o checkbootparam 'raid=noautodetect' ; then + ewarn "Skipping SW-RAID code as requested on boot commandline." ; eend 0 else if ! [ -x /sbin/mdadm ] ; then eerror "mdadm not available, can not execute it." ; eend 1 else + # if ! egrep -qv '^(MAILADDR.*|#.*|)$' /etc/mdadm/mdadm.conf 2>>$DEBUG ; then + # find out whether we have a valid configuration file already if ! grep -q ARRAY /etc/mdadm/mdadm.conf 2>>$DEBUG ; then - einfo "Creating /etc/mdadm/mdadm.conf" - [ -r /etc/mdadm/mdadm.conf ] && mv /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf.old - /usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf ; eend $? - else - ewarn "/etc/mdadm/mdadm.conf looks like a configured mdadm setup, will not touch it." ; eend 0 + einfo "Creating /etc/mdadm/mdadm.conf for use with mdadm." + [ -r /etc/mdadm/mdadm.conf ] && mv /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf.old + MDADM_MAILADDR__='root' /usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf ; eend $? + else + ewarn "/etc/mdadm/mdadm.conf looks like a configured mdadm setup, will not touch it." ; eend 0 fi - einfo "Searching for software RAID arrays (disable via bootoption noraid):" - eindent - IFSOLD=${IFS:-} - IFS=' + if ! checkbootparam 'swraid' ; then + eindent + einfo "Just run 'Start mdadm-raid' to assemble md arrays or boot using 'swraid' as bootoption for autostart." + eoutdent + else + einfo "Bootoption swraid found. Searching for software RAID arrays:" + eindent + IFSOLD=${IFS:-} + IFS=' ' - for line in $(mdadm --assemble --scan --auto=yes --symlink=no 2>&1) ; do - case $line in - *'No arrays found'*) - ewarn "$line" ; eend 0 - ;; - *) - einfo "$line" ; eend 0 - ;; - esac - done - IFS=$IFSOLD - eoutdent + for line in $(mdadm --assemble --scan --auto=yes --symlink=no 2>&1) ; do + case $line in + *'No arrays found'*) + ewarn "$line" ; eend 0 + ;; + *) + einfo "$line" ; eend 0 + ;; + esac + done + IFS=$IFSOLD + eoutdent - if [ -r /proc/mdstat ] ; then - eindent - MDSTAT=$(grep '^md[0-9]' /proc/mdstat) - if [ -z "$MDSTAT" ] ; then - ewarn "No active arrays found" ; eend 0 - else - IFSOLD=${IFS:-} - IFS=' + if [ -r /proc/mdstat ] ; then + eindent + MDSTAT=$(grep '^md[0-9]' /proc/mdstat) + if [ -z "$MDSTAT" ] ; then + ewarn "No active arrays found" ; eend 0 + else + IFSOLD=${IFS:-} + IFS=' ' - for line in $(grep '^md[0-9]' /proc/mdstat) ; do - einfo "active arrays: $line" ; eend 0 - done - IFS=$IFSOLD - fi - eoutdent - fi + for line in $(grep '^md[0-9]' /proc/mdstat) ; do + einfo "active arrays: $line" ; eend 0 + done + IFS=$IFSOLD + fi + eoutdent + fi # /proc/mdstat + fi # bootoption swraid fi # is /sbin/mdadm executable? fi # check for bootoptions