bf7ed5aa4e
From: Matthew Garrett <mjg@redhat.com> If we're producing EFI bootable images then we should also support making them bootable from USB sticks. This adds support for doing so.
73 lines
2.8 KiB
Cheetah
73 lines
2.8 KiB
Cheetah
<%page args="kernels, runtime_img, basearch, outroot, product"/>
|
|
<%
|
|
configdir="tmp/config_files"
|
|
SYSLINUXDIR="usr/share/syslinux"
|
|
PXEBOOTDIR="images/pxeboot"
|
|
BOOTDIR="isolinux"
|
|
KERNELDIR=PXEBOOTDIR
|
|
%>
|
|
|
|
mkdir images
|
|
install ${runtime_img} images/install.img
|
|
|
|
mkdir ${BOOTDIR} ${KERNELDIR}
|
|
install ${SYSLINUXDIR}/isolinux.bin ${BOOTDIR}
|
|
install ${configdir}/syslinux.cfg ${BOOTDIR}/isolinux.cfg
|
|
install usr/share/anaconda/boot/syslinux-vesa-splash.jpg ${BOOTDIR}/splash.jpg
|
|
install ${configdir}/boot.msg.x86 ${BOOTDIR}/boot.msg
|
|
install ${SYSLINUXDIR}/vesamenu.c32 ${BOOTDIR}
|
|
install ${configdir}/grub.conf ${BOOTDIR}
|
|
|
|
replace @VERSION@ ${product.version} ${BOOTDIR}/grub.conf ${BOOTDIR}/isolinux.cfg ${BOOTDIR}/*.msg
|
|
replace @PRODUCT@ ${product.name} ${BOOTDIR}/grub.conf ${BOOTDIR}/isolinux.cfg ${BOOTDIR}/*.msg
|
|
replace @ROOT@ 'root=live:CDLABEL=${udev_escape(product.name)}' ${BOOTDIR}/isolinux.cfg
|
|
|
|
%if exists("boot/memtest*"):
|
|
install boot/memtest* ${BOOTDIR}
|
|
append ${BOOTDIR}/isolinux.cfg "label memtest86"
|
|
append ${BOOTDIR}/isolinux.cfg " menu label ^Memory test"
|
|
append ${BOOTDIR}/isolinux.cfg " kernel memtest"
|
|
append ${BOOTDIR}/isolinux.cfg " append -"
|
|
%endif
|
|
|
|
%for kernel in kernels:
|
|
%if kernel.flavor:
|
|
installkernel images-xen ${kernel.path} ${KERNELDIR}/vmlinuz-${kernel.flavor}
|
|
installinitrd images-xen ${kernel.initrd.path} ${KERNELDIR}/initrd-${kernel.flavor}.img
|
|
%else:
|
|
installkernel images-${basearch} ${kernel.path} ${KERNELDIR}/vmlinuz
|
|
installinitrd images-${basearch} ${kernel.initrd.path} ${KERNELDIR}/initrd.img
|
|
%endif
|
|
%endfor
|
|
|
|
hardlink ${KERNELDIR}/vmlinuz ${BOOTDIR}
|
|
hardlink ${KERNELDIR}/initrd.img ${BOOTDIR}
|
|
%if basearch == 'x86_64':
|
|
treeinfo images-xen kernel ${KERNELDIR}/vmlinuz
|
|
treeinfo images-xen initrd ${KERNELDIR}/initrd.img
|
|
%endif
|
|
|
|
## WHeeeeeeee, EFI.
|
|
## We could remove the basearch restriction someday..
|
|
<% efiargs=""; efigraft=""; efihybrid="" %>
|
|
%if exists("boot/efi/EFI/redhat/grub.efi") and basearch != 'i386':
|
|
<%
|
|
efiarch = 'X64' if basearch=='x86_64' else 'IA32'
|
|
efiargs="-eltorito-alt-boot -e images/efiboot.img -no-emul-boot"
|
|
efigraft="EFI/BOOT={0}/EFI/BOOT images/efiboot.img={0}/images/efiboot.img".format(outroot)
|
|
efihybrid="-u"
|
|
%>
|
|
<%include file="efi.tmpl" args="configdir=configdir, KERNELDIR=KERNELDIR, efiarch=efiarch"/>
|
|
%endif
|
|
|
|
runcmd mkisofs -o ${outroot}/images/boot.iso \
|
|
-b ${BOOTDIR}/isolinux.bin -c ${BOOTDIR}/boot.cat \
|
|
-boot-load-size 4 -boot-info-table -no-emul-boot \
|
|
${efiargs} -R -J -V '${product.name}' -T -graft-points \
|
|
${BOOTDIR}=${outroot}/${BOOTDIR} \
|
|
${KERNELDIR}=${outroot}/${KERNELDIR} \
|
|
LiveOS/squashfs.img=${outroot}/images/install.img \
|
|
${efigraft}
|
|
runcmd isohybrid ${efihybrid} ${outroot}/images/boot.iso
|
|
treeinfo images-${basearch} boot.iso images/boot.iso
|