Making XP work with Apple’s EFI

Macintel Articles @ NeoSmart:

What’s wrong with us!? With me? Windows was my first OS, yet it never crossed my mind to modify Windows to work on EFI? Instead I’ve been taking the super-long, weary, and winding road of getting an iMac to become BIOS compatible. Well, I’m back on familiar terrain, modding XP is where I think I can make it work. Instead of using BIOS emulators or chain-bootloaders and what not, how about just making XP run on EFI? What is NTLDR??

To put it real simple, the NTLDR is activated by the BIOS in order to boot an NT-based OS. NT based OSes include Windows XP, our current focus. NTLDR requires a bootsector in the MBR. EFI requires that a null MBR exist, so using fixntfs as highlighted in my previous post activates the MBR, and allows the booting of XP. After you activate NTLDR, ntdetect.com is run, which gathers hardware information and creates the low-level hardware information layer, which in turn is where Windows XP sends its BIOS-related commands! From Wikipedia:

NTLDR runs ntdetect.com, which gathers information about the computer’s hardware (if ntdetect hangs during hardware detection there is a debug version called ntdetect.chk which can be found on Microsoft support […] Starts ntoskrnl.exe, passing to it the information returned by ntdetect.com.

All of these are low-level system programs. The *likelihood* of them being compiled for access only on x64 platforms is very low. What this means is, if you can get NTLDR and ntdetect.com from an x64 machine, you might be able to replace the original XP x86 files with these. Why would you want to do that? Well, ntoskernel.exe is the actual “Windows” so to speak.

Unfortunately the kernel used in x64 is NT version 5.2 while XP uses 5.1. Either way, ntoskernel.exe on x64 is compiled strictly for x64, it won’t run on x86 systems. The way I see it, if you use NTLDR and ntdetect.com from a x64 machine instead of the ones on your x86 copy it should work to let Windows XP not BSOD!! BTW, further proof that they will run and not hang is that on a system with dual boot x64 and x86 (a PC, not a Mac), these files are used by x86 as well.

What this all adds up to is, the NTLDR and ntdetect.com on x64 have EFI compatibility, and they run on x86 too! If you use these steps together with my previsou “outline” of getting XP to boot on a Macintel, you might just be getting somewhere.

[digg] [x64 ntldr and ntdetect]

  • Similar Posts

    Craving more? Here are some posts a vector similarity search turns up as being relevant or similar from our catalog you might also enjoy.
    1. Windows XP on Mac?
    2. Hardware Hacks: Macintel XP
    3. EasyLDR and EasyBCD 2.0's New XP Support
    4. CRN Dead Wrong About Macintel Exploits
    5. 15 Years to Pick an OS
  • 22 thoughts on “Making XP work with Apple’s EFI

    1. Thank you so very much.
      Now just to get me an iMac to test it on πŸ˜›
      Anyway, yeah, I’ll be uploading them to the NeoSmart FTP server for anyone who wants to test them and not mess with RapidShare. Thanks again x64 User πŸ™‚

    2. No worries. Would be interesting to see if this actually works, I sure hope it does since my friend is lost forever otherwise (by lost i mean stuck on OS X

    3. But I’m not focusing on IA64 here πŸ™‚
      I’m talking about Windows XP Professional x64… which *does* use NTLDR AFAIK.. when I installed it at work (before the Museum I worked for went belly-up) I’m 100% certain it registered with NTLDR? :S

    4. “Ntldr” for The x86-based loader.
      and the loader for Itanium-based versions is “IA64ldr.efi”

    5. I see… OK, can’t we use the x64 EFI files then?
      It’s bound to be better than using Vista’s EFI files, because Vista’s EFI is not done yet πŸ™‚

      {I’m stuborn as a mule, and *never* give up.. There is always an out… I hope :))

    6. OK wait.. Now you lost me.
      I was operating under the assumption that Windows XP Professional x64 was EFI compatible. That’s what everyone is saying, isn’t it?

    7. hmm well, i think that IA64ldr.efi is only for 64bit CPU’s
      i really think that we have to find another way ! its not the good way at all ..
      the good way to run winXP , is to be able to make CSM module working
      i don’t know how but for me is the only way that will make winXP booting on intel mac!
      have a look there :
      download.microsoft.com/download/1/8/f/18f8cee2-0b64-41f2-893d-a6f2295b40c8/TW04023_WINHEC2004.ppt

      somewhere they tell that ” Gateway Media Center 600, shipping with Insyde?s implementation of the Framework boots Windows XP”
      (Insyde = http://www.insydeh2o.com)

    8. and this Gateway Media Center has an EFI boot, but use the CSM to be able to boot winXP and winXP even if 64bit (EMT64) dont support EFI, then in this case,
      the hardware use EFI but it use CSM to boot winXP and winXP then work normaly and think that it is running on a BIOS but its only a BIOS emulation …

    9. OK, well that makes sense….
      I don’t really mind that this prolly won’t work, this is my second day on the case… and without an iMac πŸ˜€
      So for me it’s a learning experience, gathering info, learning how not to do it, then getting it right πŸ™‚
      Thanks for all the help thus far Yaniv.

    10. Sounds to me like that “Gateway Media Center 600” is the most promising possibility thus far, assuming (1) it uses an Intel 945 chipset and (2) it ships soon–Gateway.com lists no such product as of 9:45 PM CST 1/30/2006. And that will require adapting its Insyde BRD ROM chip to the Apple mainboard, if such is even physically possible.

      The problem I’m seeing is, until Vista is available, only Itanium versions of Windows can run on EFI–and currently that means Server 2003 Enterprise Edition ONLY:

      “NOTE
      The EFI specification, currently implemented for Itanium-based systems only, defines a new model for the interface between operating systems and platform firmware. For more information about EFI, see the Extensible Firmware Interface link on the Web Resources page at http://www.microsoft.com/windows/reskits/webresources .”
      (from http://www.microsoft.com/mspress/books/sampchap/6795.asp#106)

      “Q. Can I run Windows XP Professional X64 Edition on my Itanium Workstation?
      A. No. The Itanium processor is a 64-bit processor that has a different architecture than the x64 processors. A version of Windows XP for the Itanium processor is no longer available. Windows Server 2003 Enterprise Edition continues to support the Itanium processor.”
      (from http://www.microsoft.com/windowsxp/using/64bit/russel_x64faq.mspx)

    11. okay… just curious about this but if true that there are some MCE boxes shipping with EFI support could we not just grab the setup files from that and throw them into an XP Pro ISO? I know the installer is basically the one for XP Pro anyway so it shouldn’t be a problem.

    12. No. πŸ™
      Apple broke the EFI standards. EFI requires that you ship it with Legacy BIOS support and MBR as well as GPT. AFAIK iMacs don’t ship with the BIOS (which should be fine as far as the EFI version of Windows), but I believe it still uses GPT πŸ™

    13. Wow, I’ve been reading up on this to see how close we’re coming to an actual solution, and it still looks light-years. Also M$ announced they want to make VPC for intel macs, which is just moneygrubbing greed. There is no reason to engineer Vista so that mac users have to buy VPC and Windows on an intel mac that supports efi! I commend you all for not giving up, yet it seems every path you take is cut off at some point. I wish you all luck, and hope that a breakthrough success occurs soon.

      fmraplrep

      (and yes, I quit the fruit for ethical reasons)

    14. This all seems ever intresting but earlyer didnt you go on about setting up a bios like thing for mactel? i think that post has been removed… so what you are saing now is mactel uses a new system for booting insted of the old bios system… Any one a software enginer here?

    15. Nope, not at all.

      There is another post about the BIOS… It’s the "Hardware Hacks for Macintosh" Page at the top of the screen πŸ˜‰
      I am a software engineer, but I don’t have a Macintel… Sorry Embarassed

    Leave a Reply

    Your email address will not be published. Required fields are marked *