Add extra boot args to the livemedia-creator iso templates
This adds a new livemedia-creator argument, --extra-boot-args, which can be used to add arguments to the kernel command-line in the templates. Resolves: rhbz#1689314
This commit is contained in:
parent
7c1f29af5a
commit
c15a976832
@ -1,4 +1,4 @@
|
|||||||
<%page args="kernels, runtime_img, basearch, inroot, outroot, product, isolabel"/>
|
<%page args="kernels, runtime_img, basearch, inroot, outroot, product, isolabel, extra_boot_args"/>
|
||||||
<%
|
<%
|
||||||
configdir="tmp/config_files/aarch64"
|
configdir="tmp/config_files/aarch64"
|
||||||
PXEBOOTDIR="images/pxeboot"
|
PXEBOOTDIR="images/pxeboot"
|
||||||
@ -54,7 +54,7 @@ mkdir ${KERNELDIR}
|
|||||||
%>
|
%>
|
||||||
treeinfo images-${basearch} ${img|basename} ${img}
|
treeinfo images-${basearch} ${img|basename} ${img}
|
||||||
%endfor
|
%endfor
|
||||||
<%include file="efi.tmpl" args="configdir=configdir, KERNELDIR=KERNELDIR, efiarch32=None, efiarch64=efiarch, isolabel=isolabel"/>
|
<%include file="efi.tmpl" args="configdir=configdir, KERNELDIR=KERNELDIR, efiarch32=None, efiarch64=efiarch, isolabel=isolabel, extra_boot_args=extra_boot_args"/>
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
# Create optional product.img and updates.img
|
# Create optional product.img and updates.img
|
||||||
|
@ -27,16 +27,16 @@ search --no-floppy --set=root -l '@ISOLABEL@'
|
|||||||
|
|
||||||
### BEGIN /etc/grub.d/10_linux ###
|
### BEGIN /etc/grub.d/10_linux ###
|
||||||
menuentry 'Start @PRODUCT@ @VERSION@' --class red --class gnu-linux --class gnu --class os {
|
menuentry 'Start @PRODUCT@ @VERSION@' --class red --class gnu-linux --class gnu --class os {
|
||||||
linux @KERNELPATH@ @ROOT@ rd.live.image quiet
|
linux @KERNELPATH@ @ROOT@ @EXTRA@ rd.live.image quiet
|
||||||
initrd @INITRDPATH@
|
initrd @INITRDPATH@
|
||||||
}
|
}
|
||||||
menuentry 'Test this media & start @PRODUCT@ @VERSION@' --class red --class gnu-linux --class gnu --class os {
|
menuentry 'Test this media & start @PRODUCT@ @VERSION@' --class red --class gnu-linux --class gnu --class os {
|
||||||
linux @KERNELPATH@ @ROOT@ rd.live.image rd.live.check quiet
|
linux @KERNELPATH@ @ROOT@ @EXTRA@ rd.live.image rd.live.check quiet
|
||||||
initrd @INITRDPATH@
|
initrd @INITRDPATH@
|
||||||
}
|
}
|
||||||
submenu 'Troubleshooting -->' {
|
submenu 'Troubleshooting -->' {
|
||||||
menuentry 'Install @PRODUCT@ @VERSION@ in basic graphics mode' --class red --class gnu-linux --class gnu --class os {
|
menuentry 'Install @PRODUCT@ @VERSION@ in basic graphics mode' --class red --class gnu-linux --class gnu --class os {
|
||||||
linux @KERNELPATH@ @ROOT@ rd.live.image nomodeset quiet
|
linux @KERNELPATH@ @ROOT@ @EXTRA@ rd.live.image nomodeset quiet
|
||||||
initrd @INITRDPATH@
|
initrd @INITRDPATH@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,12 +6,12 @@ echo -e "\nWelcome to the @PRODUCT@ @VERSION@ installer!\n\n"
|
|||||||
for BITS in 32 64; do
|
for BITS in 32 64; do
|
||||||
if [ -d "/ppc/ppc${BITS}" ]; then
|
if [ -d "/ppc/ppc${BITS}" ]; then
|
||||||
menuentry "Start @PRODUCT@ @VERSION@ (${BITS}-bit kernel)" $BITS --class fedora --class gnu-linux --class gnu --class os {
|
menuentry "Start @PRODUCT@ @VERSION@ (${BITS}-bit kernel)" $BITS --class fedora --class gnu-linux --class gnu --class os {
|
||||||
linux /ppc/ppc${2}/vmlinuz @ROOT@ ro rd.live.image quiet
|
linux /ppc/ppc${2}/vmlinuz @ROOT@ @EXTRA@ ro rd.live.image quiet
|
||||||
initrd /ppc/ppc${2}/initrd.img
|
initrd /ppc/ppc${2}/initrd.img
|
||||||
}
|
}
|
||||||
|
|
||||||
menuentry "Test this media & start @PRODUCT@ @VERSION@ (${BITS}-bit kernel)" $BITS --class fedora --class gnu-linux --class gnu --class os {
|
menuentry "Test this media & start @PRODUCT@ @VERSION@ (${BITS}-bit kernel)" $BITS --class fedora --class gnu-linux --class gnu --class os {
|
||||||
linux /ppc/ppc${2}/vmlinuz @ROOT@ rd.live.image rd.live.check ro quiet
|
linux /ppc/ppc${2}/vmlinuz @ROOT@ @EXTRA@ rd.live.image rd.live.check ro quiet
|
||||||
initrd /ppc/ppc${2}/initrd.img
|
initrd /ppc/ppc${2}/initrd.img
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1 +1 @@
|
|||||||
ro ramdisk_size=40000 cio_ignore=all,!condev
|
ro ramdisk_size=40000 cio_ignore=all,!condev @EXTRA@
|
||||||
|
@ -5,9 +5,9 @@ timeout 60
|
|||||||
hiddenmenu
|
hiddenmenu
|
||||||
title Start @PRODUCT@ @VERSION@
|
title Start @PRODUCT@ @VERSION@
|
||||||
findiso
|
findiso
|
||||||
kernel @KERNELPATH@ @ROOT@ rd.live.image quiet
|
kernel @KERNELPATH@ @ROOT@ @EXTRA@ rd.live.image quiet
|
||||||
initrd @INITRDPATH@
|
initrd @INITRDPATH@
|
||||||
title Test this media & start @PRODUCT@ @VERSION@
|
title Test this media & start @PRODUCT@ @VERSION@
|
||||||
findiso
|
findiso
|
||||||
kernel @KERNELPATH@ @ROOT@ rd.live.image rd.live.check quiet
|
kernel @KERNELPATH@ @ROOT@ @EXTRA@ rd.live.image rd.live.check quiet
|
||||||
initrd @INITRDPATH@
|
initrd @INITRDPATH@
|
||||||
|
@ -21,20 +21,20 @@ search --no-floppy --set=root -l '@ISOLABEL@'
|
|||||||
|
|
||||||
### BEGIN /etc/grub.d/10_linux ###
|
### BEGIN /etc/grub.d/10_linux ###
|
||||||
menuentry 'Start @PRODUCT@ @VERSION@' --class fedora --class gnu-linux --class gnu --class os {
|
menuentry 'Start @PRODUCT@ @VERSION@' --class fedora --class gnu-linux --class gnu --class os {
|
||||||
linuxefi @KERNELPATH@ @ROOT@ rd.live.image quiet
|
linuxefi @KERNELPATH@ @ROOT@ @EXTRA@ rd.live.image quiet
|
||||||
initrdefi @INITRDPATH@
|
initrdefi @INITRDPATH@
|
||||||
}
|
}
|
||||||
menuentry 'Test this media & start @PRODUCT@ @VERSION@' --class fedora --class gnu-linux --class gnu --class os {
|
menuentry 'Test this media & start @PRODUCT@ @VERSION@' --class fedora --class gnu-linux --class gnu --class os {
|
||||||
linuxefi @KERNELPATH@ @ROOT@ rd.live.image rd.live.check quiet
|
linuxefi @KERNELPATH@ @ROOT@ @EXTRA@ rd.live.image rd.live.check quiet
|
||||||
initrdefi @INITRDPATH@
|
initrdefi @INITRDPATH@
|
||||||
}
|
}
|
||||||
submenu 'Troubleshooting -->' {
|
submenu 'Troubleshooting -->' {
|
||||||
menuentry 'Start @PRODUCT@ @VERSION@ in basic graphics mode' --class fedora --class gnu-linux --class gnu --class os {
|
menuentry 'Start @PRODUCT@ @VERSION@ in basic graphics mode' --class fedora --class gnu-linux --class gnu --class os {
|
||||||
linuxefi @KERNELPATH@ @ROOT@ rd.live.image xdriver=vesa nomodeset quiet
|
linuxefi @KERNELPATH@ @ROOT@ @EXTRA@ rd.live.image xdriver=vesa nomodeset quiet
|
||||||
initrdefi @INITRDPATH@
|
initrdefi @INITRDPATH@
|
||||||
}
|
}
|
||||||
menuentry 'Rescue a @PRODUCT@ system' --class fedora --class gnu-linux --class gnu --class os {
|
menuentry 'Rescue a @PRODUCT@ system' --class fedora --class gnu-linux --class gnu --class os {
|
||||||
linuxefi @KERNELPATH@ @ROOT@ rd.live.image rescue quiet
|
linuxefi @KERNELPATH@ @ROOT@ @EXTRA@ rd.live.image rescue quiet
|
||||||
initrdefi @INITRDPATH@
|
initrdefi @INITRDPATH@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -61,13 +61,13 @@ menu separator # insert an empty line
|
|||||||
label linux
|
label linux
|
||||||
menu label ^Start @PRODUCT@ @VERSION@
|
menu label ^Start @PRODUCT@ @VERSION@
|
||||||
kernel vmlinuz
|
kernel vmlinuz
|
||||||
append initrd=initrd.img @ROOT@ rd.live.image quiet
|
append initrd=initrd.img @ROOT@ @EXTRA@ rd.live.image quiet
|
||||||
|
|
||||||
label check
|
label check
|
||||||
menu label Test this ^media & start @PRODUCT@ @VERSION@
|
menu label Test this ^media & start @PRODUCT@ @VERSION@
|
||||||
menu default
|
menu default
|
||||||
kernel vmlinuz
|
kernel vmlinuz
|
||||||
append initrd=initrd.img @ROOT@ rd.live.image rd.live.check quiet
|
append initrd=initrd.img @ROOT@ @EXTRA@ rd.live.image rd.live.check quiet
|
||||||
|
|
||||||
menu separator # insert an empty line
|
menu separator # insert an empty line
|
||||||
|
|
||||||
@ -83,7 +83,7 @@ label vesa
|
|||||||
@PRODUCT@ @VERSION@.
|
@PRODUCT@ @VERSION@.
|
||||||
endtext
|
endtext
|
||||||
kernel vmlinuz
|
kernel vmlinuz
|
||||||
append initrd=initrd.img @ROOT@ rd.live.image xdriver=vesa nomodeset quiet
|
append initrd=initrd.img @ROOT@ @EXTRA@ rd.live.image xdriver=vesa nomodeset quiet
|
||||||
|
|
||||||
label rescue
|
label rescue
|
||||||
menu indent count 5
|
menu indent count 5
|
||||||
@ -93,7 +93,7 @@ label rescue
|
|||||||
and edit config files to try to get it booting again.
|
and edit config files to try to get it booting again.
|
||||||
endtext
|
endtext
|
||||||
kernel vmlinuz
|
kernel vmlinuz
|
||||||
append initrd=initrd.img @ROOT@ rd.live.image rescue quiet
|
append initrd=initrd.img @ROOT@ @EXTRA@ rd.live.image rescue quiet
|
||||||
|
|
||||||
label memtest
|
label memtest
|
||||||
menu label Run a ^memory test
|
menu label Run a ^memory test
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<%page args="configdir, KERNELDIR, efiarch32, efiarch64, isolabel"/>
|
<%page args="configdir, KERNELDIR, efiarch32, efiarch64, isolabel, extra_boot_args"/>
|
||||||
<%
|
<%
|
||||||
from string import lower
|
from string import lower
|
||||||
EFIBOOTDIR="EFI/BOOT"
|
EFIBOOTDIR="EFI/BOOT"
|
||||||
@ -53,6 +53,7 @@ ${make_efiboot("images/efiboot.img")}
|
|||||||
replace @KERNELPATH@ /${kdir}/vmlinuz ${eficonf}
|
replace @KERNELPATH@ /${kdir}/vmlinuz ${eficonf}
|
||||||
replace @INITRDPATH@ /${kdir}/initrd.img ${eficonf}
|
replace @INITRDPATH@ /${kdir}/initrd.img ${eficonf}
|
||||||
replace @ISOLABEL@ '${isolabel}' ${eficonf}
|
replace @ISOLABEL@ '${isolabel}' ${eficonf}
|
||||||
|
replace @EXTRA@ '${extra_boot_args}' ${eficonf}
|
||||||
%if disk:
|
%if disk:
|
||||||
replace @ROOT@ root=live:LABEL=ANACONDA ${eficonf}
|
replace @ROOT@ root=live:LABEL=ANACONDA ${eficonf}
|
||||||
%else:
|
%else:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<%page args="kernels, runtime_img, basearch, libdir, inroot, outroot, product, isolabel"/>
|
<%page args="kernels, runtime_img, basearch, libdir, inroot, outroot, product, isolabel, extra_boot_args"/>
|
||||||
<%
|
<%
|
||||||
configdir="tmp/config_files/ppc"
|
configdir="tmp/config_files/ppc"
|
||||||
BOOTDIR="ppc"
|
BOOTDIR="ppc"
|
||||||
@ -46,6 +46,7 @@ install ${configdir}/grub.cfg.in ${GRUBDIR}/grub.cfg
|
|||||||
replace @PRODUCT@ '${product.name}' ${GRUBDIR}/grub.cfg
|
replace @PRODUCT@ '${product.name}' ${GRUBDIR}/grub.cfg
|
||||||
replace @VERSION@ ${product.version} ${GRUBDIR}/grub.cfg
|
replace @VERSION@ ${product.version} ${GRUBDIR}/grub.cfg
|
||||||
replace @ROOT@ 'root=live:CDLABEL=${isolabel|udev}' ${GRUBDIR}/grub.cfg
|
replace @ROOT@ 'root=live:CDLABEL=${isolabel|udev}' ${GRUBDIR}/grub.cfg
|
||||||
|
replace @EXTRA@ '${extra_boot_args}' ${GRUBDIR}/grub.cfg
|
||||||
|
|
||||||
## copy mapping and magic files needed for isos
|
## copy mapping and magic files needed for isos
|
||||||
install ${configdir}/mapping ${BOOTDIR}
|
install ${configdir}/mapping ${BOOTDIR}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<%page args="kernels, runtime_img, runtime_base, basearch, outroot"/>
|
<%page args="kernels, runtime_img, runtime_base, basearch, outroot, extra_boot_args"/>
|
||||||
<%
|
<%
|
||||||
configdir="tmp/config_files/s390"
|
configdir="tmp/config_files/s390"
|
||||||
BOOTDIR="images"
|
BOOTDIR="images"
|
||||||
@ -21,6 +21,7 @@ install ${configdir}/generic.ins .
|
|||||||
|
|
||||||
## configure bootloader
|
## configure bootloader
|
||||||
replace @INITRD_LOAD_ADDRESS@ ${INITRD_ADDRESS} generic.ins
|
replace @INITRD_LOAD_ADDRESS@ ${INITRD_ADDRESS} generic.ins
|
||||||
|
replace @EXTRA@ ${extra_boot_args} generic.prm
|
||||||
|
|
||||||
## install kernel
|
## install kernel
|
||||||
installkernel images-${basearch} ${kernel.path} ${KERNELDIR}/kernel.img
|
installkernel images-${basearch} ${kernel.path} ${KERNELDIR}/kernel.img
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<%page args="kernels, runtime_img, basearch, outroot, product, isolabel"/>
|
<%page args="kernels, runtime_img, basearch, outroot, product, isolabel, extra_boot_args"/>
|
||||||
<%
|
<%
|
||||||
configdir="tmp/config_files/x86"
|
configdir="tmp/config_files/x86"
|
||||||
SYSLINUXDIR="usr/share/syslinux"
|
SYSLINUXDIR="usr/share/syslinux"
|
||||||
@ -27,6 +27,7 @@ install boot/memtest* ${BOOTDIR}/memtest
|
|||||||
replace @VERSION@ ${product.version} ${BOOTDIR}/grub.conf ${BOOTDIR}/isolinux.cfg ${BOOTDIR}/*.msg
|
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 @PRODUCT@ '${product.name}' ${BOOTDIR}/grub.conf ${BOOTDIR}/isolinux.cfg ${BOOTDIR}/*.msg
|
||||||
replace @ROOT@ 'root=live:CDLABEL=${isolabel|udev}' ${BOOTDIR}/isolinux.cfg
|
replace @ROOT@ 'root=live:CDLABEL=${isolabel|udev}' ${BOOTDIR}/isolinux.cfg
|
||||||
|
replace @EXTRA@ '${extra_boot_args}' ${BOOTDIR}/isolinux.cfg
|
||||||
|
|
||||||
## install kernels
|
## install kernels
|
||||||
mkdir ${KERNELDIR}
|
mkdir ${KERNELDIR}
|
||||||
@ -66,7 +67,7 @@ hardlink ${KERNELDIR}/initrd.img ${BOOTDIR}
|
|||||||
efigraft += " {0}={1}/{0}".format(img,outroot)
|
efigraft += " {0}={1}/{0}".format(img,outroot)
|
||||||
efihybrid = "--uefi --mac" if domacboot else "--uefi"
|
efihybrid = "--uefi --mac" if domacboot else "--uefi"
|
||||||
%>
|
%>
|
||||||
<%include file="efi.tmpl" args="configdir=configdir, KERNELDIR=KERNELDIR, efiarch32=efiarch32, efiarch64=efiarch64, isolabel=isolabel"/>
|
<%include file="efi.tmpl" args="configdir=configdir, KERNELDIR=KERNELDIR, efiarch32=efiarch32, efiarch64=efiarch64, isolabel=isolabel, extra_boot_args=extra_boot_args"/>
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
# Create optional product.img and updates.img
|
# Create optional product.img and updates.img
|
||||||
|
@ -341,7 +341,8 @@ def make_livecd(opts, mount_dir, work_dir):
|
|||||||
tb = TreeBuilder(product=product, arch=arch, domacboot=opts.domacboot,
|
tb = TreeBuilder(product=product, arch=arch, domacboot=opts.domacboot,
|
||||||
inroot=mount_dir, outroot=work_dir,
|
inroot=mount_dir, outroot=work_dir,
|
||||||
runtime=RUNTIME, isolabel=isolabel,
|
runtime=RUNTIME, isolabel=isolabel,
|
||||||
templatedir=joinpaths(opts.lorax_templates,"live/"))
|
templatedir=joinpaths(opts.lorax_templates,"live/"),
|
||||||
|
extra_boot_args=opts.extra_boot_args)
|
||||||
log.info( "Rebuilding initrds" )
|
log.info( "Rebuilding initrds" )
|
||||||
if not opts.dracut_args:
|
if not opts.dracut_args:
|
||||||
dracut_args = DRACUT_DEFAULT
|
dracut_args = DRACUT_DEFAULT
|
||||||
|
@ -173,7 +173,8 @@ class RuntimeBuilder(object):
|
|||||||
class TreeBuilder(object):
|
class TreeBuilder(object):
|
||||||
'''Builds the arch-specific boot images.
|
'''Builds the arch-specific boot images.
|
||||||
inroot should be the installtree root (the newly-built runtime dir)'''
|
inroot should be the installtree root (the newly-built runtime dir)'''
|
||||||
def __init__(self, product, arch, inroot, outroot, runtime, isolabel, domacboot=False, doupgrade=True, templatedir=None, add_templates=None, add_template_vars=None, workdir=None):
|
def __init__(self, product, arch, inroot, outroot, runtime, isolabel, domacboot=False, doupgrade=True,
|
||||||
|
templatedir=None, add_templates=None, add_template_vars=None, workdir=None, extra_boot_args=""):
|
||||||
|
|
||||||
# NOTE: if you pass an arg named "runtime" to a mako template it'll
|
# NOTE: if you pass an arg named "runtime" to a mako template it'll
|
||||||
# clobber some mako internal variables - hence "runtime_img".
|
# clobber some mako internal variables - hence "runtime_img".
|
||||||
@ -182,7 +183,7 @@ class TreeBuilder(object):
|
|||||||
inroot=inroot, outroot=outroot,
|
inroot=inroot, outroot=outroot,
|
||||||
basearch=arch.basearch, libdir=arch.libdir,
|
basearch=arch.basearch, libdir=arch.libdir,
|
||||||
isolabel=isolabel, udev=udev_escape, domacboot=domacboot, doupgrade=doupgrade,
|
isolabel=isolabel, udev=udev_escape, domacboot=domacboot, doupgrade=doupgrade,
|
||||||
workdir=workdir)
|
workdir=workdir, extra_boot_args=extra_boot_args)
|
||||||
self._runner = LoraxTemplateRunner(inroot, outroot, templatedir=templatedir)
|
self._runner = LoraxTemplateRunner(inroot, outroot, templatedir=templatedir)
|
||||||
self._runner.defaults = self.vars
|
self._runner.defaults = self.vars
|
||||||
self.add_templates = add_templates or []
|
self.add_templates = add_templates or []
|
||||||
|
@ -114,6 +114,9 @@ def lorax_parser():
|
|||||||
parser.add_argument( "--nomacboot", action="store_false", default=False,
|
parser.add_argument( "--nomacboot", action="store_false", default=False,
|
||||||
dest="domacboot")
|
dest="domacboot")
|
||||||
|
|
||||||
|
parser.add_argument("--extra-boot-args", default="", dest="extra_boot_args",
|
||||||
|
help="Extra arguments to add to the bootloader kernel cmdline in the templates")
|
||||||
|
|
||||||
image_group = parser.add_argument_group("disk/fs image arguments")
|
image_group = parser.add_argument_group("disk/fs image arguments")
|
||||||
image_group.add_argument( "--disk-image", type=os.path.abspath,
|
image_group.add_argument( "--disk-image", type=os.path.abspath,
|
||||||
help="Path to disk image to use for creating final image" )
|
help="Path to disk image to use for creating final image" )
|
||||||
|
Loading…
Reference in New Issue
Block a user