mirror of
https://github.com/rancher/os.git
synced 2025-06-27 07:16:48 +00:00
67 lines
1.7 KiB
Bash
Executable File
67 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
source $(dirname $0)/version
|
|
cd $(dirname $0)/..
|
|
|
|
ARTIFACTS=$(pwd)/dist/artifacts
|
|
CD=${BUILD}/cd
|
|
ISO=${ARTIFACTS}/$(echo ${DISTRIB_ID} | tr '[:upper:]' '[:lower:]').iso
|
|
CHECKSUM=iso-checksums.txt
|
|
|
|
## TRADITIONAL MBR BOOT
|
|
mkdir -p ${CD}/boot/isolinux
|
|
|
|
if [ ! -f ${ARTIFACTS}/vmlinuz ] || [ ! -f ${ARTIFACTS}/initrd ]; then
|
|
exit 0
|
|
fi
|
|
|
|
cp ${ARTIFACTS}/initrd ${CD}/boot
|
|
cp ${ARTIFACTS}/vmlinuz ${CD}/boot
|
|
cp scripts/isolinux.cfg ${CD}/boot/isolinux
|
|
cp /usr/lib/ISOLINUX/isolinux.bin ${CD}/boot/isolinux
|
|
cp /usr/lib/syslinux/modules/bios/ldlinux.c32 ${CD}/boot/isolinux
|
|
|
|
|
|
## EFI BOOT
|
|
mkdir -p ${CD}/EFI/BOOT
|
|
mkdir -p ${CD}/boot/grub
|
|
cp scripts/grub.cfg ${CD}/boot/grub
|
|
cp -r /usr/lib/grub/x86_64-efi/ ${CD}/boot/grub
|
|
|
|
(cd ${CD} && grub-mkimage -O x86_64-efi -o EFI/BOOT/BOOTX64.EFI --config=boot/grub/grub.cfg --compression=auto --prefix='()/boot/grub' disk part_msdos fat iso9660 )
|
|
|
|
# make the EFI FAT filesystem to boot
|
|
EFIIMG=boot/efiboot.img
|
|
CDEFI=${CD}/${EFIIMG}
|
|
rm -f ${CDEFI}
|
|
dd if=/dev/zero of=${CDEFI} bs=4k count=1000
|
|
mkfs.vfat ${CDEFI}
|
|
mkdir -p tmp/
|
|
mount -o loop ${CDEFI} tmp/
|
|
cp -r ${CD}/EFI tmp/
|
|
umount tmp/
|
|
rmdir tmp/
|
|
|
|
rm -rf ${CD}/EFI
|
|
|
|
|
|
## BUILD THE ISO IMAGE
|
|
|
|
cd ${CD} && xorriso \
|
|
-as mkisofs \
|
|
-l -J -R -V "${DISTRIB_ID}" \
|
|
-no-emul-boot -boot-load-size 4 -boot-info-table \
|
|
-b boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat \
|
|
-isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin \
|
|
-eltorito-alt-boot \
|
|
-e ${EFIIMG} -no-emul-boot \
|
|
-isohybrid-gpt-basdat \
|
|
-o $ISO ${CD}
|
|
|
|
cd $(dirname $ISO)
|
|
rm -f $CHECKSUM
|
|
for algo in sha256 md5; do
|
|
echo "$algo: $(${algo}sum $(basename $ISO))" >> $CHECKSUM
|
|
done
|