X-Git-Url: https://git.grml.org/?p=grml-autoconfig.git;a=blobdiff_plain;f=autoconfig.functions;h=dcb76dae331f9210b64506f09864343b17c3704a;hp=af4ce8aa8d2d15bdaaa0f0e67031a9f5f9158cdb;hb=5256e630ff3e2080ae9c12f8c3b33b936fab2b7d;hpb=3eafea51053ec606924089a71d9975004a774528 diff --git a/autoconfig.functions b/autoconfig.functions index af4ce8a..dcb76da 100755 --- a/autoconfig.functions +++ b/autoconfig.functions @@ -541,8 +541,8 @@ eoutdent # skip startup of w3m {{{ config_fast(){ -if checkbootparam "fast"; then - ewarn "Bootoption fast detected. Skipping startup of w3m." +if checkbootparam "fast "; then + ewarn "Bootoption fast detected. Skipping startup of grml-quickconfig." sed -i 's#^1:.*#1:12345:respawn:/usr/bin/openvt -f -c 1 -w -- /bin/zsh#' /etc/inittab /sbin/telinit q ; eend $? fi @@ -739,13 +739,14 @@ if checkbootparam "blacklist" ; then if [ -z "$INSTALLED" ]; then einfo "Bootoption blacklist found." BLACK="$(getbootparam 'blacklist' 2>>$DEBUG)" + BLACKLIST_FILE='/etc/modprobe.d/grml.conf' if [ -n "$BLACK" ] ; then for module in $(echo ${BLACK//,/ }) ; do - einfo "Blacklisting module ${module} via /etc/modprobe.d/grml." - echo "# begin entry generated by config_blacklist of grml-autoconfig" >> /etc/modprobe.d/grml - echo "blacklist $module" >> /etc/modprobe.d/grml - echo "alias $module off" >> /etc/modprobe.d/grml - echo "# end entry generated by config_blacklist of grml-autoconfig" >> /etc/modprobe.d/grml ; eend $? + einfo "Blacklisting module ${module} via ${BLACKLIST_FILE}." + echo "# begin entry generated by config_blacklist of grml-autoconfig" >> "$BLACKLIST_FILE" + echo "blacklist $module" >> "$BLACKLIST_FILE" + echo "alias $module off" >> "$BLACKLIST_FILE" + echo "# end entry generated by config_blacklist of grml-autoconfig" >> "$BLACKLIST_FILE" ; eend $? done else eerror "No given module for blacklist found. Blacklisting will not work therefore." @@ -1464,7 +1465,12 @@ if checkbootparam ssh ; then # finally check if we have a password we can use: if [ -n "$SSH_PASSWD" ] ; then - echo "grml:$SSH_PASSWD" | chpasswd -m + # chpasswd sucks, seriously. + if chpasswd --help 2>&1 | grep -q -- '-m,' ; then + echo "grml:$SSH_PASSWD" | chpasswd -m + else + echo "grml:$SSH_PASSWD" | chpasswd + fi fi einfo 'Starting secure shell server in background.' @@ -1851,7 +1857,9 @@ create_mnt_dirs(){ # {{{ start X window system via grml-x config_x_startup(){ -if checkbootparam startx ; then +# make sure we start X only if startx is used *before* a nostartx option +# so it's possible to disable automatic X startup using nostart +if checkbootparam startx && ! grep -q 'startx.*nostartx' "$CMDLINE" ; then if [ -x /usr/X11R6/bin/X ] ; then if [ -z "$INSTALLED" ] ; then WINDOWMANAGER="$(getbootparam 'startx' 2>>$DEBUG)" @@ -1886,12 +1894,12 @@ EOF fi else - eerror "We are not running from CD - startx will not work, skipping it. - Please use something like xdm, gdm or kdm for starting X on a harddisk system!" ; eend 1 + eerror "We are not running from CD - startx will not work, skipping it." + eerror " -> Please use something like xdm, gdm or kdm for starting X on a harddisk system!" ; eend 1 fi else - eerror "/usr/X11R6/bin/X is not present on this grml flavour. - Boot parameter startx does not work therefore." ; eend 1 + eerror "/usr/X11R6/bin/X is not present on this grml flavour." + eerror " -> Boot parameter startx does not work therefore." ; eend 1 fi fi } @@ -1924,17 +1932,20 @@ if [[ $RC == 0 ]]; then CONFIG="$(/bin/ls -1d /mnt/grml/[Cc][Oo][Nn][Ff][Ii][Gg].[Tt][Bb][Zz] 2>>$DEBUG)" if checkbootparam config ; then FILENAME="$(getbootparam 'config' 2>>$DEBUG)" - if [ -e /mnt/grml/${FILENAME} ] ; then + if [ -e /mnt/grml/"${FILENAME}" ] ; then einfo "Using /mnt/grml/$FILENAME instead of config.tbz" - CONFIG="/mnt/grml/$FILENAME" + CONFIG="/mnt/grml/${FILENAME}" fi + else + [ -n "$CONFIG" ] && FILENAME="$(basename $CONFIG)" || FILENAME="config.tbz" fi + if [ -n "$CONFIG" ]; then einfo "Found file ${WHITE}${CONFIG}${NORMAL} - trying to extract it." cd / unp $CONFIG $EXTRACTOPTIONS ; eend $? else - ewarn "Sorry, could not find file $FILENAME on device $MOUNTDEVICE $MESSAGE label GRMLCFG." ; eend 1 + ewarn "Sorry, could not find file ${FILENAME} on device ${MOUNTDEVICE} ${MESSAGE}." ; eend 1 fi SCRIPT='' @@ -1947,6 +1958,7 @@ if [[ $RC == 0 ]]; then else einfo "Could not mount $MOUNTDEVICE to /mnt/grml - sorry." ; eend 1 fi # mount $MOUNTDEVICE + grep -q '/mnt/grml' /proc/mounts && umount /mnt/grml } @@ -1961,7 +1973,6 @@ 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." - # dd if=/dev/fd0 of=/dev/null bs=512 count=1 1>>$DEBUG 2>&1 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 fi