void-packages/srcpkgs/efibootmgr/files/kernel.d/efibootmgr.post-install
Christopher Brannon 8e5f9e9679 efibootmgr: make modifying of boot records optional, disabled by default.
Also changed the name of the config file, since the syntax
is much different.
2016-11-13 22:56:45 -08:00

37 lines
1 KiB
Bash

#!/usr/bin/sh
#
# Kernel hook for efibootmgr.
#
# Arguments passed to this script: $1 pkgname, $2 version.
#
PKGNAME="$1"
VERSION="$2"
. "${ROOTDIR}/etc/default/efibootmgr-kernel-hook"
if [ "x${MODIFY_EFI_ENTRIES}" != x1 ]; then
exit 0
fi
OPTIONS="${OPTIONS} initrd=/initramfs-${VERSION}.img"
# get major version, e.g. "4.8" for "linux4.8"
major_version=$(echo $PKGNAME | cut -c 6-)
# look for previous entry for this major kernel version
existing_entry=$(efibootmgr | grep "Void Linux with kernel ${major_version}")
# get the boot order
# this is required because when in the next step the existing entry is removed,
# it is also removed from the order so it needs to be restored later
bootorder=$(efibootmgr |grep "BootOrder: " |cut -c 12-)
# if existing, remove it
if [ "$existing_entry" != "" ]; then
/etc/kernel.d/post-remove/50-efibootmgr $PKGNAME
fi
# create the new entry
efibootmgr -qc -L "Void Linux with kernel ${major_version}" -l /vmlinuz-${VERSION} -u "${OPTIONS}"
# restore the boot order
efibootmgr -qo $bootorder