#!/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 BOOTX64="${target}/boot/bootx64.efi" EFI_IMG="${target}/boot/efi.img" TMP_CONFIG="${target}/tmp/grub_config_efi" rm -f "$BOOTX64" "$EFI_IMG" "$TMP_CONFIG" cat > "$TMP_CONFIG" <&2 exit 0 fi for arch in ${ARCHS[@]} ; do $ROOTCMD grub-mkimage -O $arch -o /boot/$arch.img --prefix=/boot/grub/ --config="$TMP_CONFIG" \ bitmap boot btrfs cat chain cmp configfile cpio echo elf ext2 \ fat gfxmenu gfxterm gzio help iso9660 jpeg linux loopback lvm \ memdisk minicmd multiboot normal part_gpt part_msdos play png \ probe raid regexp reiserfs search search_fs_file search_fs_uuid \ search_label squash4 terminal test video videoinfo xfs ${ADDITIONAL_MODULES[$arch]} done if [ -f "${target}/boot/i386-pc.img" ] ; then mv "${target}/boot/i386-pc.img" "${target}/boot/grub/grub.img" fi if [ -f "${target}/boot/x86_64-efi.img" ] ; then mv "${target}/boot/x86_64-efi.img" "${target}/${BOOTX64}" fi if ifclass AMD64 ; then if ! [ -r "${target}/${BOOTX64}" ] ; then echo "Can not access grub efi image." >&2 exit 0 fi SIZE=$(du -sk "${target}/${BOOTX64}" | awk -F" " '{print $1'}) SIZE=$(((($SIZE / 32 )+2)*32)) dd if=/dev/zero of="${target}/${EFI_IMG}" bs=1k count="$SIZE" 2>/dev/null $ROOTCMD mkfs.vfat -n GRML "$EFI_IMG" >/dev/null $ROOTCMD mmd -i "$EFI_IMG" ::EFI $ROOTCMD mmd -i "$EFI_IMG" ::EFI/BOOT $ROOTCMD mcopy -i "$EFI_IMG" "$BOOTX64" ::EFI/BOOT/bootx64.efi >/dev/null echo "Generated EFI image $BOOTX64" echo "Generated bootx64 image $EFI_IMG" fi rm -f "${target}/${TMP_CONFIG}" echo "Generated Grub images" ## END OF FILE ################################################################# # vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2