10

I am attempting to install Windows 10 x64 (64-bit) on a device that only has 32-bit UEFI (for the moment)

Since x64 Linux can be booted via a custom 32-bit GRUB.. I assume it could also do the same for windows, but "how to use grub to bypass a 32bit uefi to boot windows 10 x64" seems to indicate otherwise, though the explanation given does not completely explain why (to me at least).

I believe GRUB's 32-bit EFI SHOULD be able to load Window's 64-bit EFI.

Alternatively, is it possible to use grub's newish 'ntldr-mod' to run windows x64 install bootmgr? (howto start WINDOWS OS installation on hard disk with grub2)

This question will likely evolve based on the answers.

Answers/Comments regarding WHY will be flagged as off-topic. All i'm interested in is HOW. If your answer is 'not possible', PLEASE provide more info.

'Architectures must match' is not a valid answer.

reference links:

Possible to install 64-bit Windows on 32-bit UEFI?

Install Grub2 (with EFI-IA32 support) to the ESP partition from within Windows 8.1 (32-bit) - Bay Trail tablet

[Solved] Chainload Windows8 UEFI with Grub2-efi

Windows installed in UEFI-GPT Mode menu entry

Can't boot a 64bit Windows USB from a tablet originally installed with 32-bit OS

Installing Ubuntu 14.10 (64-bit) on a Windows 8 bay trail atom tablet

How do I repair grub2 (not) booting 32-bit EFI on a 64-bit machine?

