summaryrefslogtreecommitdiffstats
path: root/EFI/BOOT/make-grub.sh
diff options
context:
space:
mode:
author Eric Hameleers <alien@slackware.com>2016-03-18 21:24:37 +0100
committer Eric Hameleers <alien@slackware.com>2016-03-18 21:24:37 +0100
commit4b2d8cf1485ccdfc5871aec8408848d8db6df116 (patch)
tree96d5e73fc75b7bde28b27c308673cb4e3bb4f420 /EFI/BOOT/make-grub.sh
parenta407de59dab6b5ca5d3b9ed87f8b662f83dfec18 (diff)
downloadliveslak-4b2d8cf1485ccdfc5871aec8408848d8db6df116.tar.gz
liveslak-4b2d8cf1485ccdfc5871aec8408848d8db6df116.tar.xz
Add support for 32-bit UEFI boot (disabled by default).
This requires functionality in grub which is currently not enabled in Slackware's grub package. If you want a 32-bit Live ISO that boots on UEFI computers, you need to recompile Slackware's grub with the patch for grub.SlackBuild which you can find in the ./patches subdirectory. Then you need to set the variable "EFI32" to "YES" in the 'make_slackware_live.sh' script and (re-)generate your 32-bit ISO. The resulting 32-bit Live ISO will be UEFI-bootable.
Diffstat (limited to 'EFI/BOOT/make-grub.sh')
-rw-r--r--EFI/BOOT/make-grub.sh19
1 files changed, 14 insertions, 5 deletions
diff --git a/EFI/BOOT/make-grub.sh b/EFI/BOOT/make-grub.sh
index d5fcd65..ca5869b 100644
--- a/EFI/BOOT/make-grub.sh
+++ b/EFI/BOOT/make-grub.sh
@@ -26,11 +26,20 @@
# image (efiboot.img) that goes in the /isolinux directory for booting on
# UEFI systems.
+# Preparations:
+eval $1 # EFIFORM=value1
+eval $2 # EFISUFF=value2
+
+# Defaults in case the script was called without parameters:
+EFIFORM=${EFIFORM:-"x86_64"}
+EFISUFF=${EFISUFF:-"x64"}
+
echo
-echo "Building /EFI/BOOT/bootx64.efi and /boot/syslinux/efiboot.img."
+echo "Building /EFI/BOOT/boot${EFISUFF}.efi and /boot/syslinux/efiboot.img."
-# First, build bootx64.efi, which will be installed here in /EFI/BOOT:
-grub-mkimage --format=x86_64-efi --output=bootx64.efi --config=grub-embedded.cfg --compression=xz --prefix=/EFI/BOOT part_gpt part_msdos fat ext2 hfs hfsplus iso9660 udf ufs1 ufs2 zfs chain linux boot appleldr ahci configfile normal regexp minicmd reboot halt search search_fs_file search_fs_uuid search_label gfxterm gfxmenu efi_gop efi_uga all_video loadbios gzio echo true probe loadenv bitmap_scale font cat help ls png jpeg tga test at_keyboard usb_keyboard
+# First, build bootx64.efi/bootia32.efi,
+# which will be installed here in /EFI/BOOT:
+grub-mkimage --format=${EFIFORM}-efi --output=boot${EFISUFF}.efi --config=grub-embedded.cfg --compression=xz --prefix=/EFI/BOOT part_gpt part_msdos fat ext2 hfs hfsplus iso9660 udf ufs1 ufs2 zfs chain linux boot appleldr ahci configfile normal regexp minicmd reboot halt search search_fs_file search_fs_uuid search_label gfxterm gfxmenu efi_gop efi_uga all_video loadbios gzio echo true probe loadenv bitmap_scale font cat help ls png jpeg tga test at_keyboard usb_keyboard
# Then, create a FAT formatted image that contains bootx64.efi in the
# /EFI/BOOT directory. This is used to bootstrap GRUB from the ISO image.
@@ -43,7 +52,7 @@ MOUNTPOINT=$(mktemp -d)
mount -o loop efiboot.img $MOUNTPOINT
# Copy the GRUB binary to /EFI/BOOT:
mkdir -p $MOUNTPOINT/EFI/BOOT
-cp -a bootx64.efi $MOUNTPOINT/EFI/BOOT
+cp -a boot${EFISUFF}.efi $MOUNTPOINT/EFI/BOOT
# Unmount and clean up:
umount $MOUNTPOINT
rmdir $MOUNTPOINT
@@ -51,5 +60,5 @@ rmdir $MOUNTPOINT
mv efiboot.img ../../boot/syslinux/
echo
-echo "Done building /EFI/BOOT/bootx64.efi and /boot/syslinux/efiboot.img."
+echo "Done building /EFI/BOOT/boot${EFISUFF}.efi and /boot/syslinux/efiboot.img."