If the system seems to be booted using proxmox-boot, write a header at the beginning of the grub.cfg generated when running `update-grub`
Additionally print a warning in case the script is run interactively. This is determined by checking for DPKG_VERSION, which is set when running as post-inst task (after a kernel install/removal) and for PVE_EFIBOOT_UNSHARED, which is set by proxmox-boot-tool when running `proxmox-boot-tool refresh.` Signed-off-by: Stoiko Ivanov <s.iva...@proxmox.com> --- proxmox-boot/000_proxmox_boot_header | 22 ++++++++++++++++++++++ proxmox-boot/Makefile | 4 ++++ 2 files changed, 26 insertions(+) create mode 100755 proxmox-boot/000_proxmox_boot_header diff --git a/proxmox-boot/000_proxmox_boot_header b/proxmox-boot/000_proxmox_boot_header new file mode 100755 index 0000000..57dae2c --- /dev/null +++ b/proxmox-boot/000_proxmox_boot_header @@ -0,0 +1,22 @@ +#! /bin/sh +set -e + +. /usr/share/pve-kernel-helper/scripts/functions + +if proxmox-boot-tool status; then + cat <<- EOF + # + # This system is booted via proxmox-boot-tool! The grub-config used when + # booting from the disks configured with proxmox-boot-tool resides on the vfat + # partitions with UUIDs listed in ${ESP_LIST}. + # /boot/grub/grub.cfg is NOT read when booting from those disk! + EOF + + if [ -z "$DPKG_VERSION" ] && [ -z "$PVE_EFIBOOT_UNSHARED" ]; then + warn "W: This system is booted via proxmox-boot-tool:" + warn "W: Running update-grub does not update the correct config!" + warn "W: Run 'proxmox-boot-tool refresh' instead." + warn "" + fi +fi + diff --git a/proxmox-boot/Makefile b/proxmox-boot/Makefile index 3a36cb7..effd726 100644 --- a/proxmox-boot/Makefile +++ b/proxmox-boot/Makefile @@ -1,11 +1,13 @@ KERNEL_HOOKSCRIPTS = proxmox-auto-removal zz-proxmox-boot INITRAMFS_HOOKSCRIPTS = proxmox-boot-sync SHARE_FILES = functions +GRUB_CFG_SNIPPET = 000_proxmox_boot_header POSTINSTHOOKDIR = ${DESTDIR}/etc/kernel/postinst.d POSTRMHOOKDIR = ${DESTDIR}/etc/kernel/postrm.d POSTINITRAMFSHOOKDIR = ${DESTDIR}/etc/initramfs/post-update.d SHARE_SCRIPTDIR = ${DESTDIR}/usr/share/pve-kernel-helper/scripts +GRUB_CFG_DIR = ${DESTDIR}/etc/grub.d .PHONY: all all: @@ -19,6 +21,8 @@ install: install -m 0755 ${INITRAMFS_HOOKSCRIPTS} ${POSTINITRAMFSHOOKDIR} install -d ${SHARE_SCRIPTDIR} install -m 0755 ${SHARE_FILES} ${SHARE_SCRIPTDIR} + install -d ${GRUB_CFG_DIR} + install -m 0755 ${GRUB_CFG_SNIPPET} ${GRUB_CFG_DIR} .PHONY: clean distclean distclean: -- 2.20.1 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel