X-Git-Url: https://git.grml.org/?p=grml-live.git;a=blobdiff_plain;f=grml-live;h=4fbed190d207bba94f102943d6c849b55ba1075f;hp=dd5e838949ab0b4567dfdcb975c09168ae241490;hb=c62c80321335cf42ee4c04922c801ad963c1fd5a;hpb=fee9a4245e86a0018a886f5f2f361082483a8192 diff --git a/grml-live b/grml-live index dd5e838..4fbed19 100755 --- a/grml-live +++ b/grml-live @@ -4,7 +4,7 @@ # Authors: grml-team (grml.org), (c) Michael Prokop # Bug-Reports: see http://grml.org/bugs/ # License: This file is licensed under the GPL v2 or any later version. -# Latest change: Thu Oct 04 22:16:28 CEST 2007 [mika] +# Latest change: Mit Okt 10 09:38:42 CEST 2007 [mika] ################################################################################ # read configuration files, set some misc variables {{{ @@ -174,6 +174,7 @@ while getopts "c:g:i:o:r:s:t:v:FhV" opt; do done shift $(($OPTIND - 1)) # set ARGV to the first not parsed commandline parameter +echo "Executing: $(basename $0) $*" >> $LOGFILE # }}} # some misc checks before executing FAI {{{ @@ -198,6 +199,7 @@ if [ -z "$FORCE" ] ; then [ -n "$VERSION" ] && echo " grml version: $VERSION" [ -n "$SUITE" ] && echo " Debian suite: $SUITE" [ -n "$BOOT_METHOD" ] && echo " Boot method: $BOOT_METHOD" + [ -n "$TEMPLATE_DIRECTORY" ] && echo " Template files: $TEMPLATE_DIRECTORY" [ -n "$FAI_ARGS" ] && echo " additional arguments for FAI: $FAI_ARGS" [ -n "$VERBOSE" ] && echo " Using VERBOSE mode." echo @@ -241,9 +243,8 @@ if [ -n "$SUITE" ] ; then sed -i "s/\(deb .\+\)\([ \t]+\)$DIST\([ \t]+\)\(main \)/\1\2 $SUITE \3\4/" $LIVE_CONF sed -i "s/\(deb .\+\)\([ \t]+\)$DIST\([ \t]+\)\(main \)/\1\2 $SUITE \3\4/" /etc/grml/fai/apt/sources.list - DIST='\"etch\|=\"stable=\"lenny=\"testing=\"sid=\"unstable' - sed -i "s#FAI_DEBOOTSTRAP=$DIST#FAI_DEBOOTSTRAP=\"$SUITE#" $LIVE_CONF - sed -i "s#FAI_DEBOOTSTRAP=$DIST#FAI_DEBOOTSTRAP=\"$SUITE#" /etc/grml/fai/make-fai-nfsroot.conf + sed -i "s|FAI_DEBOOTSTRAP=\"[a-z]* |FAI_DEBOOTSTRAP=\"$SUITE |" $LIVE_CONF + sed -i "s|FAI_DEBOOTSTRAP=\"[a-z]* |FAI_DEBOOTSTRAP=\"$SUITE |" /etc/grml/fai/make-fai-nfsroot.conf fi # }}} @@ -267,7 +268,10 @@ else # notice: 'fai dirinstall' does not seem to exit appropriate, so: ERROR='' if [ -r "/var/log/fai/dirinstall/$HOSTNAME/software.log" ] ; then + # 1 errors during executing of commands grep 'dpkg: error processing' /var/log/fai/dirinstall/$HOSTNAME/software.log >> $LOGFILE && ERROR=1 + grep 'E: Method http has died unexpectedly!' /var/log/fai/dirinstall/$HOSTNAME/software.log >> $LOGFILE && ERROR=2 + grep 'ERROR: chroot' /var/log/fai/dirinstall/$HOSTNAME/software.log >> $LOGFILE && ERROR=3 fi if [ -r "/var/log/fai/dirinstall/$HOSTNAME/shell.log" ] ; then @@ -275,10 +279,11 @@ else fi if [ -n "$ERROR" ] ; then - log "There was an error during execution of stage 'fai dirinstall' [$(date)]" + log "There was an error [${ERROR}] during execution of stage 'fai dirinstall' [$(date)]" eerror "There was an error during execution of stage 'fai dirinstall'" echo " Check out /var/log/fai/dirinstall/$HOSTNAME/ for details. [exit ${ERROR}]" - eend 1 ; exit 1 + eend 1 + bailout 1 else log "Finished execution of stage 'fai dirinstall' [$(date)]" einfo "Finished execution of stage 'fai dirinstall'" @@ -300,15 +305,25 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then else # booting stuff: mkdir -p "$BUILD_OUTPUT"/boot/isolinux - cp /boot/memtest86+.bin "$BUILD_OUTPUT"/boot/isolinux/memtest - # do not keep the initrd inside the chroot, let's save space instead: - mv "$CHROOT_OUTPUT"/boot/initrd* "$BUILD_OUTPUT"/boot/isolinux/initrd.gz + cp /boot/memtest86+.bin "$BUILD_OUTPUT"/boot/isolinux/memtest + + # if we don't have an initrd we a) can't boot and b) there was an error + # during build, so check for the file: + if [ -f "$CHROOT_OUTPUT"/boot/initrd* ] ; then + cp "$CHROOT_OUTPUT"/boot/initrd* "$BUILD_OUTPUT"/boot/isolinux/initrd.gz + else + log "No initrd found inside $CHROOT_OUTPUT/boot/ - Exiting" + eerror "No initrd found inside $CHROOT_OUTPUT/boot/ - Exiting" ; eend 1 + bailout 10 + fi + cp "$CHROOT_OUTPUT"/boot/vmlinuz* "$BUILD_OUTPUT"/boot/isolinux/linux26 cp /usr/lib/syslinux/chain.c32 "$BUILD_OUTPUT"/boot/isolinux/ cp /usr/lib/syslinux/isolinux.bin "$BUILD_OUTPUT"/boot/isolinux/ cp /usr/lib/syslinux/memdisk "$BUILD_OUTPUT"/boot/isolinux/ cp /usr/lib/syslinux/menu.c32 "$BUILD_OUTPUT"/boot/isolinux/ + [ -n "$TEMPLATE_DIRECTORY" ] || TEMPLATE_DIRECTORY='/usr/share/grml-live/templates' if ! [ -d "${TEMPLATE_DIRECTORY}"/boot ] ; then log "${TEMPLATE_DIRECTORY}/boot does not exist. Exiting." eerror "${TEMPLATE_DIRECTORY}/boot does not exist. Exiting." ; eend 1