X-Git-Url: https://code.delx.au/refind/blobdiff_plain/6ddfd09a30d788c784840b1f6dfc3d9281b33726..b04a842814ccc991ed93a52acbd7ac27768be686:/mkcdimage diff --git a/mkcdimage b/mkcdimage index 613ab62..a794812 100755 --- a/mkcdimage +++ b/mkcdimage @@ -23,17 +23,37 @@ rm -rf temp mkdir temp cd temp unzip ../refind-bin-$Version.zip +cp $StartDir/SHELLS.txt ./refind-bin-$Version -# Create hard links to the files so that they'll be suitable for an -# EFI-boot CD... +# Create a boot directory and (temporarily) copy the EFI shell +# files to it.... mkdir -p refind-bin-$Version/EFI/boot cd refind-bin-$Version/EFI/boot +cp $StartDir/shell*.efi ./ + +# Create hard links to the rEFInd files so that they'll be suitable for an +# EFI-boot CD... ln ../../refind/refind_ia32.efi ./bootia32.efi ln ../../refind/refind_x64.efi ./bootx64.efi -ln ../../refind/refind.conf-sample ./refind.conf +ln ../../refind/refind_aa64.efi ./bootaa64.efi +cp ../../refind/refind.conf-sample ./refind.conf +sed -i '/#showtools/a showtools shell,memtest,gdisk,apple_recovery,csr_rotate,windows_recovery,mok_tool,about,shutdown,reboot,firmware' refind.conf +sed -i '/#csr_values/a csr_values 10,77' refind.conf mkdir icons cd icons ln ../../../refind/icons/* ./ +cd ../ +mkdir drivers_x64 +cd drivers_x64 +ln ../../../refind/drivers_x64/* ./ +cd .. +mkdir drivers_ia32 +cd drivers_ia32 +ln ../../../refind/drivers_ia32/* ./ +cd .. +mkdir drivers_aa64 +cd drivers_aa64 +ln ../../../refind/drivers_aa64/* ./ cd ../../.. # Get the size of the binaries to go in the El Torito image in kB @@ -41,18 +61,48 @@ ToritoSize=`du -s EFI | cut -f 1` let ToritoSize=($ToritoSize)/28 let ToritoSize=($ToritoSize)*32 +# Move the EFI shell files back to the root where they belong +# (They were in EFI/boot just so they'd get counted in ToritoSize) +mv EFI/boot/shell*.efi ./ + # Prepare a FAT filesystem image and populate it with the # EFI boot files.... dd if=/dev/zero of=refind-bin-$Version.img bs=1024 count=$ToritoSize -mkdosfs -n "rEFInd.ET" refind-bin-$Version.img -mcopy -irefind-bin-$Version.img -s EFI ::/ +mkdosfs -n "ElTorito" refind-bin-$Version.img +mcopy -irefind-bin-$Version.img -s EFI shell*.efi ::/ # Make the ISO-9660 image file.... -mkisofs -A "Bootable rEFInd" -V "rEFInd $Version" -volset "rEFInd $Version" \ +mkisofs -A "Bootable rEFInd" -V "rEFInd_$Version" -volset "rEFInd_$Version" \ -J -r -v -x ./lost+found -o ../../refind-cd-$Version.iso \ - -b refind-bin-$Version.img -c boot.cat -no-emul-boot -boot-load-size 4 \ -eltorito-alt-boot -efi-boot refind-bin-$Version.img \ -no-emul-boot ./ -cd ../../ +# Create a bootable USB flash drive image, using the FAT filesystem +# created above and a stored partition table image (plus some empty +# sectors).... +# +rm -f ../../refind-flashdrive-$Version.* +let FatSize=`du -s refind-bin-$Version.img | cut -f 1` +let FatSize=($FatSize)+2048 +dd if=/dev/zero of=../../refind-flashdrive-$Version.img bs=1024 count=$FatSize +sgdisk -n 1:2048:0 -t 1:EF00 -g ../../refind-flashdrive-$Version.img +if [[ $? != 0 ]] ; then + echo "sgdisk failed! Exiting!" + exit 1 +fi +dd if=refind-bin-$Version.img of=../../refind-flashdrive-$Version.img bs=512 seek=2048 conv=notrunc + +cd .. +mkdir refind-flashdrive-$Version +ln ../refind-flashdrive-$Version.img refind-flashdrive-$Version +cp $StartDir/README-flashdrive.txt $StartDir/COPYING.txt $StartDir/NEWS.txt \ + $StartDir/CREDITS.txt $StartDir/LICENSE.txt $StartDir/SHELLS.txt refind-flashdrive-$Version +zip -9r ../refind-flashdrive-$Version.zip refind-flashdrive-$Version + +cd ../ + +# Zip up the optical disc image.... +rm -f refind-cd-$Version.zip +zip -9 refind-cd-$Version.zip refind-cd-$Version.iso + rm -r temp/