MOUNT_POINT_="/cdrom"
fi
-DATA_PATH_="$MOUNT_POINT_/boot/isolinux"
+# assume we have a grml2usb system
+if [ -d "$MOUNT_POINT_"/boot/release ] ; then
+ DATA_PATH_="$MOUNT_POINT_/boot/release"
+else # no grml2usb but running from CD
+ DATA_PATH_="$MOUNT_POINT_/boot"
+fi
+
+# new grml2usb layout
+if [ -d "$MOUNT_POINT_"/boot/syslinux ] ; then
+ ISOLIN_PATH_="$MOUNT_POINT_/boot/syslinux"
+ test -d $ISOLIN_PATH_ || ISOLIN_PATH_="$MOUNT_POINT_"
+else # old layout
+ ISOLIN_PATH_="$DATA_PATH_/isolinux"
+ test -d $ISOLIN_PATH_ || ISOLIN_PATH_="$MOUNT_POINT_"
+fi
+
+# addons
+if [[ "$(find $MOUNT_POINT_ -maxdepth 3 -name memtest |head -n1)" != "" ]] ; then
+ ADDONS_PATH_="$(dirname $(find $MOUNT_POINT_ -maxdepth 3 -name memtest |head -n1))"
+fi
+
+if [[ $ADDONS_PATH_ == "" ]]; then
+ ADDONS_PATH_="$MOUNT_POINT_"
+fi
+
+if [[ "$(find $DATA_PATH_/ -maxdepth 2 -name linux26 |head -n1)" != "" ]] ; then
+ MULTIBOOT_PATH_="$(dirname $(find $DATA_PATH_ -maxdepth 2 -name linux26 |head -n1))"
+else
+ MULTIBOOT_PATH_="$MOUNT_POINT_"
+fi
-KERNEL_IMAGE_="$DATA_PATH_/linux26"
+if [[ $MULTIBOOT_PATH_ == "" ]]; then
+ MULTIBOOT_PATH_="$MOUNT_POINT_"
+fi
-ORIGINAL_INITRD_="$DATA_PATH_/minirt26.gz"
+KERNEL_IMAGE_="$MULTIBOOT_PATH_/linux26"
-MEMTEST_IMAGE_="$DATA_PATH_/memtest"
+if [[ ! -f "$KERNEL_IMAGE_" ]] ; then
+ KERNEL_IMAGE_="/boot/vmlinuz-$KERNEL_VERSION_"
+fi
-PXE_BOOT_MSG_="$DATA_PATH_/boot.msg"
+ORIGINAL_INITRD_="$MULTIBOOT_PATH_/initrd.gz"
+
+MEMTEST_IMAGE_="$ADDONS_PATH_/memtest"
+if [ ! -f "$MEMTEST_IMAGE_" ] ; then
+ MEMTEST_IMAGE_=$(find /boot -name memtest*.bin | head -n1)
+fi
+
+PXE_BOOT_MSG_="$ISOLIN_PATH_/boot.msg"
+# grml2usb with grub doesn't provide boot.msg, so generate a default one
+if ! [ -f "$PXE_BOOT_MSG_" ] ; then
+ PXE_BOOT_MSG_="$(mktemp)"
+ cat > $PXE_BOOT_MSG_ << EOF
+\ f17\f\18logo.16
+
+Some information and boot options available via keys F2 - F10. http://grml.org/
+
+EOF
+fi
-PXE_BOOT_LOGO_="$DATA_PATH_/logo.16"
+PXE_BOOT_LOGO_="$ISOLIN_PATH_/logo.16"
IPTABLES_SNAT_="true"
+# EOF