Jump to content

64-bit windows on 64-bit processor with 32-bit UEFI?

Go to solution Solved by GoodBytes,

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.

I recently found an ASUS T100TAR and I have been playing around with it. So far I think it'd be a competent machine to chuck in my bag when I'm headed somewhere, that said I ran into an issue when installing Windows. The device hadn't been reset so I searched for the processor model and found that it was 64-bit capable and tried to install 64-bit Windows 10 only to discover after a short time that it's UEFI is only 32-bit. 32-bit Windows 10 runs fine but now mostly just for the sake of learning I'd like to know if I can somehow have a 64-bit Windows installation despite the UEFI being 32-bit. A few quick internet searches revealed this is doable with Linux via GRUB somehow and I found a "guide" here to follow which in theory should work, but I wanted to run this passed anyone here first to see if anyone's done this before and could better assist me. I'm fully aware that 32-bit windows is smaller and probably runs a bit faster on it but my goal here isn't "make device go brrrr" it's learning and trying things out.

Link to comment
Share on other sites

Link to post
Share on other sites

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.

Link to comment
Share on other sites

Link to post
Share on other sites

5 hours ago, GoodBytes said:

someone implemented GRUB to support 64-bit booting despite being itself in 32-bit...how GRUB can do this, I don't know.

Ok so it sounds like this is something I can do, I just gotta mess about and find out. I'll likely follow that "guide" to the best of my ability and see what I need to tweak as I go.

Link to comment
Share on other sites

Link to post
Share on other sites

21 hours ago, HeroRareheart said:

Ok so it sounds like this is something I can do, I just gotta mess about and find out. I'll likely follow that "guide" to the best of my ability and see what I need to tweak as I go.

I don't why a Vendor would install a 64-Bit CPU on a System w/ only a 32-bit UEFI in the first place. Or since EFI was first used with IA-64 which wasn't backward compatible with IA-32 at all. What would be the use case for 32-bit UEFI anyway?

 

Both AMD and Intel stopped making 32-bit x68 CPUs before Windows 8 even came out.

Link to comment
Share on other sites

Link to post
Share on other sites

23 hours ago, whm1974 said:

I don't why a Vendor would install a 64-Bit CPU on a System w/ only a 32-bit UEFI in the first place. Or since EFI was first used with IA-64 which wasn't backward compatible with IA-32 at all. What would be the use case for 32-bit UEFI anyway?

 

Both AMD and Intel stopped making 32-bit x68 CPUs before Windows 8 even came out.

Well I have a 64-bit capable machine that shipped with windows 8 and a 32-bit UEFI so it clearly was done.

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, HeroRareheart said:

Well I have a 64-bit capable machine that shipped with windows 8 and a 32-bit UEFI so it clearly was done.

Is it a WinRT Computer/Tablet? I recall that being short lived due to buyers returning them to Stores. One of those Atom 64 bit systems? Couldn't even run Linux?

Link to comment
Share on other sites

Link to post
Share on other sites

23 hours ago, whm1974 said:

Is it a WinRT Computer/Tablet? I recall that being short lived due to buyers returning them to Stores. One of those Atom 64 bit systems? Couldn't even run Linux?

Yup, made by ASUS. I don't see why it couldn't run Linux though.

Link to comment
Share on other sites

Link to post
Share on other sites

4 hours ago, HeroRareheart said:

Yup, made by ASUS. I don't see why it couldn't run Linux though.

Intel didn't provide support or any details at all for Linux developers.

Link to comment
Share on other sites

Link to post
Share on other sites

  • 1 year later...

I realize I'm necroposting in a dead thread but since it's one of the first search results when you google the issue, I figured it might help someone in the future. 

 

The easiest way to boot a 64-bit windows on a PC with a 32-bit UEFI is to just use another bootloader, clover does it quite well. Booting Clover from a USB is child's play but it's obviously preferable to boot it from a partition on your HDD, which requires a bit more finagling.

 

I've been using this method for years and it works like a charm. I was wondering today whether there were any other workarounds that could be slipstreamed into an ISO but all I found in my search was something like this thread: people talking about how and why these motherboards exist and how different things are on Linux without anyone offering solutions, even ones as simple as just using Clover.

Link to comment
Share on other sites

Link to post
Share on other sites

On 1/31/2023 at 5:09 PM, Gee2theBee said:

I realize I'm necroposting in a dead thread but since it's one of the first search results when you google the issue, I figured it might help someone in the future. 

 

The easiest way to boot a 64-bit windows on a PC with a 32-bit UEFI is to just use another bootloader, clover does it quite well. Booting Clover from a USB is child's play but it's obviously preferable to boot it from a partition on your HDD, which requires a bit more finagling.

 

I've been using this method for years and it works like a charm. I was wondering today whether there were any other workarounds that could be slipstreamed into an ISO but all I found in my search was something like this thread: people talking about how and why these motherboards exist and how different things are on Linux without anyone offering solutions, even ones as simple as just using Clover.

I ended up using Linux Mint in the end.

Link to comment
Share on other sites

Link to post
Share on other sites

  • 7 months later...
On 1/31/2023 at 11:09 PM, Gee2theBee said:

I realize I'm necroposting in a dead thread but since it's one of the first search results when you google the issue, I figured it might help someone in the future. 

 

The easiest way to boot a 64-bit windows on a PC with a 32-bit UEFI is to just use another bootloader, clover does it quite well. Booting Clover from a USB is child's play but it's obviously preferable to boot it from a partition on your HDD, which requires a bit more finagling.

 

I've been using this method for years and it works like a charm. I was wondering today whether there were any other workarounds that could be slipstreamed into an ISO but all I found in my search was something like this thread: people talking about how and why these motherboards exist and how different things are on Linux without anyone offering solutions, even ones as simple as just using Clover.

Hi, can you share how you did it? With a couple of points what is to do.

I need win 8 x64 on uefi 32bit tablet. It is lenovo yoga tab 2 (1051L). I use that tablet in workshop, because it is so handy and portable, but many new apps are nowadays 64 bit only. I tried linux couple of times, but it is so lazy and slow. Windows 8 are great system for this kind of tablet.

Thanks standal

Link to comment
Share on other sites

Link to post
Share on other sites

  • 4 weeks later...
On 10/3/2023 at 10:38 AM, standal said:

Hi, can you share how you did it?

Unfortunately I gave up on Windows and used Linux, as Grub, the most common boot loader for Linux, is 32-bit but supports booting 64-bit OSes. Hopefully @Gee2theBee can respond and give you more details as to how to use clover for this.

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×