From 0d41e5101f2ada712045765f54044deb820f8085 Mon Sep 17 00:00:00 2001 From: Guilhem Moulin Date: Fri, 3 Jan 2014 01:45:12 +0100 Subject: UEFI support. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tested with the IntelĀ® Desktop Board DH87RL, BIOS [RLH8710H.86A] version 0323. --- preseed.sh | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) (limited to 'preseed.sh') diff --git a/preseed.sh b/preseed.sh index 3fbc329..ff88535 100755 --- a/preseed.sh +++ b/preseed.sh @@ -17,7 +17,7 @@ test -r "$iso" || exit 1 shift; shift pwd=$(pwd) -for prog in fuseiso fusermount rsync md5sum genisoimage find; do +for prog in fuseiso fusermount rsync md5sum xorriso find; do if ! which "$prog" >/dev/null; then echo "Error: Missing $prog" >&2 exit 1 @@ -36,10 +36,10 @@ rmdir "$mountdir" cp preseed.cfg "$isoeditdir/" md5sum ./preseed.cfg >> "$isoeditdir/md5sum.txt" -isolinux=isolinux/adtxt.cfg -sed -ri "s@^\s+append\s(.*\s)?auto=true\b@& file=/cdrom/preseed.cfg @" \ - "$isoeditdir/$isolinux" -# ^ no need to update the checksum, $isolinux is not in './md5sum.txt'. +cfg="$isoeditdir/isolinux/*.cfg $isoeditdir/isolinux/*/*.cfg" +[ -d $isoeditdir/boot -a -d $isoeditdir/boot/grub ] && cfg="$cfg $isoeditdir/boot/grub/grub.cfg" +sed -ri "s@auto=true\s+priority=critical\b@& file=/cdrom/preseed.cfg @" $cfg +# ^ no need to update isolinux' checksum, as it's not in './md5sum.txt'. mkdir "$isoeditdir/include" rsync -aL ./include/ "$isoeditdir/include"/ @@ -76,7 +76,8 @@ gzip -fk ./"$packages" md5sums=$(mktemp) while read sum file; do if [ "$file" = "./${packages}" -o \ - "$file" = "./${packages}.gz" ]; then + "$file" = "./${packages}.gz" -o \ + "$file" = "./boot/grub/grub.cfg" ]; then md5sum "$file" else echo "$sum $file" @@ -84,10 +85,18 @@ while read sum file; do done < ./md5sum.txt > "$md5sums" mv "$md5sums" "$isoeditdir/md5sum.txt" -genisoimage -o "$newiso" -quiet -r -J \ - -no-emul-boot -boot-load-size 4 \ - -boot-info-table \ - -b isolinux/isolinux.bin \ - -c isolinux/boot.cat \ +if [ -f ./boot/grub/efi.img ]; then + efi_opts="--efi-boot boot/grub/efi.img -append_partition 2 0x01 ./boot/grub/efi.img" +else + efi_opts= +fi +xorriso -as mkisofs -r \ + -checksum_algorithm_iso all \ + -isohybrid-mbr /usr/lib/syslinux/isohdpfx.bin \ + -b isolinux/isolinux.bin -c isolinux/boot.cat \ + -partition_offset 16 \ + -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot $efi_opts \ + -o "$newiso" \ ./ + rm -rf "$isoeditdir" -- cgit v1.2.3