goofology
  • 561
  • 1
  • 4
  • 15
  • You can't load 64-bit bit EFI binary on 32-bit UEFI (or chainload 64-bit EFI binary using 32-bit EFI binary), at least not with grub i386-efi (chain.mod / `chainloader`). I haven't really seen anything can actually do that either. You should be noted that grub EFI does not load linux with the same module/command (`linux` and `initrd` instead of `chainloader`). – Tom Yan Mar 20 '16 at 22:53
  • As for the `ntldr` command/module, it's only available under grub i386-pc (i.e. BIOS), and it can only load the BIOS version of Windows Boot Manager (or NTLDR). Although it's not possible with grub EFI, but AFAIK it's possible to load BIOS/MBR Windows with rEFInd. However, it's only limited to UEFI with CSM (which I doubt that will exist on those 32-bit UEFI). – Tom Yan Mar 20 '16 at 22:57
  • Thats not what i was hoping for :( Thank you for the info. – goofology Mar 20 '16 at 23:00
  • Is this grub the same as what you refer to.. Grub i386? http://packages.ubuntu.com/vivid/grub-efi-ia32. It is specifically the grub that allows loading x64 Linux from 32 bit Grub – goofology Mar 20 '16 at 23:55
  • Well I mentioned of two grub i386 (`i386-pc` and `i386-efi`), and that's grub `i386-efi`. FWIW, when I said `grub EFI`, I meant grub `i386-efi` and `x86_64-efi` in general. `i386-pc` is for BIOS/CSM, `i386-efi` is for 32-bit UEFI, and `x86_64-efi` is for 64-bit UEFI. – Tom Yan Mar 21 '16 at 04:52
  • BIOS/CSM: http://packages.ubuntu.com/search?keywords=grub-pc; 32-bit UEFI: http://packages.ubuntu.com/search?keywords=grub-efi-ia32; 64-bit UEFI: http://packages.ubuntu.com/search?keywords=grub-efi-amd64 – Tom Yan Mar 21 '16 at 05:02
  • Btw you should be able to install all three of them anyway, they aren't supposed to be conflicting with each other. Which of them will get used depends on your motherboard and how you boot though. Also installing the packages doesn't mean they will be available for booting. You need to install them to your boot disk (or EFI System Partition) with different `grub2-install` commands. The names I mentioned (`i386-pc`, `i368-efi`, `x86_64-efi`) are the ones you used when you specify the `--target` parameter. – Tom Yan Mar 21 '16 at 05:16
  • Thank you. My apologies for being dense... It appears that each of the 3 packages you listed are themselves available for 'download' in amd64 or i386 'versions'. For example, when clicking on the grub-efi-amd64 link, there is an option to 'download' either amd64 or i386 sources. Can you help me understand ? – goofology Mar 21 '16 at 05:23
  • Can't paste screenshots in comment... But...Download grub-efi-amd64 Architecture amd64 63.7 kB 184.0 kB [list of files] i386 63.7 kB 184.0 kB [list of files]. Are there actually different 'architectures' sources for the efi-amd64? File sizes and names are the same – goofology Mar 21 '16 at 05:30
  • Well that 'architectures'/'versions' is talking about your Ubuntu, or in order word, the (CPU) architecture that grub was built against. It's mainly about the binaries you used to install/configure grub (e.g. `grub2-install`). – Tom Yan Mar 21 '16 at 05:42
  • It's unlikely that `grub-pc` (`i386-pc`) will do any good; that's a BIOS-mode boot loader, and if the firmware supports launching it, the firmware should also support launching the BIOS-mode Windows boot loader, too, so you might as well just use that and do a full-up BIOS-mode install. The only reason I can think of to favor GRUB over the Windows boot loader for launching the Windows kernel is if you have Windows installed on a GPT disk, since the Windows BIOS-mode boot loader doesn't support that type of installation. Even then, I don't know if GRUB would do any better. – Rod Smith Mar 21 '16 at 14:33
  • In my particular circumstance, all I have to work with is 32-bit EFI BIOS. No CSM. :( oh well – goofology Mar 21 '16 at 14:52

1 Answers1

4

No problema...

Just create a USB boot device partitioned as GPT with a ESP partition formated with FAT32

Put in the USB drive the EFI structure to boot GRUB2 from 32 bits

/EFI/boot/bootia32.efi
/boot/grub/grub.cfg

put a WinPE.iso in the USB drive...
put your WindowsXX x64 iso in the USB drive...
configure GRUB2 to boot this WinPE...

I recomend Win10PE SE (http://theoven.org/index.php?topic=1336.0)

after boot from this PE iso...
mount the Windows iso as a drive (in Windows 10 just double click it),
launch WinNTSetup.exe,
fill the info in WinNtSetup from origin (the mounted Windows iso)
and destination (the drive you want to install to)

If everything went OK... the instalations is done

There is one more step you may have to do if windows is not booting...
(this can happen if firmware is trying to find bootia32.efi instead of bootx64.efi)

Boot from USB again...
format the GPT/ESP partition windows created (you must un-hide it first)
create a EFI structure (just as you did in the USB drive)
copy also GRUB2 to this partition...

(just be carefull to not touch the NTFS partition where windows is installed)

Create a GRUB2 entry to launch Windows (by BOOTMGR in the FAT32 partition is the best option)...

If you have problems you can alse copy the BOOTMGR to the NTFS partition
also the \boot folder...

and edit the BCD to point to the BOOTMGR you just copied to NTFS partition...

Hope you solve the problem...
Bye...

ZEE
  • 918
  • 5
  • 19
  • 32
  • I knew it!! Will test and report back! – goofology Jun 19 '16 at 22:34
  • I have not tested. Repurposed the machine with no need for x64 – goofology Sep 30 '16 at 19:34
  • can you please clarify how should I configure grub to boot a windows ISO? – Iman Akbari Feb 10 '17 at 10:29
  • 1
    to boot a .iso configure grub to load the .iso in memory and chainload to .iso (just google it)... if it gives you problems you chan chainload to grub4dos and map the .iso to memory and, again, chainload to it... – ZEE Feb 10 '17 at 16:35
  • Did anyone tried this? I really want Windows 7 64 bit on my ASUS tablet, currently I'm stuck with 32 bit Windows 8-10 which I don't like at all. – Sam Jun 27 '17 at 18:37
  • @ZEE, can you specify the commands for installing GRUB2? I don't know which files to copy. What does your `grub.cfg` look like? – XP1 Nov 01 '17 at 14:58
  • @ZEE, I am confused on your GRUB setup and how you got GRUB to work. This guide says that `ntldr` and `bootmgr` are only available in BIOS-MBR mode, not UEFI mode: [https://wiki.archlinux.org/index.php/GRUB#Windows_installed_in_BIOS-MBR_mode](https://wiki.archlinux.org/index.php/GRUB#Windows_installed_in_BIOS-MBR_mode) – XP1 Nov 02 '17 at 04:37