f640a2faab
New images find their root device by looking at the CDLABEL. Since pungi is building ISO images separately from lorax, if it uses a different ISO Volume Label we'll end up with unbootable images. This changes the volume labels to match what pungi uses, so both should boot OK.
74 lines
2.8 KiB
Cheetah
74 lines
2.8 KiB
Cheetah
<%page args="kernels, runtime_img, basearch, outroot, product, isolabel"/>
|
|
<%
|
|
configdir="tmp/config_files"
|
|
SYSLINUXDIR="usr/share/syslinux"
|
|
PXEBOOTDIR="images/pxeboot"
|
|
BOOTDIR="isolinux"
|
|
KERNELDIR=PXEBOOTDIR
|
|
LIVEDIR="LiveOS"
|
|
%>
|
|
|
|
mkdir ${LIVEDIR}
|
|
install ${runtime_img} ${LIVEDIR}/squashfs.img
|
|
|
|
mkdir ${BOOTDIR} ${KERNELDIR}
|
|
install ${SYSLINUXDIR}/isolinux.bin ${BOOTDIR}
|
|
install ${configdir}/syslinux.cfg ${BOOTDIR}/isolinux.cfg
|
|
install usr/share/anaconda/boot/syslinux-splash.png ${BOOTDIR}/splash.png
|
|
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=${isolabel|udev}' ${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 '${isolabel}' -T -graft-points \
|
|
${BOOTDIR}=${outroot}/${BOOTDIR} \
|
|
${KERNELDIR}=${outroot}/${KERNELDIR} \
|
|
${LIVEDIR}=${outroot}/${LIVEDIR} \
|
|
${efigraft}
|
|
runcmd isohybrid ${efihybrid} ${outroot}/images/boot.iso
|
|
treeinfo images-${basearch} boot.iso images/boot.iso
|