X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=build.sh;h=bfec84071f785af71ea4bbe7636587cf3d617da5;hb=a6de7b0fbf2c242edef607d0f861cda7577109be;hp=b7be938b95019e769bfcf5d5efaa22968cc349c3;hpb=ae0f336bba6f8788135a1e1692a2bf0b82ce0987;p=bootcd.git diff --git a/build.sh b/build.sh index b7be938..bfec840 100755 --- a/build.sh +++ b/build.sh @@ -7,13 +7,15 @@ # Mark Huang # Copyright (C) 2004-2007 The Trustees of Princeton University # -# $Id$ -# COMMAND=$(basename $0) DIRNAME=$(dirname $0) PATH=/sbin:/bin:/usr/sbin:/usr/bin +DEBUG_SYSTEMD="" +# uncomment this on to get systemd's full log on console (slows things down) +#DEBUG_SYSTEMD=true + # defaults DEFAULT_TYPES="usb iso" # Leave 4 MB of free space @@ -30,7 +32,7 @@ OUTPUT_BASE= DRY_RUN="" OUTPUT_NAME="" TYPES="" -KARGS_STR="" +KERNEL_ARGS="" # various globals BUILDTMP="" @@ -43,7 +45,6 @@ console_dev="" console_baud="" console_spec="" console_serial_line="" -kernel_args="" #################### compute all supported types @@ -163,7 +164,7 @@ function parse_command_line () { o) OUTPUT_NAME="$OPTARG" ;; C) CUSTOM_DIR="$OPTARG" ;; V) VARIANT="$OPTARG" ;; - k) KARGS_STR="$KARGS_STR $OPTARG" ;; + k) KERNEL_ARGS="$KERNEL_ARGS $OPTARG" ;; n) DRY_RUN=true ;; h|*) usage ;; esac @@ -229,14 +230,23 @@ function build_overlay () { BUILDTMP=$(mktemp -d ${BUILDTMP}/bootcd.XXXXXX) push_cleanup rm -fr "${BUILDTMP}" - mkdir "${BUILDTMP}/isofs" + + # initialize ISOFS + ISOFS="${BUILDTMP}/isofs" + mkdir -p "$ISOFS" for i in "$ISOREF"/isofs/{bootcd.img,kernel}; do - ln -s "$i" "${BUILDTMP}/isofs" + ln -s "$i" "$ISOFS" + done + # use new location as of fedora 12 + # used to be in /usr/lib/syslinux/isolinux.bin + # removed backward compat in jan. 2015 + # as of syslinux 5.0 (fedora 21) ldlinux.c32 is required by isolinux.bin + # the debug version can come in handy at times, and is 40k as well + isolinuxdir="/usr/share/syslinux" + isolinuxfiles="isolinux.bin ldlinux.c32 isolinux-debug.bin" + for isolinuxfile in $isolinuxfiles; do + [ -f $isolinuxdir/$isolinuxfile ] && cp $isolinuxdir/$isolinuxfile "${BUILDTMP}/isofs" done - # the syslinux that comes with f12 has this file in a new location - cp "/usr/lib/syslinux/isolinux.bin" "${BUILDTMP}/isofs" \ - || cp "/usr/share/syslinux/isolinux.bin" "${BUILDTMP}/isofs" - ISOFS="${BUILDTMP}/isofs" # Root of the ISO and USB images echo "* Populating root filesystem..." @@ -333,14 +343,21 @@ EOF plnet -- --root $OVERLAY --files-only --program BootCD $NODE_ID fi - if [ -n "$IS_SERIAL" ] ; then - KARGS_STR="$KARGS_STR ${console_spec}" - fi - - if [ -n "$KARGS_STR" ] ; then - echo "$KARGS_STR" > $OVERLAY/kargs.txt - kernel_args=$KARGS_STR - fi + [ -n "$IS_SERIAL" ] && KERNEL_ARGS="$KERNEL_ARGS ${console_spec}" + + # tmp: should be restricted to f15 nodes and above + # making sure the network interfaces are still numbered eth0 and above + KERNEL_ARGS="$KERNEL_ARGS biosdevname=0" + # making sure selinux is turned off - somehow this is needed with lxc/f14 + KERNEL_ARGS="$KERNEL_ARGS selinux=0" +# cannot use this mecahnism to set systemd default target because this applies to kexec boots as well +# # set default target for systemd +# KERNEL_ARGS="$KERNEL_ARGS systemd.unit=pl_boot.target" + # output more systemd-related messages on the console + KERNEL_ARGS="$KERNEL_ARGS systemd.log_target=console" + # this slows down system init but is very helpful when e.g. trying to run on a new distro + [ -n "$DEBUG_SYSTEMD" ] && KERNEL_ARGS="$KERNEL_ARGS systemd.log_level=debug systemd.journald.forward_to_console=1" + [ -n "$KERNEL_ARGS" ] && echo "$KERNEL_ARGS" > $OVERLAY/kargs.txt # Pack overlay files into a compressed archive echo "* Compressing overlay image" @@ -372,14 +389,14 @@ function build_iso() { cat >$ISOFS/isolinux.cfg <$tmp <$tmp <> etc/inittab # and let root log in @@ -624,7 +644,7 @@ function build_iso_cramfs() { cat >$tmp/isolinux.cfg <$tmp <