Neverous / efibooteditor

Boot Editor for (U)EFI based systems
GNU Lesser General Public License v3.0
284 stars 17 forks source link

UEFI Boot Editting #80

Open 99bobster99 opened 1 year ago

99bobster99 commented 1 year ago

I have an Asus motherboard, using a UEFI configuration, not sure if I'm doing something wrong when running your EFI editor, but I don't see my current boot options within your program?

I tried all your different Windows versions (Clang and MSVC), but none of them seem to work for me.

I'm running Windows 10 Pro (x64) - 21H2

What am I doing wrong?

Neverous commented 1 year ago

Do you see anything, is the timeout registered correctly? Can you share the raw dump (Help -> Dump raw EFI data) if it has anything?

What's the motherboard model? BIOS version?

Only thing that comes to mind is that while you have EFI support maybe you're actually booting in compatibility mode and EFI is actually unused (though I think that disables the EFI access in Windows altogether :thinking: ) or maybe there are some protections in your BIOS to lock read access to boot variables.

You can also try bcdedit /enum firmware in Terminal as Administrator to see what it shows.

99bobster99 commented 1 year ago

No, upon opening the program, every tab is empty (see below);

image

Also, what's strange is my Windows 10 msconfig boot screen shows nothing as well?

image

Yet, I have (2) boot options available. 1 boots a VHDX file (also Windows 10), while the other boots to the C: drive partition (Windows 10 Pro x64 21H2);

image

I'm running an Azuz mother board, see below;

image

I have a similar setup on one of my laptops (2 boot options, VHDX and regular C: drive Windows 10 Pro x64 22H2). I see the same thing happening when running EFI Boot Editor.

The raw EFI data is empty as well, see attached. 230603-EFI-raw-dump.txt

Do you have any other ideas on something I can check on my end?

Neverous commented 1 year ago

Yeah, completely nothing :disappointed: Interesting, if there are no errors showing up, not sure what could that be, maybe some option in the BIOS to limit the OS access as I mentioned (though I would expect error message, not silently returning nothing). But looking through BIOS images in google I don't see anything like that. Are you using Secure Boot?

And can you try the bcdedit /enum firmware in Terminal/cmd.exe as Administrator? This should show what the system tools are seeing (if they don't see anything as well then I'd say its driver/bios issue, but if they do I must have missed some permission or something).

Also your BIOS seems to be pretty old? maybe there is a bug in it. I see newer ones I think: https://rog.asus.com/motherboards/rog-strix/rog-strix-b550-a-gaming-model/helpdesk_bios/ if you can its probably worth upgrading.

ViBE-HU commented 5 months ago

glad i found this issue. i just found your tool which is awesome. I mean I love you or something like that. finally a GUI tool for windows (and linux too) what can handle uefi boot settings. it is terrible that microsoft has no official tool for this and the linux soultions which i found are not so universal.

first of all: it is not clear for me which version should i use. i just downloaded EFIBootEditor-v1.4.0-windows-2019-qt-5.12.12-Clang.msi and nothing shows up after i start the program. i seeking for windows 10 version and i'm using a Lenovo Legion 5 laptop.

i also have to tell that EasyUEFI has no issues and under ubuntu 24.04 i'm using EFI boot manager too. both handles well my machine.

i'm planning to translate your program. but man, after a quick look i must say that it's heavy. i love detailed solutions but as i see you are working on it which is cool. the mentioned programs above might give you some inspirations.

Neverous commented 5 months ago

For what to install I recommend reading https://github.com/Neverous/efibooteditor/blob/master/INSTALL.md. None of the artifacts are guaranteed to work outside of the build environment but I've been pushing the EFIBootEditor-*-windows-2022-qt-*-MSVC.msi to winget and it seems to work fine most of the time for most people.

nothing shows up after i start the program

