Skip to content

Commit

Permalink
pkg/boot/grub: Add test data for multiboot2 and module2 GRUB keywords
Browse files Browse the repository at this point in the history
It adds the test data for the grub `multiboot2` and `module2` keywords.
The data is generated from CentOS 8 Stream with GRUB_ENABLE_BLSCFG set
to true and TBOOT installed.

Signed-off-by: Shelly Chang <[email protected]>
  • Loading branch information
ShellyChang110 authored and rminnich committed May 3, 2023
1 parent 9cea162 commit 9954df7
Show file tree
Hide file tree
Showing 13 changed files with 311 additions and 0 deletions.
47 changes: 47 additions & 0 deletions pkg/boot/grub/testdata_new/CentOS_8_Stream_x86_64_blscfg_sda1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
[
{
"cmdline": "root=UUID=d0be5cb9-622d-42d5-a531-674aaa120309 ro crashkernel=auto rhgb quiet console=ttyS1,57600n8 ",
"image_type": "linux",
"initrd": {
"name": "testdata_new/CentOS_8_Stream_x86_64_blscfg_sda1/boot/initramfs-5.18.0.img"
},
"kernel": {
"name": "testdata_new/CentOS_8_Stream_x86_64_blscfg_sda1/boot/vmlinuz-5.18.0"
},
"name": "CentOS Linux (5.18.0) 8 5.18.0",
"rank": "1"
},
{
"cmdline": "root=UUID=d0be5cb9-622d-42d5-a531-674aaa120309 ro crashkernel=auto rhgb quiet console=ttyS1,57600n8",
"image_type": "linux",
"initrd": {
"name": "testdata_new/CentOS_8_Stream_x86_64_blscfg_sda1/boot/initramfs-0-rescue-9af7b02ac08149d985841c07c8ff366e.img"
},
"kernel": {
"name": "testdata_new/CentOS_8_Stream_x86_64_blscfg_sda1/boot/vmlinuz-0-rescue-9af7b02ac08149d985841c07c8ff366e"
},
"name": "CentOS Linux (0-rescue-9af7b02ac08149d985841c07c8ff366e) 8 0-rescue-9af7b02ac08149d985841c07c8ff366e",
"rank": "1"
},
{
"cmdline": "logging=serial,memory serial=57600,8n1,0x2f8 min_ram=0x2000000",
"image_type": "multiboot",
"kernel": {
"url": "file:///testdata_new/CentOS_8_Stream_x86_64_blscfg_sda1/boot/tboot.gz"
},
"modules": [
{
"cmdline": "/boot/vmlinuz-5.18.0 root=UUID=d0be5cb9-622d-42d5-a531-674aaa120309 ro crashkernel=auto rhgb quiet console=ttyS1,57600n8 intel_iommu=on",
"name": "/boot/vmlinuz-5.18.0",
"url": "file:///testdata_new/CentOS_8_Stream_x86_64_blscfg_sda1/boot/vmlinuz-5.18.0"
},
{
"cmdline": "/boot/initramfs-5.18.0.img",
"name": "/boot/initramfs-5.18.0.img",
"url": "file:///testdata_new/CentOS_8_Stream_x86_64_blscfg_sda1/boot/initramfs-5.18.0.img"
}
],
"name": "CentOS Linux GNU/Linux, with tboot 1.10.2 and Linux 5.18.0",
"rank": "0"
}
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,235 @@
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub2-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
set pager=1

if [ -f ${config_directory}/grubenv ]; then
load_env -f ${config_directory}/grubenv
elif [ -s $prefix/grubenv ]; then
load_env
fi
if [ "${next_entry}" ] ; then
set default="${next_entry}"
set next_entry=
save_env next_entry
set boot_once=true
else
set default="${saved_entry}"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
else
menuentry_id_option=""
fi

export menuentry_id_option

if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi

function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}

function load_video {
if [ x$feature_all_video_module = xy ]; then
insmod all_video
else
insmod efi_gop
insmod efi_uga
insmod ieee1275_fb
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
fi
}

terminal_output console
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=menu
set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
set timeout=5
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/00_tuned ###
set tuned_params=""
set tuned_initrd=""
### END /etc/grub.d/00_tuned ###

### BEGIN /etc/grub.d/01_users ###
if [ -f ${prefix}/user.cfg ]; then
source ${prefix}/user.cfg
if [ -n "${GRUB2_PASSWORD}" ]; then
set superusers="root"
export superusers
password_pbkdf2 root ${GRUB2_PASSWORD}
fi
fi
### END /etc/grub.d/01_users ###

### BEGIN /etc/grub.d/08_fallback_counting ###
insmod increment
# Check if boot_counter exists and boot_success=0 to activate this behaviour.
if [ -n "${boot_counter}" -a "${boot_success}" = "0" ]; then
# if countdown has ended, choose to boot rollback deployment,
# i.e. default=1 on OSTree-based systems.
if [ "${boot_counter}" = "0" -o "${boot_counter}" = "-1" ]; then
set default=1
set boot_counter=-1
# otherwise decrement boot_counter
else
decrement boot_counter
fi
save_env boot_counter
fi
### END /etc/grub.d/08_fallback_counting ###

### BEGIN /etc/grub.d/10_linux ###
insmod part_gpt
insmod ext2
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root d0be5cb9-622d-42d5-a531-674aaa120309
else
search --no-floppy --fs-uuid --set=root d0be5cb9-622d-42d5-a531-674aaa120309
fi
insmod part_gpt
insmod ext2
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=boot d0be5cb9-622d-42d5-a531-674aaa120309
else
search --no-floppy --fs-uuid --set=boot d0be5cb9-622d-42d5-a531-674aaa120309
fi

