#!/bin/bash # Filename: ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/45-efi # Purpose: create grub image for use in ISO for EFI boot # Authors: grml-team (grml.org), (c) Michael Prokop # Bug-Reports: see http://grml.org/bugs/ # License: This file is licensed under the GPL v2 or any later version. ################################################################################ set -e if ! ifclass AMD64 ; then echo "Not in AMD64 class but EFI feature is restricted to amd64 only, skipping." exit 0 fi set -u if ! [ -r "${target}"/usr/lib/grub/x86_64-efi/moddep.lst ] ; then echo "/usr/lib/grub/x86_64-efi/moddep.lst could not be found, skipping." echo "NOTE: grub-efi-amd64-bin not installed?" exit 0 fi GRUB_EFI_IMAGE="${target}/tmp/grub_efi_image" TMP_CONFIG="${target}/tmp/grub_config_efi" EFI_IMAGE="${target}/tmp/efi_image" rm -f "$GRUB_EFI_IMAGE" "$TMP_CONFIG" "$EFI_IMAGE" cat > "$TMP_CONFIG" <&2 exit 1 fi SIZE=$(du -sk "${target}/${GRUB_EFI_IMAGE}" | awk -F" " '{print $1'}) SIZE=$(((($SIZE / 32 )+2)*32)) dd if=/dev/zero of="${target}/${EFI_IMAGE}" bs=1k count="$SIZE" 2>/dev/null $ROOTCMD mkfs.vfat -n GRML "$EFI_IMAGE" >/dev/null $ROOTCMD mmd -i "$EFI_IMAGE" ::EFI $ROOTCMD mmd -i "$EFI_IMAGE" ::EFI/BOOT $ROOTCMD mcopy -i "$EFI_IMAGE" "$GRUB_EFI_IMAGE" ::EFI/BOOT/bootx64.efi >/dev/null rm -f "${target}/${TMP_CONFIG}" mv "${target}/${EFI_IMAGE}" "${target}/var/lib/grml_live_efi.img" mv "${target}/${GRUB_EFI_IMAGE}" "${target}/var/lib/grml_live_bootx64.efi" echo "Generated EFI image ${target}/var/lib/grml_live_efi.img" echo "Generated bootx64 image ${target}/var/lib/grml_live_bootx64.efi" ## END OF FILE ################################################################# # vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2