]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
2008-02-03 Robert Millan <rmh@aybabtu.com>
authorrobertmh <robertmh@localhost>
Sun, 3 Feb 2008 18:30:20 +0000 (18:30 +0000)
committerrobertmh <robertmh@localhost>
Sun, 3 Feb 2008 18:30:20 +0000 (18:30 +0000)
        * util/i386/pc/grub-mkrescue.in: Rewrite most of image generation to
        use `cdboot.img' for cdrom images.

ChangeLog
util/i386/pc/grub-mkrescue.in

index 1d4c32c6207ed0ec59cc69947bb7b60f072ea025..5450e7b57ba4afcb91b2a285cd73e60a85a04c41 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-02-03  Robert Millan  <rmh@aybabtu.com>
+
+       * util/i386/pc/grub-mkrescue.in: Rewrite most of image generation to
+       use `cdboot.img' for cdrom images.
+
 2008-02-03  Robert Millan  <rmh@aybabtu.com>
 
        * util/grub.d/00_header.in: Issue scripting commands for GRUB to
index 87b36b9c6121c748e1202e931e2b4a39e4f73517..835f7318902407279bae177e2e9518218d379d40 100644 (file)
@@ -1,7 +1,7 @@
 #! /bin/sh -e
 
 # Make GRUB rescue image
-# Copyright (C) 1999,2000,2001,2002,2003,2004,2005,2006,2007  Free Software Foundation, Inc.
+# Copyright (C) 1999,2000,2001,2002,2003,2004,2005,2006,2007,2008  Free Software Foundation, Inc.
 #
 # GRUB is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -102,41 +102,45 @@ if test "x$output_image" = x; then
   exit 1
 fi
 
-if [ "x${image_type}" = "xfloppy" ] ; then
-  floppy_image=${output_image}
-else
-  floppy_image=`mktemp`
-fi
+aux_dir=`mktemp -d`
+mkdir -p ${aux_dir}/boot/grub
 
-memdisk_dir=`mktemp -d`
-mkdir -p ${memdisk_dir}/boot/grub
 cp ${input_dir}/*.mod \
   ${input_dir}/command.lst ${input_dir}/moddep.lst ${input_dir}/fs.lst \
-  ${memdisk_dir}/boot/grub/
+  ${aux_dir}/boot/grub/
 
 if test "x$overlay" = x ; then : ; else
-  cp -dpR ${overlay}/* ${memdisk_dir}/
+  cp -dpR ${overlay}/* ${aux_dir}/
 fi
 
-memdisk_img=`mktemp`
-tar -C ${memdisk_dir} -cf ${memdisk_img} boot
-rm -rf ${memdisk_dir}
-
-core_img=`mktemp`
-${grub_mkimage} -d ${input_dir}/ -m ${memdisk_img} -o ${core_img} memdisk cpio biosdisk ${modules}
-rm -f ${memdisk_img}
-cat ${input_dir}/boot.img ${core_img} /dev/zero | dd bs=1024 count=1440 > $floppy_image
-rm -f ${core_img}
-
 if [ "x${image_type}" = "xfloppy" ] ; then
-  exit 0
+  # build memdisk
+  memdisk_img=`mktemp`
+  tar -C ${aux_dir} -cf ${memdisk_img} boot
+  rm -rf ${aux_dir}
+
+  # build core.img
+  core_img=`mktemp`
+  ${grub_mkimage} -d ${input_dir}/ -m ${memdisk_img} -o ${core_img} memdisk cpio biosdisk ${modules}
+  rm -f ${memdisk_img}
+
+  # build floppy image
+  cat ${input_dir}/boot.img ${core_img} /dev/zero | dd bs=1024 count=1440 > $output_image
+  rm -f ${core_img}
+else
+  # build core.img
+  core_img=`mktemp`
+  ${grub_mkimage} -d ${input_dir}/ -o ${core_img} biosdisk iso9660 ${modules}
+
+  # build grub_eltorito image
+  cat ${input_dir}/cdboot.img ${core_img} > ${aux_dir}/boot/grub/grub_eltorito
+  rm -f ${core_img}
+
+  # build iso image
+  genisoimage -b boot/grub/grub_eltorito \
+    -no-emul-boot -boot-load-size 4 -boot-info-table \
+    -o ${output_image} -r ${aux_dir}
+  rm -rf ${aux_dir}
 fi
 
-iso_dir=`mktemp -d`
-cp $floppy_image ${iso_dir}/floppy.img
-genisoimage -b floppy.img -o ${output_image} -r ${iso_dir}
-rm -rf ${iso_dir}
-
-rm -f ${floppy_image}
-
 exit 0