-
Notifications
You must be signed in to change notification settings - Fork 341
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
"LoadImage error 800000000000000E (Not Found)" on VirtualBox starting from release 1.4 #112
Comments
Hi, sorry for the delay in response. I thought I knew what the cause of this issue was after reading your post, but this turned out to be a different bug (in VirtualBox, not in EfiGuard, but triggered by a change I was testing in response to Microsoft's new UEFI image signing requirements). In short: I remembered VirtualBox failing to load EFI images with So the above is almost definitely unrelated, I'm just mentioning it for completeness' sake and because it's the closest I've come to (unintentionally) reproducing this. Using VirtualBox v7.0.12, EfiGuard v1.4 and a Windows 10/11 VM (builds 14393 and 22621 - I don't have a 19045 VM on hand currently, but I can retry with that if you expect it will make a difference), I can not reproduce this using your steps above. I also don't see anything unusual in your screenshot that would lead to this error. Can you attach the |
@Mattiwatti I created a new VM, installed the same windows operating system from the same ISO I used to install the system where I first encountered the problem, installed EfiGuard on it, and I could NOT reproduce the problem. I still have the VM where I encountered the problem. After I installed the 1.4 efiguard version instead of previously installed 1.3 I confirm that the issue is still present on that VM, and the system cannot boot. Since I could not find any distinction between a fresh windows installation and the system where I encounter the problem I decided to make a full clone of the VM and upload it instead. Unfortunately, I can't upload the original VM with the un-bootable efiguard 1.4, but I upload the cloned VM with some errors present, but bootable. Maybe the origin of those errors will give a hint about the source of the problem. Here are some boot log screenshots from different VMs / efiguard versions: EfiGuard 1.4 on a fresh windows 19045 installation (boots successfully): EfiGuard 1.4 on the original VM, not a clone (boot fails): EfiGuard 1.4 on the full clone of the original VM without any other changes, the VM I upload (boots successfully): And the uploaded VM (15 GB uncompressed): mega |
Thank you so much for taking the effort to upload the entire VM for me. This made all the difference, because without it I would never have been able to reproduce this (even though I've personally seen this happen in VirtualBox - but just once and never again). The fact that the error is not fatal in the cloned VM is not a problem since the underlying issue is the same. This took me a very long time to debug, because I assumed the issue must naturally be a regression in EfiGuard v1.4, because after all, as you said (and I reproduced), the issue does not occur when using the v1.3 release instead. Specifically, it is Apart from not making much logical sense (there were no significant changes to the loader in v1.4 that would have caused something like this), I also manually verified the commits from v1.3 to v1.4 using At this point I think it's reasonable to say that the bug can't possibly be in EfiGuard itself, and has to be in some other component that is part of the build process. In theory I suppose this could have been a very strange compiler bug, but I have enough experience with EDK2 by now to know better than this. And indeed, not long after this I managed to build a working binary (both v1.3 and v1.4) simply by switching to an older version of the EDK2 build environment. So to clarify: the real reason that you (and now I as well) are seeing this bug in the v1.4 release is because EfiGuard v1.4 was compiled with a different (apparently worse...) version of EDK2 than EfiGuard v1.3 was. Please confirm that attached This is the loader from the current latest EfiGuard commit, compiled with EDK2 I've attached a version of Misc. notes: I haven't investigated the underlying issue in EDK2 in much detail, other than taking a quick peek at the two v1.3 binaries and concluding that it's probably not something simple, as there were no obvious issues in the 'broken' v1.3 as far as I could tell, other than exhibiting this bug at runtime of course. I may still end up hunting down the EDK2 regression with Another interesting thing to note is that the issue does not occur in the development version of VirtualBox compiled from trunk! I had to install VirtualBox 7.0.14 in order to reproduce this. After that, if I then upgrade VirtualBox to the current trunk revision, the same VM no longer exhibits the problem. So whatever the issue is precisely, I think it's reasonable to assume it has to be related to either VirtualBox or EDK2, or maybe the combination of the two. (VirtualBox uses EDK2 OVMF for its EFI firmware). |
I have updated I'm pleased to hear that the approximate origin of the problem is found. Thank you for your invaluable work! |
Indeed, the issue is still not resolved in the current edk2 master branch. So while this is not technically a bug in EfiGuard, I will leave the issue open in case it helps anyone else running into this. I do have some news to share re: this issue: I finally found the time to identify the guilty commit in edk2 using Unfortunately, merely identifying the bad commit in this case still doesn't really provide me with any clues as to how or why this commit is causing EfiGuard to be miscompiled, as all this commit does is add a new value to So the next step would be to do a comparison of the code generated for For anyone reading this who simply wants a quick and reliable workaround for this issue: compile EfiGuard using EDK2 tag |
Operating system
Windows 10 x64 22H2 (19045.2006)
Issue description
Hello. First of all, thank you for the great project you made!
EfiGuard outputs an error "LoadImage error 800000000000000E (Not Found)" (see the attachments) during boot.
The issue happens only with the latest at the moment release 1.4, while with 1.3 everything works perfectly.
Maybe 1.4 introduced a bug?
VirtualBox version: 7.0.12
Steps to reproduce
mountvol X: /S
X:
,cd EFI/Boot
copy ...\EfiGuard\EFI\Boot\Loader.efi .
copy ...\EfiGuard\EFI\Boot\EfiGuardDxe.efi .
efibootmgr
:efibootmgr -c -d /dev/sda -L "EfiGuard" -l \\EFI\\Boot\\Loader.efi
,and
EasyUefi
.Logs
Attachments
Error:
EFI entry:
The text was updated successfully, but these errors were encountered: