64-bit Windows installed on a 64-bit processor running 32-bit UEFI firmware
64-bit Windows installed on a 64-bit processor running 32-bit UEFI firmware
I recently acquired an ASUS T100TAR and have been experimenting with it. It seems like a solid option to pack for trips, though I encountered a problem during the Windows setup. Since the device wasn’t reset, I looked up its processor model and discovered it supports 64-bit. I attempted to install 64-bit Windows 10, but after some time realized the UEFI is only 32-bit. While 32-bit Windows works, I’m mainly interested in a 64-bit installation for learning purposes. A few online searches suggested it’s possible using Linux through GRUB, and I found a guide that might help. I wanted to check if anyone has successfully done this before, hoping someone can provide more insight. I understand 32-bit versions are smaller and may run slightly faster, but my aim here is to gain knowledge, not just speed up the device.
Windows is Windows. Microsoft doesn't typically do fancy things to Windows unless they are good reasons or perceived value to it. Microsoft doesn't focus on that odd system configuration. Typically, if your system is 64-bit capable, then the board it is associated with would have a 64-bit enabled UEFI. However, in your case, probably ASUS wanted to save every penny it can, being an ultra budget system, so the smallest capacity memory chip was used for the UEFI. As the system was aimed to run 32-bit OS, it was a perfect fit. 32-bit UEFI is smaller than the 64-bit variant, so they went with that. As the UEFI is 32-bit, the boot loader that would be installed by the OS, would be 32-bit, which in turn, would normally, be able to only interact with 32-bit programs/files, and so it could only start a 32-bit OS (Windows, in this case). Keep in mind that OEM systems tend to be designed for specific configurations that they sale their system, they don't assume CPU models, graphics card, and so on, that won't be sold. They only design their system hardware based on what they know for sure before hand, or potentially later on, based on competition and market response. (This is also why OEM system, back in the BIOS days, were always faster to startup than custom build systems. The system knew exactly its hardware, so no or limited detection were needed during the POST stages). So Microsoft assumes that if you install 64-bit Windows, than everything is 64-bit compatible. So the bootloader is 64-bit and is designed to interact with 64-bit files/programs to get the OS to start. Linux world is a bit different. Being open source, many things have features with no or very limited values in the real world. This is because it is open source, if someone wants to showoff it's coding skills, they essentially can. If someone has a specific situation that is unique to them, then there is no business case that needs to be done to justify the work needed, a dev can just do it. As a result, someone implemented GRUB to support 64-bit booting despite being itself in 32-bit. It's probably a lot of hack. But this is part of the reason the saying "you can install Linux on anything, even a microwave" holds mostly true. It's because you have all these niche cases that are taken into considerations done by developers on their free time to make it work. As for Microsoft, they just go: "While cool and all, this affect 6 people at most in our billions users case.... they can install 32-bit version, which would better suit their system specs in any case, or buy a used/new system that better fits their needs... we are not going to spend hundred of thousands of dollars in engineer time to work on this... beside we have drag and drop support to add on the taskbar, which we think is more important to the majority of our Windows 11 users". So essentially this the story. Now on how GRUB can do this, I don't know. I have to look at the source code, and try and understand.
It seems like you're ready to try this out. I'll do my best to help and adjust as needed.
It doesn't make sense for a vendor to install a 64-bit CPU on a system that only has a 32-bit UEFI. EFI started with IA-64, which isn't backward compatible with IA-32. The purpose of 32-bit UEFI isn't clear either—it seems outdated since both AMD and Intel discontinued 32-bit X68 processors before Windows 8.
My system has a 64-bit processor and came with Windows 8, along with a 32-bit UEFI setup. It’s obvious the configuration was made at that time.
I understand I'm reposting an old post in a thread that’s already been searched for, but since it appears to be relevant, I thought it could still assist others. The most straightforward approach to start a 64-bit Windows on a PC with a 32-bit UEFI is using another bootloader—Clover works well for this. Launching Clover from a USB drive is simple, though setting it up from an HDD partition is a bit more involved. I’ve relied on this method for years and it functions reliably. Today I’m curious if there are additional solutions that could be included in an ISO file, but my search so far has only returned discussions about motherboard design and Linux compatibility without any straightforward answers, even suggesting Clover as a potential fix.