summaryrefslogtreecommitdiff
path: root/scripts/build/binary_grub-pc
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/build/binary_grub-pc')
-rwxr-xr-xscripts/build/binary_grub-pc34
1 files changed, 34 insertions, 0 deletions
diff --git a/scripts/build/binary_grub-pc b/scripts/build/binary_grub-pc
index 85074a486..86e0ac431 100755
--- a/scripts/build/binary_grub-pc
+++ b/scripts/build/binary_grub-pc
@@ -74,6 +74,40 @@ fi
# Copying grub
cp ${FILES} binary/boot/grub/i386-pc
+# Create eltorito image for ISO cases
+if [ "${LIVE_IMAGE_TYPE}" = "iso" ] || [ "${LIVE_IMAGE_TYPE}" = "iso-hybrid" ]; then
+
+ cat > binary.sh << EOF
+#!/bin/sh
+
+INPUT_DIR="/usr/lib/grub/i386-pc"
+
+# build core.img
+CORE_IMG=\$(mktemp)
+grub-mkimage -d \${INPUT_DIR} -o \${CORE_IMG} -O i386-pc --prefix=/boot/grub biosdisk iso9660
+
+# build grub_eltorito image
+cat \${INPUT_DIR}/cdboot.img \${CORE_IMG} > grub_eltorito
+
+rm -f \${CORE_IMG}
+EOF
+
+ case "${LB_BUILD_WITH_CHROOT}" in
+ true)
+ mv binary.sh chroot
+ Chroot chroot "sh binary.sh"
+ mv chroot/grub_eltorito binary/boot/grub/grub_eltorito
+ rm -f chroot/binary.sh
+ ;;
+
+ false)
+ sh binary.sh
+ mv grub_eltorito binary/boot/grub/grub_eltorito
+ rm -f binary.sh
+ ;;
+ esac
+fi
+
# Saving cache
Save_package_cache binary