X-Git-Url: https://git.grml.org/?p=grml-live.git;a=blobdiff_plain;f=grml-live;h=b629c12b238261191adc7f8c38c8c506a7497741;hp=45b93e614a189761da2f28ca9e4a1c54fa9f2a96;hb=d3e8ff25fa98d39f794af4c8c151ca17f110bc6b;hpb=59296d870d632c8dc1a39fc1ff13bdbe4fbc299f diff --git a/grml-live b/grml-live index 45b93e6..b629c12 100755 --- a/grml-live +++ b/grml-live @@ -64,7 +64,7 @@ Usage: $PN [options, see as follows] -q skip mksquashfs -Q skip netboot package build -r release name - -s Debian suite; values: etch, lenny, squeeze, sid + -s Debian suite/release, like: stable, testing, unstable -t place of the templates -u update existing chroot instead of rebuilding it from scratch -U arrange output to be owned by specified username @@ -77,7 +77,7 @@ Usage examples: $PN $PN -c GRMLBASE,GRML_FULL,AMD64 -o /dev/shm/grml $PN -c GRMLBASE,GRML_FULL,AMD64 -i grml_0.0-1.iso -v 0.0-1 - $PN -c GRMLBASE,GRML_FULL,AMD64 -s sid -V -r 'grml-live rocks' + $PN -c GRMLBASE,GRML_FULL,AMD64 -s stable -V -r 'grml-ftw' More details: man grml-live + /usr/share/doc/grml-live/grml-live.html http://grml.org/grml-live/ @@ -147,7 +147,13 @@ fi # source main configuration file: LIVE_CONF=/etc/grml/grml-live.conf -. $LIVE_CONF +if ! [ -r "$LIVE_CONF" ] ; then + ewarn "Configuration file $LIVE_CONF can not be read, ignoring" +else + einfo "Sourcing configuration file $LIVE_CONF" + . $LIVE_CONF + eend $? +fi # }}} # umount all directories {{{ @@ -333,10 +339,15 @@ while getopts "a:C:c:d:D:e:g:i:I:o:r:s:t:U:v:AbBFhnNqQuVz" opt; do U) CHOWN_USER="$OPTARG" ;; V) VERBOSE="-v" ;; z) SQUASHFS_ZLIB=1 ;; - ?) echo "invalid option -$OPTARG" >&2; bailout 1 ;; + ?) echo "invalid option -$OPTARG" >&2; usage; bailout 1 ;; esac done shift $(($OPTIND - 1)) # set ARGV to the first not parsed commandline parameter + +if [ -n "$1" ] ; then + echo "Error: unknown argument '$1' in options. Exiting to avoid possible data loss." >&2 + bailout 1 +fi # }}} # read local (non-packaged) configuration {{{ @@ -617,7 +628,7 @@ fi # generate nfsroot configuration for FAI on the fly if [ -z "$FAI_DEBOOTSTRAP" ] ; then - FAI_DEBOOTSTRAP="$SUITE http://cdn.debian.net/debian" + FAI_DEBOOTSTRAP="$SUITE http://http.debian.net/debian" fi if [ -z "$FAI_DEBOOTSTRAP_OPTS" ] ; then @@ -685,6 +696,12 @@ else -u "$HOSTNAME" "$FAI_ACTION" "$CHROOT_OUTPUT" $FAI_ARGS | tee -a $LOGFILE RC="$PIPESTATUS" # notice: bash-only + if [ "$RC" != 0 ] ; then + log "Error: critical error while executing fai [exit code ${RC}]. Exiting." + eerror "Error: critical error while executing fai [exit code ${RC}]. Exiting." ; eend 1 + bailout 1 + fi + # provide inform fai about the ISO we build, needs to be provided # *after* FAI stage, otherwise FAI skips the debootstrap stage if # there is not BASEFILE (as it checks for presence of /etc) :( @@ -694,12 +711,6 @@ else FORCE_ISO_REBUILD=true - if [ "$RC" != 0 ] ; then - log "Error: critical error while executing fai [exit code ${RC}]. Exiting." - eerror "Error: critical error while executing fai [exit code ${RC}]. Exiting." ; eend 1 - bailout 1 - fi - # move fai logs into grml_logs directory mkdir -p "$LOG_OUTPUT"/fai/ cp -r "$CHROOT_OUTPUT"/var/log/fai/"$HOSTNAME"/last/* "$LOG_OUTPUT"/fai/ @@ -947,13 +958,18 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then echo "source /boot/grub/footer.cfg" >> "${BUILD_OUTPUT}"/boot/grub/loopback.cfg # copy grub files from target - cp -a "${CHROOT_OUTPUT}"/usr/lib/grub/*-pc/*.mod "${BUILD_OUTPUT}"/boot/grub/ - cp -a "${CHROOT_OUTPUT}"/usr/lib/grub/*-pc/*.o "${BUILD_OUTPUT}"/boot/grub/ - cp -a "${CHROOT_OUTPUT}"/usr/lib/grub/*-pc/*.lst "${BUILD_OUTPUT}"/boot/grub/ + mkdir -p "${BUILD_OUTPUT}"/boot/grub/i386-pc/ + cp -a "${CHROOT_OUTPUT}"/usr/lib/grub/*-pc/*.mod "${BUILD_OUTPUT}"/boot/grub/i386-pc/ + cp -a "${CHROOT_OUTPUT}"/usr/lib/grub/*-pc/*.o "${BUILD_OUTPUT}"/boot/grub/i386-pc/ + cp -a "${CHROOT_OUTPUT}"/usr/lib/grub/*-pc/*.lst "${BUILD_OUTPUT}"/boot/grub/i386-pc/ cp -a "${CHROOT_OUTPUT}"/usr/share/grub/ascii.pf2 "${BUILD_OUTPUT}"/boot/grub/ cp -a "${CHROOT_OUTPUT}"/boot/grub/core.img "${BUILD_OUTPUT}"/boot/grub/ cp -a "${CHROOT_OUTPUT}"/boot/grub/grub.img "${BUILD_OUTPUT}"/boot/grub/ + # copy modules for UEFI grub + mkdir -p "${BUILD_OUTPUT}"/boot/grub/x86_64-efi/ + cp -a "${CHROOT_OUTPUT}"/usr/lib/grub/x86_64-efi/*.{mod,lst} "${BUILD_OUTPUT}"/boot/grub/x86_64-efi/ + if ! [ -d "${TEMPLATE_DIRECTORY}"/GRML ] ; then log "Error: ${TEMPLATE_DIRECTORY}/GRML does not exist. Exiting." eerror "Error: ${TEMPLATE_DIRECTORY}/GRML does not exist. Exiting." ; eend 1 @@ -1216,7 +1232,7 @@ fi # create md5sum file: if [ -z "$BOOTSTRAP_ONLY" ] ; then ( cd $BUILD_OUTPUT/GRML/"${GRML_NAME}" && - find .. -type f -not -name md5sums -not -name isolinux.bin -exec md5sum {} \; > md5sums ) + find ../.. -type f -not -name md5sums -not -name isolinux.bin -exec md5sum {} \; > md5sums ) fi # }}} @@ -1424,7 +1440,7 @@ create_netbootpackage() { mkdir -p "$NETBOOT" - if ! [ -r "${CHROOT}/usr/lib/syslinux/pxelinux.0" ] ; then + if ! [ -r "${CHROOT_OUTPUT}/usr/lib/syslinux/pxelinux.0" ] ; then ewarn "File /usr/lib/syslinux/pxelinux.0 not found in build chroot." ; eend 0 eindent einfo "Install syslinux[-common] package in chroot to get a netboot package."