X-Git-Url: https://git.grml.org/?p=grml-live.git;a=blobdiff_plain;f=etc%2Fgrml%2Ffai%2Fconfig%2Fscripts%2FGRMLBASE%2F45-grub-images;h=6dfbf58eeeb79a9c2157e027d0f1da2424c00a49;hp=75fc1b20a348be00bd373842134cdb442d3ec068;hb=3429ac6a274e3fd1ba0466b4b19b3effeb8b7bd4;hpb=b18889f0d17b02be6477e18bdc6657f374d60631 diff --git a/etc/grml/fai/config/scripts/GRMLBASE/45-grub-images b/etc/grml/fai/config/scripts/GRMLBASE/45-grub-images index 75fc1b2..6dfbf58 100755 --- a/etc/grml/fai/config/scripts/GRMLBASE/45-grub-images +++ b/etc/grml/fai/config/scripts/GRMLBASE/45-grub-images @@ -44,6 +44,18 @@ if ifclass AMD64 ; then fi fi +# until grub 1.99-27.1 it's called raid, starting with +# grub version 2.00-14 the raid.mod module no longer exists +if [ -r "${target}"/usr/lib/grub/i386-pc/raid.mod ] ; then + echo "Using raid module as file raid.mod is present" + ADDITIONAL_MODULES[raid]="raid" +elif [ -r "${target}"/usr/lib/grub/i386-pc/diskfilter.mod ] ; then + echo "Using diskfilter and related modules as file diskfilter.mod is present" + ADDITIONAL_MODULES[raid]="diskfilter mdraid09 mdraid09_be mdraid1x raid5rec raid6rec" +else + echo "Warning: no according raid module in grub directory found." +fi + BOOTX64="${BOOTX64##${target}}" EFI_IMG="${EFI_IMG##${target}}" TMP_CONFIG="${TMP_CONFIG##${target}}" @@ -53,8 +65,9 @@ $ROOTCMD grub-mkimage -O $arch -o /boot/$arch.img --prefix=/boot/grub/ --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]} + probe regexp reiserfs search search_fs_file search_fs_uuid \ + search_label squash4 terminal test video videoinfo xfs \ + ${ADDITIONAL_MODULES[raid]} ${ADDITIONAL_MODULES[$arch]} done if [ -f "${target}/boot/i386-pc.img" ] ; then @@ -64,24 +77,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 1 + 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 --apparent-size -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