On 06/05/2026 at 14:06, Marc Haber wrote:
On Tue, May 05, 2026 at 01:32:17PM +0200, Pascal Hambourg wrote:

If U-Boot loads GRUB from the EFI partition removable media path, it means the copy of GRUB core image in /boot/efi/EFI/BOOT/ was not updated after upgrading to the new GRUB version.

That is the case.

$ sudo ls -lR /boot/efi/EFI/
/boot/efi/EFI/:
total 8
drwxr-xr-x 2 root root 4096 May  5  2026 BOOT
drwxr-xr-x 2 root root 4096 May  5  2026 debian

/boot/efi/EFI/BOOT:
total 148
-rwxr-xr-x 1 root root 151552 May  5  2026 BOOTAA64.EFI

This is the "removable media" (fallback) path.
According to the size, it can be a custom (non monolithic) GRUB core image. According to the date, it was updated yesterday. However, in my experience `ls -l` shows the year only if it does not match the current year. What is the current system date ?

/boot/efi/EFI/debian:
total 5088
-rwxr-xr-x 1 root root     110 Mar 23 13:37 BOOTAA64.CSV
-rwxr-xr-x 1 root root  124920 Mar 23 13:37 fbaa64.efi
-rwxr-xr-x 1 root root     121 Mar 23 13:37 grub.cfg
-rwxr-xr-x 1 root root 3126720 Mar 23 13:37 grubaa64.efi
-rwxr-xr-x 1 root root  953040 Mar 23 13:37 mmaa64.efi
-rwxr-xr-x 1 root root  987432 Mar 23 13:37 shimaa64.efi

This is the default location for Debian EFI boot, but it cannot be used by U-Boot EFI services without EFI variables. The files names and sizes indicate that a signed monolithic GRUB image was used with shim, for secure boot. Are shim-signed and grub-efi-arm64-signed installed ?

The dates are older than in the fallback path. I expected the opposite. By default, `grub-install` would update files in /boot/efi/EFI/debian and not in /boot/efi/EFI/BOOT. How is GRUB_DISTRIBUTOR defined in /etc/default/grub or /etc/default/grub.d/*.cfg ?

None of those files get updated when upgrading to grub 2.14 and doing grub-install.

This is weird. Does `grub-install` exit with success ? Can you run it in verbose mode (--verbose), record the output and check what it really installs where ?

It should be updated automatically if grub2/force_efi_extra_removable is set to 'false' in debconf. You can check with

debconf-show grub-efi-arm64

$ debconf-show grub-efi-arm64
   grub2/force_efi_extra_removable: false

So I would expect that /boot/efi/EFI/debian is updated and /boot/efi/EFI/BOOT is not.

  grub2/update_nvram: true

Setting this parameter to 'false' would prevent `grub-install` from trying and failing to update EFI boot variables. Anyway in my experience this failure does not prevent updating the files in the ESP.

btw, this is a debian live arm64 image that Roland Clobus helped me build on Mini Debconf Hamburg.

Do you mean you installed from a live image ? Or you are using a live image (with persistence ?)

In your previous post I noticed that you used the same partition for firmware and efi. I do not think it matters, AFAIK grub-install uses what's mounted on /boot/efi and should not care if it is also mounted elsewhere.

Reply via email to