Add grub2 BIOS boot support to live iso template
This commit is contained in:
parent
46ff4359f9
commit
2e676d1293
@ -1,5 +0,0 @@
|
|||||||
|
|
||||||
splash.lss
|
|
||||||
|
|
||||||
- Press the 01<ENTER>07 key to begin the installation process.
|
|
||||||
|
|
32
80-rhel/live/config_files/x86/grub2-bios.cfg
Normal file
32
80-rhel/live/config_files/x86/grub2-bios.cfg
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
set default="1"
|
||||||
|
|
||||||
|
function load_video {
|
||||||
|
insmod all_video
|
||||||
|
}
|
||||||
|
|
||||||
|
load_video
|
||||||
|
set gfxpayload=keep
|
||||||
|
insmod gzio
|
||||||
|
insmod part_gpt
|
||||||
|
insmod ext2
|
||||||
|
|
||||||
|
set timeout=60
|
||||||
|
### END /etc/grub.d/00_header ###
|
||||||
|
|
||||||
|
search --no-floppy --set=root -l '@ISOLABEL@'
|
||||||
|
|
||||||
|
### BEGIN /etc/grub.d/10_linux ###
|
||||||
|
menuentry 'Start @PRODUCT@ @VERSION@' --class fedora --class gnu-linux --class gnu --class os {
|
||||||
|
linux @KERNELPATH@ @ROOT@ @EXTRA@ rd.live.image quiet rhgb
|
||||||
|
initrd @INITRDPATH@
|
||||||
|
}
|
||||||
|
menuentry 'Test this media & start @PRODUCT@ @VERSION@' --class fedora --class gnu-linux --class gnu --class os {
|
||||||
|
linux @KERNELPATH@ @ROOT@ @EXTRA@ rd.live.image rd.live.check quiet
|
||||||
|
initrd @INITRDPATH@
|
||||||
|
}
|
||||||
|
submenu 'Troubleshooting -->' {
|
||||||
|
menuentry 'Start @PRODUCT@ @VERSION@ in basic graphics mode' --class fedora --class gnu-linux --class gnu --class os {
|
||||||
|
linux @KERNELPATH@ @ROOT@ @EXTRA@ rd.live.image nomodeset quiet rhgb
|
||||||
|
initrd @INITRDPATH@
|
||||||
|
}
|
||||||
|
}
|
@ -1,100 +0,0 @@
|
|||||||
default vesamenu.c32
|
|
||||||
timeout 600
|
|
||||||
|
|
||||||
display boot.msg
|
|
||||||
|
|
||||||
# Clear the screen when exiting the menu, instead of leaving the menu displayed.
|
|
||||||
# For vesamenu, this means the graphical background is still displayed without
|
|
||||||
# the menu itself for as long as the screen remains in graphics mode.
|
|
||||||
menu clear
|
|
||||||
menu background splash.png
|
|
||||||
menu title @PRODUCT@ @VERSION@
|
|
||||||
menu vshift 8
|
|
||||||
menu rows 18
|
|
||||||
menu margin 8
|
|
||||||
#menu hidden
|
|
||||||
menu helpmsgrow 15
|
|
||||||
menu tabmsgrow 13
|
|
||||||
|
|
||||||
# Border Area
|
|
||||||
menu color border * #00000000 #00000000 none
|
|
||||||
|
|
||||||
# Selected item
|
|
||||||
menu color sel 0 #ffffffff #00000000 none
|
|
||||||
|
|
||||||
# Title bar
|
|
||||||
menu color title 0 #ff7ba3d0 #00000000 none
|
|
||||||
|
|
||||||
# Press [Tab] message
|
|
||||||
menu color tabmsg 0 #ff3a6496 #00000000 none
|
|
||||||
|
|
||||||
# Unselected menu item
|
|
||||||
menu color unsel 0 #84b8ffff #00000000 none
|
|
||||||
|
|
||||||
# Selected hotkey
|
|
||||||
menu color hotsel 0 #84b8ffff #00000000 none
|
|
||||||
|
|
||||||
# Unselected hotkey
|
|
||||||
menu color hotkey 0 #ffffffff #00000000 none
|
|
||||||
|
|
||||||
# Help text
|
|
||||||
menu color help 0 #ffffffff #00000000 none
|
|
||||||
|
|
||||||
# A scrollbar of some type? Not sure.
|
|
||||||
menu color scrollbar 0 #ffffffff #ff355594 none
|
|
||||||
|
|
||||||
# Timeout msg
|
|
||||||
menu color timeout 0 #ffffffff #00000000 none
|
|
||||||
menu color timeout_msg 0 #ffffffff #00000000 none
|
|
||||||
|
|
||||||
# Command prompt text
|
|
||||||
menu color cmdmark 0 #84b8ffff #00000000 none
|
|
||||||
menu color cmdline 0 #ffffffff #00000000 none
|
|
||||||
|
|
||||||
# Do not display the actual menu unless the user presses a key. All that is displayed is a timeout message.
|
|
||||||
|
|
||||||
menu tabmsg Press Tab for full configuration options on menu items.
|
|
||||||
|
|
||||||
menu separator # insert an empty line
|
|
||||||
menu separator # insert an empty line
|
|
||||||
|
|
||||||
label linux
|
|
||||||
menu label ^Start @PRODUCT@ @VERSION@
|
|
||||||
kernel vmlinuz
|
|
||||||
append initrd=initrd.img @ROOT@ @EXTRA@ rd.live.image quiet
|
|
||||||
|
|
||||||
label check
|
|
||||||
menu label Test this ^media & start @PRODUCT@ @VERSION@
|
|
||||||
menu default
|
|
||||||
kernel vmlinuz
|
|
||||||
append initrd=initrd.img @ROOT@ @EXTRA@ rd.live.image rd.live.check quiet
|
|
||||||
|
|
||||||
menu separator # insert an empty line
|
|
||||||
|
|
||||||
# utilities submenu
|
|
||||||
menu begin ^Troubleshooting
|
|
||||||
menu title Troubleshooting
|
|
||||||
|
|
||||||
label memtest
|
|
||||||
menu label Run a ^memory test
|
|
||||||
text help
|
|
||||||
If your system is having issues, a problem with your
|
|
||||||
system's memory may be the cause. Use this utility to
|
|
||||||
see if the memory is working correctly.
|
|
||||||
endtext
|
|
||||||
kernel memtest
|
|
||||||
|
|
||||||
menu separator # insert an empty line
|
|
||||||
|
|
||||||
label local
|
|
||||||
menu label Boot from ^local drive
|
|
||||||
localboot 0xffff
|
|
||||||
|
|
||||||
menu separator # insert an empty line
|
|
||||||
menu separator # insert an empty line
|
|
||||||
|
|
||||||
label returntomain
|
|
||||||
menu label Return to ^main menu
|
|
||||||
menu exit
|
|
||||||
|
|
||||||
menu end
|
|
@ -21,9 +21,6 @@ install boot/grub2/fonts/unicode.pf2 ${EFIBOOTDIR}/fonts/
|
|||||||
|
|
||||||
## actually make the EFI images
|
## actually make the EFI images
|
||||||
${make_efiboot("images/efiboot.img")}
|
${make_efiboot("images/efiboot.img")}
|
||||||
%if domacboot:
|
|
||||||
${make_efiboot("images/macboot.img", imgtype="apple")}
|
|
||||||
%endif
|
|
||||||
|
|
||||||
## This is kinda gross, but then... so's EFI.
|
## This is kinda gross, but then... so's EFI.
|
||||||
<%def name="make_efiboot(img, include_kernel=False, disk=False, imgtype='default')">
|
<%def name="make_efiboot(img, include_kernel=False, disk=False, imgtype='default')">
|
||||||
@ -32,7 +29,6 @@ ${make_efiboot("images/efiboot.img")}
|
|||||||
eficonf = "%s/grub.cfg" % (EFIBOOTDIR, )
|
eficonf = "%s/grub.cfg" % (EFIBOOTDIR, )
|
||||||
args = "--label=ANACONDA"
|
args = "--label=ANACONDA"
|
||||||
if disk: args += " --disk"
|
if disk: args += " --disk"
|
||||||
if imgtype == "apple": args += ' --apple --icon=%s --diskname=%s --product="%s %s"' % (APPLE_EFI_ICON, APPLE_EFI_DISKNAME, product.name, product.version)
|
|
||||||
%>
|
%>
|
||||||
%if include_kernel:
|
%if include_kernel:
|
||||||
copy ${KERNELDIR}/vmlinuz ${EFIBOOTDIR}
|
copy ${KERNELDIR}/vmlinuz ${EFIBOOTDIR}
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
configdir="tmp/config_files/x86"
|
configdir="tmp/config_files/x86"
|
||||||
PXEBOOTDIR="images/pxeboot"
|
PXEBOOTDIR="images/pxeboot"
|
||||||
KERNELDIR=PXEBOOTDIR
|
KERNELDIR=PXEBOOTDIR
|
||||||
|
GRUB2DIR="boot/grub2"
|
||||||
LIVEDIR="LiveOS"
|
LIVEDIR="LiveOS"
|
||||||
LORAXDIR="usr/share/lorax/"
|
LORAXDIR="usr/share/lorax/"
|
||||||
|
|
||||||
@ -44,6 +45,17 @@ mkdir ${KERNELDIR}
|
|||||||
treeinfo images-xen initrd ${KERNELDIR}/initrd.img
|
treeinfo images-xen initrd ${KERNELDIR}/initrd.img
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
## configure grub2 config file
|
||||||
|
mkdir ${GRUB2DIR}
|
||||||
|
install ${configdir}/grub2-bios.cfg ${GRUB2DIR}/grub.cfg
|
||||||
|
replace @VERSION@ ${product.version} ${GRUB2DIR}/grub.cfg
|
||||||
|
replace @PRODUCT@ '${product.name}' ${GRUB2DIR}/grub.cfg
|
||||||
|
replace @KERNELPATH@ /${KERNELDIR}/vmlinuz ${GRUB2DIR}/grub.cfg
|
||||||
|
replace @INITRDPATH@ /${KERNELDIR}/initrd.img ${GRUB2DIR}/grub.cfg
|
||||||
|
replace @ROOT@ 'root=live:CDLABEL=${isolabel|udev}' ${GRUB2DIR}/grub.cfg
|
||||||
|
replace @EXTRA@ '${extra_boot_args}' ${GRUB2DIR}/grub.cfg
|
||||||
|
|
||||||
|
|
||||||
## WHeeeeeeee, EFI.
|
## WHeeeeeeee, EFI.
|
||||||
<% efiargs=""; efigraft=""; efiarch32=None; efiarch64=None %>
|
<% efiargs=""; efigraft=""; efiarch32=None; efiarch64=None %>
|
||||||
%if exists("boot/efi/EFI/*/gcdia32.efi"):
|
%if exists("boot/efi/EFI/*/gcdia32.efi"):
|
||||||
@ -53,19 +65,6 @@ mkdir ${KERNELDIR}
|
|||||||
<% efiarch64 = 'X64' %>
|
<% efiarch64 = 'X64' %>
|
||||||
%endif
|
%endif
|
||||||
%if (efiarch32 or efiarch64) and basearch != 'i386':
|
%if (efiarch32 or efiarch64) and basearch != 'i386':
|
||||||
<%
|
|
||||||
efigraft="EFI/BOOT={0}/EFI/BOOT".format(outroot)
|
|
||||||
images = [("images/efiboot.img", "-isohybrid-gpt-basdat")]
|
|
||||||
if domacboot:
|
|
||||||
images.append(("images/macboot.img", "-isohybrid-gpt-hfsplus"))
|
|
||||||
%>
|
|
||||||
%for img, hybrid in images:
|
|
||||||
<%
|
|
||||||
efiargs += " --efi-boot {0} {1}".format(img, hybrid)
|
|
||||||
efigraft += " {0}={1}/{0}".format(img,outroot)
|
|
||||||
%>
|
|
||||||
treeinfo images-${basearch} ${img|basename} ${img}
|
|
||||||
%endfor
|
|
||||||
<%include file="efi.tmpl" args="configdir=configdir, KERNELDIR=KERNELDIR, efiarch32=efiarch32, efiarch64=efiarch64, isolabel=isolabel, extra_boot_args=extra_boot_args"/>
|
<%include file="efi.tmpl" args="configdir=configdir, KERNELDIR=KERNELDIR, efiarch32=efiarch32, efiarch64=efiarch64, isolabel=isolabel, extra_boot_args=extra_boot_args"/>
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
@ -95,11 +94,32 @@ mkdir ${KERNELDIR}
|
|||||||
install ${f} ${LIVEDIR}/${f|basename}
|
install ${f} ${LIVEDIR}/${f|basename}
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
## Make images/eltoritio.img
|
||||||
|
runcmd grub2-mkimage -O i386-pc-eltorito -d ${inroot}/usr/lib/grub/i386-pc \
|
||||||
|
-o ${outroot}/images/eltorito.img \
|
||||||
|
-p /${GRUB2DIR} \
|
||||||
|
iso9660 biosdisk
|
||||||
|
treeinfo images-${basearch} eltorito.img images/eltorito.img
|
||||||
|
|
||||||
## make boot.iso
|
## make boot.iso
|
||||||
runcmd xorrisofs ${isoargs} -o ${outroot}/images/boot.iso \
|
runcmd xorrisofs ${isoargs} -o ${outroot}/images/boot.iso \
|
||||||
${efiargs} -R -J -V '${isolabel}' \
|
-R -J -V '${isolabel}' \
|
||||||
|
--grub2-mbr ${inroot}/usr/lib/grub/i386-pc/boot_hybrid.img \
|
||||||
|
-partition_offset 16 \
|
||||||
|
-appended_part_as_gpt \
|
||||||
|
-append_partition 2 C12A7328-F81F-11D2-BA4B-00A0C93EC93B ${outroot}/images/efiboot.img \
|
||||||
|
-iso_mbr_part_type EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 \
|
||||||
|
-c boot.cat --boot-catalog-hide \
|
||||||
|
-b images/eltorito.img \
|
||||||
|
-no-emul-boot -boot-load-size 4 -boot-info-table --grub2-boot-info \
|
||||||
|
-eltorito-alt-boot \
|
||||||
|
-e '--interval:appended_partition_2:all::' -no-emul-boot \
|
||||||
-graft-points \
|
-graft-points \
|
||||||
${KERNELDIR}=${outroot}/${KERNELDIR} \
|
${KERNELDIR}=${outroot}/${KERNELDIR} \
|
||||||
${LIVEDIR}=${outroot}/${LIVEDIR} \
|
${LIVEDIR}=${outroot}/${LIVEDIR} \
|
||||||
${efigraft} ${filegraft}
|
${filegraft} \
|
||||||
|
${GRUB2DIR}=${outroot}/${GRUB2DIR} \
|
||||||
|
${GRUB2DIR}/i386-pc=${inroot}/usr/lib/grub/i386-pc \
|
||||||
|
images/eltorito.img=${outroot}/images/eltorito.img \
|
||||||
|
EFI/BOOT=${outroot}/EFI/BOOT
|
||||||
treeinfo images-${basearch} boot.iso images/boot.iso
|
treeinfo images-${basearch} boot.iso images/boot.iso
|
||||||
|
Loading…
Reference in New Issue
Block a user