From: Ulrich Dangel Date: Tue, 20 Apr 2010 19:33:36 +0000 (+0200) Subject: Support multiiso cds X-Git-Tag: v0.99.10~3 X-Git-Url: http://git.grml.org/?p=grml-terminalserver.git;a=commitdiff_plain;h=fafcc8fbdff4f9052067984cd846453169a9d24d Support multiiso cds --- diff --git a/grml-terminalserver b/grml-terminalserver index 93fe965..3511cd3 100755 --- a/grml-terminalserver +++ b/grml-terminalserver @@ -202,7 +202,11 @@ function createTftpConf execute "mkdir -p $TFTPD_DATA_DIR_/pxelinux.cfg" die execute "install -m 644 /usr/lib/syslinux/pxelinux.0 $TFTPD_DATA_DIR_" die execute "install -m 644 $PATH_/minirt26.gz $TFTPD_DATA_DIR_" die - execute "install -m 644 $KERNEL_IMAGE_ $TFTPD_DATA_DIR_/linux26" die + if [ -d "$MOUNT_POINT_"/boot/release ] ; then + cp -r "$MOUNT_POINT_"/boot/release "$TFTPD_DATA_DIR_" + else + execute "install -m 644 $KERNEL_IMAGE_ $TFTPD_DATA_DIR_/linux26" die + fi execute "install -m 644 $MEMTEST_IMAGE_ $TFTPD_DATA_DIR_/memtest" die execute "install -m 644 $PXE_BOOT_MSG_ $TFTPD_DATA_DIR_" die execute "install -m 644 $PXE_BOOT_LOGO_ $TFTPD_DATA_DIR_" die diff --git a/templates/grub-pxelinux_config b/templates/grub-pxelinux_config index a538792..6e0dc40 100644 --- a/templates/grub-pxelinux_config +++ b/templates/grub-pxelinux_config @@ -35,7 +35,7 @@ fi grub_def_boot_args_="/linux26 $default_boot_args_" # special boot arguments required by pxelinux -pxe_def_boot_args_="$default_boot_args_ initrd=minirt26.gz" +pxe_def_boot_args_="$default_boot_args_" # default arguments for framebuffer console def_fb_args_="vga=791" @@ -97,8 +97,7 @@ ret_=$? ## create pxelinux config ### DEST_DIR=$(mktemp -d) -grml2usb --bootloader-only --remove-bootoption='initrd=/boot/[a-z0-9/.]*/initrd.gz' \ - --remove-bootoption='live-media-path=[a-z0-9/.-]+/' \ +grml2usb --bootloader-only \ --bootoptions="$pxe_def_boot_args_ $BOOT_ARGS_" /live/image "$DEST_DIR" mv "$DEST_DIR"/boot/syslinux/* "$TFTPD_DATA_DIR_/" @@ -106,14 +105,23 @@ rmdir "$DEST_DIR"/boot/syslinux mv "$DEST_DIR"/boot/ "$TFTPD_DATA_DIR_" -# remove normal kernel path and use our image -sed -i -e 's/.*kernel.*linux26/kernel linux26/' "$TFTPD_DATA_DIR_/"*.cfg 2>/dev/null -# only append live-media-path if needed -if [ ! -z "$live_media_path_" ] ; then - sed -i -e 's/\(.*append.*\)/\1 live-media-path='$live_media_path_'/' "$TFTPD_DATA_DIR_/"*.cfg 2>/dev/null -fi +# cd is multi iso, grml2usb got it right ;0 +if [ -d "$MOUNT_POINT_"/boot/release ] ; then + sed -i -e 's#\(.*\)/boot/\(.*\)#\1\2#' "$TFTPD_DATA_DIR_/"*.cfg 2>/dev/null +else + # remove normal kernel path and use our image + sed -i -e 's/.*kernel.*linux26/kernel linux26/' "$TFTPD_DATA_DIR_/"*.cfg 2>/dev/null + sed -i -e 's/\(initrd\)=[[:alnum:]/._-]*/\1=minirt26.gz/' "$TFTPD_DATA_DIR_/"*.cfg 2>/dev/null + # only append live-media-path if needed + if [ ! -z "$live_media_path_" ] ; then + sed -i -e 's/\(live-media-path\)=[[:alnum:]/._-]*/\1='$live_media_path_'/' "$TFTPD_DATA_DIR_/"*.cfg 2>/dev/null + else + sed -i -e 's/live-media-path=[[:alnum:]/._-]*//' "$TFTPD_DATA_DIR_/"*.cfg 2>/dev/nul + fi + +fi # adjust ldbsd.com bootline sed -i -e 's#\(.*kernel .*/ldbsd.com\)#\1 set image /boot/addons/bsd4grml/bsd.rd`echo Type "boot" to load MirOS bsd4grml via keeppxe#' "$TFTPD_DATA_DIR_/"addon_*_bsd.cfg