X-Git-Url: http://git.grml.org/?p=grml-live.git;a=blobdiff_plain;f=etc%2Fgrml%2Ffai%2Fconfig%2Fscripts%2FGRMLBASE%2F45-grub-images;fp=etc%2Fgrml%2Ffai%2Fconfig%2Fscripts%2FGRMLBASE%2F45-efi;h=75fc1b20a348be00bd373842134cdb442d3ec068;hp=673ac6bd922957f2511e77c678ac2054bcd34896;hb=b18889f0d17b02be6477e18bdc6657f374d60631;hpb=66739037e14da89f1805d9c6f4e7f2b1fed59cf8 diff --git a/etc/grml/fai/config/scripts/GRMLBASE/45-efi b/etc/grml/fai/config/scripts/GRMLBASE/45-grub-images similarity index 60% rename from etc/grml/fai/config/scripts/GRMLBASE/45-efi rename to etc/grml/fai/config/scripts/GRMLBASE/45-grub-images index 673ac6b..75fc1b2 100755 --- a/etc/grml/fai/config/scripts/GRMLBASE/45-efi +++ b/etc/grml/fai/config/scripts/GRMLBASE/45-grub-images @@ -8,18 +8,6 @@ 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 BOOTX64="${target}/boot/bootx64.efi" EFI_IMG="${target}/boot/efi.img" @@ -41,13 +29,41 @@ BOOTX64="${BOOTX64##${target}}" EFI_IMG="${EFI_IMG##${target}}" TMP_CONFIG="${TMP_CONFIG##${target}}" -$ROOTCMD grub-mkimage -O x86_64-efi -o "$BOOTX64" --prefix=/boot/grub/ --config="$TMP_CONFIG" \ - bitmap boot btrfs cat chain cmp configfile cpio echo efi_gop \ - efi_uga elf ext2 fat gfxmenu gfxterm gzio help iso9660 jpeg linux \ - loopback lvm 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 +ARCHS=(i386-pc) +declare -A ADDITIONAL_MODULES +ADDITIONAL_MODULES[i386-pc]="biosdisk" + +if ifclass AMD64 ; then + if [ -r "${target}"/usr/lib/grub/x86_64-efi/moddep.lst ] ; then + ARCHS+=(x86_64-efi) + ADDITIONAL_MODULES[x86_64-efi]="efi_gop efi_uga" + else + echo "/usr/lib/grub/x86_64-efi/moddep.lst could not be found, skipping." + echo "NOTE: grub-efi-amd64-bin not installed?" + fi +fi + +BOOTX64="${BOOTX64##${target}}" +EFI_IMG="${EFI_IMG##${target}}" +TMP_CONFIG="${TMP_CONFIG##${target}}" + +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 ! [ -r "${target}/${BOOTX64}" ] ; then echo "Can not access grub efi image." >&2 exit 1