34 lines
821 B
Bash
34 lines
821 B
Bash
#!/bin/sh
|
|
#
|
|
# Kernel hook for GRUB 2.
|
|
#
|
|
# Arguments passed to this script: $1 pkgname, $2 version.
|
|
#
|
|
PKGNAME="$1"
|
|
VERSION="$2"
|
|
|
|
[ -r boot/grub/grub.cfg ] \
|
|
&& groot=$(awk '/^set root=/{print substr($2, 8, 3); exit}' \
|
|
boot/grub/grub.cfg)
|
|
[ -e boot/grub/device.map ] && [ -n "${groot}" ] \
|
|
&& dev=$(awk "/${groot}/{ print \$NF}" boot/grub/device.map)
|
|
|
|
if [ -n "$dev" -a -r "$dev" ]; then
|
|
dd if="${dev}" bs=512 skip=0 count=1 2>/dev/null|grep -q GRUB
|
|
[ $? -eq 0 ] && grub_installed=1
|
|
fi
|
|
|
|
if [ -z "$dev" -a -z "$grub_installed" ]; then
|
|
exit 0
|
|
elif [ -n "$dev" -a -z "$grub_installed" ]; then
|
|
echo "WARNING: GRUB2 has not been installed into $dev."
|
|
echo "WARNING: please run 'grub-install $dev'."
|
|
else
|
|
if command -v grub-mkconfig >/dev/null 2>&1; then
|
|
grub-mkconfig -o boot/grub/grub.cfg
|
|
exit $?
|
|
fi
|
|
fi
|
|
|
|
exit 0
|