To check the boot entries load up a live ISO image and run this command (available from the efibootmgr package):
Code: Select all
efibootmgr -v
The equivalent command in Windows would be
Code: Select all
bcdedit /v
Code: Select all
# efibootmgr --create --label 'Debian' --disk /dev/sdX --part Y --loader \EFI\debian\shimx64.efi
From Windows the command would be
Code: Select all
bcdedit /set "{bootmgr}" path "\EFI\debian\shimx64.efi"
If there is a Debian entry but it is not first in the boot order then use the "--order" switch to correct this (see the efibootmgr man page for details).
In the event that these changes do not persist (which is highly likely) then the shimx64.efi loader can be copied to the removable loader location and renamed to bootx64.efi (again, replace X & Y with the drive letter and partition number assigned to the EFI system partition[0]):
Code: Select all
# mount /dev/sdXY /mnt
# cp /mnt/EFI/debian/* /mnt/EFI/BOOT
# mv /mnt/EFI/BOOT/{shimx,bootx}64.efi
Some UEFI implementations are so broken that they will only start Windows' bootmgfw.efi loader:
Code: Select all
# mount /dev/sdXY /mnt
# mkdir -p /mnt/EFI/Microsoft/Boot
# cp /mnt/EFI/debian/* /mnt/EFI/Microsoft/Boot
# mv /mnt/EFI/Microsoft/Boot/{shimx64,bootmgfw}.efi
For more on this problem see https://www.rodsbooks.com/efi-bootloade ... ive-naming
[0] The EFI system partition can be identified by using gparted or
Code: Select all
# parted --list
[1] Example stanza to add to the end of /etc/grub.d/40_custom (replace "$uuid" with the actual UUID of the EFI system partition):
Code: Select all
menuentry 'OpenBSD' {
search --fs-uuid $uuid --set=root
chainloader /EFI/BOOT/openbsd.efi
}
Code: Select all
menentry 'Windows' {
search --fs-uuid $uuid --set=root
chainloader /EFI/Microsoft/Boot/windows.efi
}