pve-kernel-meta/bin/grub-install-wrapper
Thomas Lamprecht f5ef4a67df grub wrapper: skip if using boot-tool but also booted via EFI
From Fabians feedback:
> this could have another guard for whether the system is even booted
> with grub as if the system was booted using EFI, re-initing all
> ESPs is just busy-work

So skip if proxmox-boot-tool and booted with EFI, as then GRUB is out
of the picture anyway.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-08 10:05:01 +02:00

44 lines
1.5 KiB
Bash
Executable File

#! /bin/sh
set -e
. /usr/share/pve-kernel-helper/scripts/functions
init_boot_disks() {
if ! (echo "${curr_uuid}" | grep -qE '[0-9a-fA-F]{4}-[0-9a-fA-F]{4}'); then
warn "WARN: ${curr_uuid} read from ${ESP_LIST} does not look like a VFAT-UUID - skipping"
return
fi
path="/dev/disk/by-uuid/$curr_uuid"
if [ ! -e "${path}" ]; then
warn "WARN: ${path} does not exist - clean '${ESP_LIST}'! - skipping"
return
fi
proxmox-boot-tool init "$path"
}
if proxmox-boot-tool status --quiet; then
# detect when being called by dpkg (e.g. grub-pc.postinst
if [ -n "$DPKG_RUNNING_VERSION" ] && echo "$DPKG_MAINTSCRIPT_PACKAGE" | grep -sq "^grub-"; then
if [ -d /sys/firmware/efi ]; then
echo "Promxox's boot-tool is used and booted via EFI, skipping re-sync of GRUB"
exit 0
fi
MARKER_FILE="/tmp/proxmox-boot-tool.dpkg.marker"
if [ ! -e "$MARKER_FILE" ]; then
warn "This system is booted via proxmox-boot-tool, running proxmox-boot-tool init for all configured bootdisks"
loop_esp_list init_boot_disks
touch "$MARKER_FILE"
exit 0
else
echo "Proxmox's boot-tool marker file found, ignoring grub install call."
exit 0
fi
fi
warn "grub-install is disabled because this system is booted via proxmox-boot-tool, if you really need to run it, run /usr/sbin/grub-install.real"
exit 1
else
grub-install.real "$@"
fi