On August 7, 2025 10:30 pm, Stoiko Ivanov wrote: > some upgrades result in unbootable systems, which can be traced back > to grub being installed in BOOTX64.efi, but not being upgraded by > grub-install. Refer the cases to the output of > `proxmox-boot-tool refresh` as it has a sensible check logic for those > cases. Some affected systems printed the warning of proxmox-boot-tool, > but it was lost in the large output of the dist-upgrade. > > Signed-off-by: Stoiko Ivanov <s.iva...@proxmox.com> > --- > PVE/CLI/pve8to9.pm | 11 ++++++++++- > 1 file changed, 10 insertions(+), 1 deletion(-) > > diff --git a/PVE/CLI/pve8to9.pm b/PVE/CLI/pve8to9.pm > index 6381e62f..c2e830a9 100644 > --- a/PVE/CLI/pve8to9.pm > +++ b/PVE/CLI/pve8to9.pm > @@ -1569,6 +1569,7 @@ sub check_bootloader { > return; > } > > + my $boot_ok = 1; > if (-f "/etc/kernel/proxmox-boot-uuids") { > if (!$upgraded) { > log_skip("not yet upgraded, systemd-boot still needed for > bootctl"); > @@ -1587,13 +1588,21 @@ sub check_bootloader { > . " boot-related packages. Remove 'systemd-boot' See" > . " > https://pve.proxmox.com/wiki/Upgrade_from_8_to_9#sd-boot-warning for more > information." > ); > + $boot_ok = 0; > } > if (!-f "/usr/share/doc/grub-efi-amd64/changelog.Debian.gz") { > log_warn("System booted in uefi mode but grub-efi-amd64 > meta-package not installed," > . " new grub versions will not be installed to /boot/efi! > Install grub-efi-amd64." > ); > + $boot_ok = 0; > + } > + if (-f "/boot/efi/EFI/BOOT/BOOTX64.efi") { > + log_warn("Removable bootloader found at > '/boot/efi/EFI/BOOT/BOOTX64.efi' Check the" > + . " output of `proxmox-boot-tool refresh` if further action > is needed.");
why not run the debconf command here? we already did 90% of the required checks if we end up here: 1. system is EFI booted 2. removable entry on ESP exists 3: MISSING: `debconf show --db configdb grub-efi-amd64 grub-pc | grep 'force_efi_extra_removable'` we just need to query debconf to see if action actually needs to be taken. without that last step, this will now warn *for all LVM systems*, even those that are properly set up.. if we want to go the extra mile, we could also check that the binaries actually match what is currently installed package-wise, but that might get complicated in the face of shim.. > + $boot_ok = 0; this is dead code > return; or this is, please only do either ;) > - } else { > + } > + if ($boot_ok) { > log_pass("bootloader packages installed correctly"); > } > } > -- > 2.39.5 > > > > _______________________________________________ > pve-devel mailing list > pve-devel@lists.proxmox.com > https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel > > > _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel