GRMLBASE/45-grub-images: fix typo from previous commit
[grml-live.git] / etc / grml / fai / config / scripts / GRMLBASE / 45-grub-images
index 75fc1b2..6dfbf58 100755 (executable)
@@ -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