X-Git-Url: https://git.grml.org/?a=blobdiff_plain;f=etc%2Fgrml%2Ffai%2Fconfig%2Fscripts%2FGRMLBASE%2F45-grub-images;h=5aace7408d6b013528725fa4a374116aee0a86d0;hb=3b1d15157c31476309296dd34fc5753fa9e7ffc8;hp=75fc1b20a348be00bd373842134cdb442d3ec068;hpb=b18889f0d17b02be6477e18bdc6657f374d60631;p=grml-live.git diff --git a/etc/grml/fai/config/scripts/GRMLBASE/45-grub-images b/etc/grml/fai/config/scripts/GRMLBASE/45-grub-images index 75fc1b2..5aace74 100755 --- a/etc/grml/fai/config/scripts/GRMLBASE/45-grub-images +++ b/etc/grml/fai/config/scripts/GRMLBASE/45-grub-images @@ -29,10 +29,14 @@ BOOTX64="${BOOTX64##${target}}" EFI_IMG="${EFI_IMG##${target}}" TMP_CONFIG="${TMP_CONFIG##${target}}" -ARCHS=(i386-pc) declare -A ADDITIONAL_MODULES -ADDITIONAL_MODULES[i386-pc]="biosdisk" +ARCHS=() + +if [ -r "${target}"/usr/lib/grub/i386-pc/moddep.lst ] ; then + ARCHS+=(i386-pc) + ADDITIONAL_MODULES[i386-pc]="biosdisk" +fi if ifclass AMD64 ; then if [ -r "${target}"/usr/lib/grub/x86_64-efi/moddep.lst ] ; then @@ -48,6 +52,12 @@ BOOTX64="${BOOTX64##${target}}" EFI_IMG="${EFI_IMG##${target}}" TMP_CONFIG="${TMP_CONFIG##${target}}" + +if [ -z "$ARCHS" ] ; then + echo "WARNING: No grub modules found, exiting" >&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 \ @@ -64,24 +74,28 @@ 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 -fi -SIZE=$(du -sk "${target}/${BOOTX64}" | awk -F" " '{print $1'}) -SIZE=$(((($SIZE / 32 )+2)*32)) +if ifclass AMD64 ; then + if ! [ -r "${target}/${BOOTX64}" ] ; then + echo "Can not access grub efi image." >&2 + exit 0 + fi -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 + 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" -echo "Generated EFI image $BOOTX64" -echo "Generated bootx64 image $EFI_IMG" ## END OF FILE ################################################################# # vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2