Any chance for additional details, like BIOS Version? bcdedit /enum firmware would also be useful (and/or outputs of efibootmgr on linux, as well as potentially testing EFI Boot Editor on linux as well to confirm if issue is in BIOS/Windows syscalls or how I read the EFI variables somewhere)

ViBE-HU commented 5 months ago

@Neverous of course i can provide more infos. only bcdedit /enum firmware and efibootmgr outputs needed?

Neverous commented 5 months ago

For now, yes :crossed_fingers:

ViBE-HU commented 5 months ago

@Neverous

efibootmgr

BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0002,2001,2002,2003,0000
Boot0000* ubuntu    HD(1,GPT,57450e49-55cc-4feb-ad9e-e6b9b94fcaa1,0x800,0x219800)/File(\EFI\ubuntu\shimx64.efi) File(.䍒)
Boot0002* Windows Boot Manager  HD(1,GPT,685e3018-8c6d-4fb9-8503-c71bbecbf7fb,0x800,0x32000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)57494e444f5753000100000088000000780000004200430044004f0042004a004500430054003d007b00390064006500610038003600320063002d0035006300640064002d0034006500370030002d0061006300630031002d006600330032006200330034003400640034003700390035007d00000049000100000010000000040000007fff0400
Boot2001* EFI USB Device    RC
Boot2002* EFI DVD/CDROM RC
Boot2003* EFI Network   RC

bcdedit /enum firmware

Firmware Boot Manager
---------------------
identifier              {fwbootmgr}
displayorder            {bootmgr}
                        {ff2386bf-8864-11ee-ac3e-c1d5cce814af}
                        {ff2386c0-8864-11ee-ac3e-c1d5cce814af}
                        {ff2386c1-8864-11ee-ac3e-c1d5cce814af}
                        {3fb2837f-2053-11ef-8e9d-806e6f6e6963}
bootsequence            {3fb2837f-2053-11ef-8e9d-806e6f6e6963}
timeout                 0

Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume1
path                    \EFI\Microsoft\Boot\bootmgfw.efi
description             Windows Boot Manager
locale                  hu-HU
inherit                 {globalsettings}
default                 {current}
resumeobject            {ff2386c3-8864-11ee-ac3e-c1d5cce814af}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 0

Firmware Application (101fffff)
-------------------------------
identifier              {3fb2837f-2053-11ef-8e9d-806e6f6e6963}
device                  partition=\Device\HarddiskVolume5
path                    \EFI\ubuntu\shimx64.efi
description             ubuntu

Firmware Application (101fffff)
-------------------------------
identifier              {ff2386bf-8864-11ee-ac3e-c1d5cce814af}
description             EFI USB Device

Firmware Application (101fffff)
-------------------------------
identifier              {ff2386c0-8864-11ee-ac3e-c1d5cce814af}
description             EFI DVD/CDROM

Firmware Application (101fffff)
-------------------------------
identifier              {ff2386c1-8864-11ee-ac3e-c1d5cce814af}
description             EFI Network
Neverous commented 5 months ago

Yeah, everything looks normal :confused: I adjusted some things and added additional debug output to raw dump. Could you try raw dump (Help -> Dump raw EFI data) from this (It's from https://github.com/Neverous/efibooteditor/pull/244, I think this link works, but let me know) ?

ViBE-HU commented 5 months ago

@Neverous no success. cannot even start the program. it says that MSVCP140D.dll, VCRUNTIME140D.dll, VCRUNTIME140_1D.dll ucrtbased.dll files are missing.

Neverous commented 5 months ago

Oh, you're right I'm putting the wrong runtime libraries (release versions) in the debug packages :construction_worker:

Neverous commented 5 months ago

This one should be able to start.

Neverous commented 3 months ago

Managed to hit it myself finally, I think. And fixed that with https://github.com/Neverous/efibooteditor/commit/f5cfe62a4e2df6f9ebb983ac6208f664abfb089c . You should be able to test with build from https://github.com/Neverous/efibooteditor/releases/tag/latest, once it builds. Or it will be a part of next release.