a1ive / grub

Fork of GRUB 2 to add various features.
GNU General Public License v3.0
138 stars 38 forks source link

wimboot BIOS fails for WinPE WIMs larger than 890MB #92

Open bitraid opened 3 years ago

bitraid commented 3 years ago

Under BIOS, wimboot command fails with FATAL: no bootmgr.exe for files larger than ~890MB.

a1ive commented 3 years ago

any screenshots? what command did you use?

bitraid commented 3 years ago

For the example below, i'm using winre.wim from Windows 20H2, after adding some random files to increase its size to about 900MB: wimboot @:boot.wim:(hd0,msdos1)/winre.wim wimboot-log

And then fails: wimboot-fail

I also tried with --rawwim, --testmode=no, winpe=yes, and adding bootmgr.exe. GRUB2-FileManager also fails with the same message.

bitraid commented 3 years ago

I must add that using wimboot with grub4dos, works ok for the same file.

rdragonz commented 3 years ago

I am unable to reproduce the same issue using a WIM file for Hirens PE

bitraid commented 3 years ago

I am unable to reproduce the same issue using a WIM file for Hirens PE

I just downloaded Hiren's PE and tried to boot boot.wim (1.23GB) and got the same error. Smaller files seem to work fine. I tried it on two different PCs (and virtual), but if others can't reproduce the issue, I guess I'll have to look more into it on my end.

steve6375 commented 3 years ago

How much RAM is in your system and what is the memory map?

bitraid commented 3 years ago

How much RAM is in your system and what is the memory map?

Currently, I have tested on 16GB (amd), 8GB (intel), 4GB (qemu on archlinux). I'll do more tests in a few days, when I'll have access to more machines (but maybe there is some other strange thing going on). I don't know what you mean by "memory map".

steve6375 commented 3 years ago

I tested with boot.wim from HirensPE 1.0.1. Also get same error on Legacy boot under VBox 5 and real system IdeaPad 300. Works OK on UEFI64. image

steve6375 commented 3 years ago

P.S. I notice that $grub_platform is set to 'multiboot' now and not 'pc' (in elf grubfm.iso) - which is the standard ??? This means that testing grub_platform for 'pc' no longer works ???

a1ive commented 3 years ago

I think it might be related to the memory map. It is too difficult to develop software under legacy BIOS, and I doubt if it is necessary to continue supporting it.

I notice that $grub_platform is set to 'multiboot' now and not 'pc' (in elf grubfm.iso) - which is the standard ???

The platform of grub2 is independent of the type of firmware you have on your computer. If your UEFI firmware supports BIOS interrupt calls, then you can also run grub2 i386-pc.