[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#918863: reboot returns to Windows 10 on Lenovo X1



Hello Tom Brown, dear Maintainer,
I just tried to reproduce this on a amd64 qemu EFI VM.

>From your description is not clear if you received on reboot
the menu to select between "Windows 10" or
"Debian GNU/Linux - Continue with install process"?
If that is missing you might add the output of following command
running in an administrative/elevated cmd:

    bcdedit /enum all > c:\bcdedit-enum-all.txt


Unfortunately I am not confident if grldr.mbr is still working,
at least when a firmware without CSM or secure boot comes into play.
Therefore I raise the question if win32-loader is really supposed
to work on a secure boot EFI system?
If such a system is detected, maybe a warning could be added?


I looked for a way to load e.g. an EFI grub image [2] from
{bootmgr} (Windows Boot Manager), but could not find a working way.
The most I found is this discussion [2].

The next possiblity would be to add an boot entry to the
firmware efi itself - unfortunately the firmware boot menu
would have to be opened by the user (at least in TianoCore).

So it might be needed to make at this stage grub already the
default - with the risk to leave the user with an unbootable system ...

Find in [3] some examples how to change the boot configuration.
This may make the system unbootable, just use in a test environment!!!
This is not intended as a workaround - just a possible way to improve
win32-loader.

Also with the debian installation the real grub was put
into place and working.
Unfortunately Windows decided at next it got booted to make
again our intermediate grub the default entry ???

Kind regards,
Bernhard


[1] Create EFI grub:
    grub-mkimage -o grubx64-win32-loader.efi -O x86_64-efi --prefix /EFI/debian part_gpt part_msdos lvm fat ext2 chain boot configfile normal minicmd linux reboot halt search gfxterm gfxmenu efi_gop efi_uga video loadbios gzio video_bochs video_cirrus echo true loadenv ntfs exfat tftp http

[2] http://reboot.pro/topic/17655-boot-into-3rd-party-efi-application-via-bcd/page-3

[3]
    # C:\Windows\system32>bcdedit /enum {bootmgr} | find "path"
    # path                    \EFI\Microsoft\Boot\bootmgfw.efi

    # mount ESP/EFI system partition as Z: (has to be a free drive letter)
    mountvol Z: /S
    mkdir Z:\EFI\debian
    # create a grub.cfg
    (
    echo menuentry "Windows" {
    echo     search --file --no-floppy --set=root /EFI/Microsoft/Boot/bootmgfw.efi
    echo     chainloader /EFI/Microsoft/Boot/bootmgfw.efi
    echo }
    echo menuentry "Debian GNU/Linux - Continue with install process" {
    echo     search --file --no-floppy --set=root /win32-loader/linux
    echo     linux /win32-loader/linux vga=788 priority=low ---
    echo     initrd /win32-loader/initrd.gz
    echo }
    )> Z:\EFI\debian\grub.cfg
    # copy the grub image from [1]
    copy c:\root\grubx64-win32-loader.efi Z:\EFI\debian\grubx64-win32-loader.efi
    # unmount ESP
    mountvol Z: /D

    # add a new boot entry to EFI firmware and make it default - found no way to create a proper firmware application 101fffff ...
    bcdedit /copy {bootmgr} /d "Debian GNU/Linux - Continue with install process copy"
    ::Der Eintrag wurde erfolgreich in {4c28ffdd-16ba-11e9-8632-97f1cd5def39} kopiert.
    set GUID={4c28ffdd-16ba-11e9-8632-97f1cd5def39}
    bcdedit /set %GUID% path \EFI\debian\grubx64-win32-loader.efi
    bcdedit /set {fwbootmgr} timeout 15
    bcdedit /set {fwbootmgr} default %GUID%
    bcdedit /deletevalue %GUID% device
    bcdedit /deletevalue %GUID% locale
    bcdedit /deletevalue %GUID% inherit
    bcdedit /deletevalue %GUID% resumeobject
    bcdedit /deletevalue %GUID% toolsdisplayorder
    bcdedit /deletevalue %GUID% timeout

    # Was just tested with EFI win10 64bit


Reply to: