Skip to content

Commit

Permalink
Add grub fix files
Browse files Browse the repository at this point in the history
Signed-off-by: Kiefer Chang <kiefer.chang@suse.com>
bk201 committed Dec 2, 2021
1 parent 2ac68d0 commit b9f54d1
Showing 3 changed files with 104 additions and 1 deletion.
2 changes: 1 addition & 1 deletion .github/workflows/release.yaml
Original file line number Diff line number Diff line change
@@ -16,7 +16,7 @@ jobs:
- name: create dist
run: |
mkdir -p $REPO_NAME
cp -r bin manifests $REPO_NAME
cp -r bin manifests grub-fix $REPO_NAME
tar zcvf ${REPO_NAME}.tar.gz $REPO_NAME
- uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
93 changes: 93 additions & 0 deletions grub-fix/grub2/grub.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
set timeout=10

# Load custom env file
set env_file="/grubenv"
search --file --set=env_blk "${env_file}"

# Load custom env file
set oem_env_file="/grub_oem_env"
search --file --set=oem_blk "${oem_env_file}"

# Load custom config file
set custom_menu="/grubmenu"
search --file --set=menu_blk "${custom_menu}"

if [ "${oem_blk}" ] ; then
load_env -f "(${oem_blk})${oem_env_file}"
fi

if [ "${env_blk}" ] ; then
load_env -f "(${env_blk})${env_file}"
fi

# Save default
if [ "${next_entry}" ]; then
set default="${next_entry}"
set next_entry=
save_env -f "(${env_blk})${env_file}" next_entry
else
set default="${saved_entry}"
fi

## Display a default menu entry if set
if [ "${default_menu_entry}" ]; then
set display_name="${default_menu_entry}"
else
set display_name="cOS"
fi

## Set a default fallback if set
if [ "${default_fallback}" ]; then
set fallback="${default_fallback}"
else
set fallback="0 1 2"
fi

set gfxmode=auto
set gfxpayload=keep
insmod all_video
insmod gfxterm
insmod loopback
insmod squash4

menuentry "${display_name}" --id cos {
search.fs_label COS_STATE root
set img=/cOS/active.img
set label=COS_ACTIVE
loopback loop0 /$img
set root=($root)
source (loop0)/etc/cos/bootargs.cfg
linux (loop0)$kernel $kernelcmd ${extra_cmdline} ${extra_active_cmdline}
initrd (loop0)$initramfs
}

menuentry "${display_name} (fallback)" --id fallback {
search.fs_label COS_STATE root
set img=/cOS/passive.img
set label=COS_PASSIVE
loopback loop0 /$img
set root=($root)
source (loop0)/etc/cos/bootargs.cfg
linux (loop0)$kernel $kernelcmd ${extra_cmdline} ${extra_passive_cmdline}
initrd (loop0)$initramfs
}

menuentry "${display_name} recovery" --id recovery {
if search.file /cOS/recovery.squashfs ; then
set img=/cOS/recovery.squashfs
set recoverylabel=COS_RECOVERY
else
set img=/cOS/recovery.img
fi
search.fs_label COS_RECOVERY root
set label=COS_SYSTEM
loopback loop0 /$img
set root=($root)
source (loop0)/etc/cos/bootargs.cfg
linux (loop0)$kernel $kernelcmd ${extra_cmdline} ${extra_recovery_cmdline}
initrd (loop0)$initramfs
}

if [ "${menu_blk}" ]; then
source "(${menu_blk})${custom_menu}"
fi
10 changes: 10 additions & 0 deletions grub-fix/grubmenu
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
menuentry "${display_name} (debug)" --id debug {
search.fs_label COS_STATE root
set img=/cOS/active.img
set label=COS_ACTIVE
loopback loop0 /$img
set root=($root)
source (loop0)/etc/cos/bootargs.cfg
linux (loop0)$kernel $kernelcmd ${extra_cmdline} ${extra_passive_cmdline} ${crash_kernel_params}
initrd (loop0)$initramfs
}

0 comments on commit b9f54d1

Please sign in to comment.