# This section was generated by a script. Do not modify the generated file - all changes
# will be lost the next time file is regenerated. Instead edit the BootLoaderSpec files.
#
# The blscfg command parses the BootLoaderSpec files stored in /boot/loader/entries and
# populates the boot menu. Please refer to the Boot Loader Specification documentation
# for the files format: https://www.freedesktop.org/wiki/Specifications/BootLoaderSpec/.

# The kernelopts variable should be defined in the grubenv file. But to ensure that menu
# entries populated from BootLoaderSpec files that use this variable work correctly even
# without a grubenv file, define a fallback kernelopts variable if this has not been set.
#
# The kernelopts variable in the grubenv file can be modified using the grubby tool or by
# executing the grub2-mkconfig tool. For the latter, the values of the GRUB_CMDLINE_LINUX
# and GRUB_CMDLINE_LINUX_DEFAULT options from /etc/default/grub file are used to set both
# the kernelopts variable in the grubenv file and the fallback kernelopts variable.
if [ -z "${kernelopts}" ]; then
set kernelopts="root=UUID=d0be5cb9-622d-42d5-a531-674aaa120309 ro crashkernel=auto rhgb quiet console=ttyS1,57600n8"
fi

insmod blscfg
blscfg
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/10_reset_boot_success ###
# Hiding the menu is ok if last boot was ok or if this is a first boot attempt to boot the entry
if [ "${boot_success}" = "1" -o "${boot_indeterminate}" = "1" ]; then
set menu_hide_ok=1
else
set menu_hide_ok=0
fi
# Reset boot_indeterminate after a successful boot
if [ "${boot_success}" = "1" ] ; then
set boot_indeterminate=0
# Avoid boot_indeterminate causing the menu to be hidden more then once
elif [ "${boot_indeterminate}" = "1" ]; then
set boot_indeterminate=2
fi
# Reset boot_success for current boot
set boot_success=0
save_env boot_success boot_indeterminate
### END /etc/grub.d/10_reset_boot_success ###

### BEGIN /etc/grub.d/12_menu_auto_hide ###
if [ x$feature_timeout_style = xy ] ; then
if [ "${menu_show_once}" ]; then
unset menu_show_once
save_env menu_show_once
set timeout_style=menu
set timeout=60
elif [ "${menu_auto_hide}" -a "${menu_hide_ok}" = "1" ]; then
set orig_timeout_style=${timeout_style}
set orig_timeout=${timeout}
if [ "${fastboot}" = "1" ]; then
# timeout_style=menu + timeout=0 avoids the countdown code keypress check
set timeout_style=menu
set timeout=0
else
set timeout_style=hidden
set timeout=1
fi
fi
fi
### END /etc/grub.d/12_menu_auto_hide ###

### BEGIN /etc/grub.d/20_linux_tboot ###
submenu "tboot 1.10.2" {
menuentry 'CentOS Linux GNU/Linux, with tboot 1.10.2 and Linux 5.18.0' --class centos --class gnu-linux --class gnu --class os --class tboot {
insmod multiboot2
insmod part_gpt
insmod ext2
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root d0be5cb9-622d-42d5-a531-674aaa120309
else
search --no-floppy --fs-uuid --set=root d0be5cb9-622d-42d5-a531-674aaa120309
fi
echo 'Loading tboot 1.10.2 ...'
multiboot2 /boot/tboot.gz logging=serial,memory serial=57600,8n1,0x2f8 min_ram=0x2000000
echo 'Loading Linux 5.18.0 ...'
module2 /boot/vmlinuz-5.18.0 root=UUID=d0be5cb9-622d-42d5-a531-674aaa120309 ro crashkernel=auto rhgb quiet console=ttyS1,57600n8 intel_iommu=on
echo 'Loading initial ramdisk ...'
module2 /boot/initramfs-5.18.0.img
}
}
### END /etc/grub.d/20_linux_tboot ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_linux_xen_tboot ###
### END /etc/grub.d/20_linux_xen_tboot ###

### BEGIN /etc/grub.d/20_ppc_terminfo ###
### END /etc/grub.d/20_ppc_terminfo ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/30_uefi-firmware ###
### END /etc/grub.d/30_uefi-firmware ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f ${config_directory}/custom.cfg ]; then
source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# GRUB Environment Block
saved_entry=9af7b02ac08149d985841c07c8ff366e-5.18.0
kernelopts=root=UUID=d0be5cb9-622d-42d5-a531-674aaa120309 ro crashkernel=auto rhgb quiet console=ttyS1,57600n8
boot_success=0
boot_indeterminate=0
#################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
fat16
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
vfat
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
d0be5cb9-622d-42d5-a531-674aaa120309
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
title CentOS Linux (0-rescue-9af7b02ac08149d985841c07c8ff366e) 8
version 0-rescue-9af7b02ac08149d985841c07c8ff366e
linux /boot/vmlinuz-0-rescue-9af7b02ac08149d985841c07c8ff366e
initrd /boot/initramfs-0-rescue-9af7b02ac08149d985841c07c8ff366e.img
options $kernelopts
id centos-0-0-rescue-9af7b02ac08149d985841c07c8ff366e
grub_users $grub_users
grub_arg --unrestricted
grub_class kernel

Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
title CentOS Linux (5.18.0) 8
version 5.18.0
linux /boot/vmlinuz-5.18.0
initrd /boot/initramfs-5.18.0.img $tuned_initrd
options $kernelopts $tuned_params
id centos-20220726012856-5.18.0
grub_users $grub_users
grub_arg --unrestricted
grub_class kernel

Binary file not shown.
Empty file.

0 comments on commit 9954df7

Please sign in to comment.