--- grub-mkrescue.in 2010-05-18 10:02:06.000000000 +0200 +++ grub-mkrescue.in.ts 2010-05-19 13:53:18.000000000 +0200 @@ -38,6 +38,9 @@ efi32_dir=${libdir}/$(echo ${PACKAGE_TAR efi64_dir=${libdir}/$(echo ${PACKAGE_TARNAME} | sed ${transform})/x86_64-efi rom_directory= +xorriso=xorriso +diet=no + # Usage: usage # Print the usage. usage () { @@ -50,6 +53,8 @@ Make GRUB rescue image. --output=FILE save output in FILE [required] --modules=MODULES pre-load specified modules MODULES --rom-directory=DIR save rom images in DIR [optional] + --xorriso=PROGFILE use PROGFILE as xorriso program [optional] + --diet apply size reducing measures [optional] $0 generates a bootable rescue image with specified source files or directories. @@ -78,6 +83,10 @@ for option in "$@"; do PATH=${override_dir}:$PATH export PATH ;; + --xorriso=*) + xorriso=`echo "${option}/" | sed 's/--xorriso=//'` ;; + --diet) + diet=yes ;; -*) echo "Unrecognized option \`$option'" 1>&2 usage @@ -254,7 +263,14 @@ if [ -e "${iso9660_dir}/boot/coreboot.el fi # build iso image -xorriso -pathspecs on -as mkisofs ${grub_mkisofs_arguments} --protective-msdos-label -o ${output_image} -r ${iso9660_dir} ${source} +if [ "${diet}" = yes ]; then + if [ -e "${output_image}" ]; then + rm "${output_image}" || exit 1 + fi + "${xorriso}" -report_about HINT -as mkisofs -graft-points -no-pad ${grub_mkisofs_arguments} --protective-msdos-label -r ${iso9660_dir} ${source} | cat >"${output_image}" +else + "${xorriso}" -report_about HINT -as mkisofs -graft-points ${grub_mkisofs_arguments} --protective-msdos-label -o "${output_image}" -r ${iso9660_dir} ${source} +fi rm -rf ${iso9660_dir} rm -f ${embed_img}