Elektroda.com
Elektroda.com
X

[Solved] Windows XP 64-bit & 32-bit: EFI Compatibility, GPT Partitions, Booting & Dual Boot Guide

Gelip 11289 20
This content has been translated flag-pl » flag-en View the original version here.
  • #1
    Gelip
    Level 34  
    WinXP x64 supports GPT partitions, but apparently cannot boot from such a partition.

    As you know, his younger brother - Win7 x64 supports EFI, including booting. Win7 creates 3 partitions during installation including one 100MB FAT32 EFI. WinXP cannot create such partitions during installation, but I got the idea and did this:
    [*: d43939c208] in VMware EFI 64 virtual machine I installed Win7 x64
    [*: d43939c208] after booting the system I added an entry to the BCD that starts WinXP - according to this guide -> How to dual boot Windows 7 and Windows XP using BCD
    [*: d43939c208] using LiveCD I made NTFS format of the third partition with Win7
    [*: d43939c208] I installed WinXP x64 in the second virtual machine
    [*: d43939c208] copied all files and directories from C: WinXP x64 drive to Win7 drive (third partition)
    [/ list: u: d43939c208] After these steps I have a Win7 machine with WinXP files on NTFS 20GB partition (below .VMDK drive mounted using vboot on WinXP x64 host system):
    DISKPART> list disk
    
      Disk ###  Status      Size     Free     Dyn  Gpt
      --------  ----------  -------  -------  ---  ---
      Disk 0    Online       298 GB      0 B
      Disk 1    Online        20 GB  2015 KB        *
    
    DISKPART> select disk 1
    
    Disk 1 is now the selected disk.
    
    DISKPART> list partition
    
      Partition ###  Type              Size     Offset
      -------------  ----------------  -------  -------
      Partition 1    System             100 MB  1024 KB
      Partition 2    Reserved           128 MB   101 MB
      Partition 3    Primary             20 GB   229 MB

    The machine starts in EFI64 from the EFI 100MB partition, the boot manager starts with a list of systems to choose from:
    Windows XP 64-bit & 32-bit: EFI Compatibility, GPT Partitions, Booting & Dual Boot Guide
    but when selecting WinXP I get the error:
    Windows XP 64-bit & 32-bit: EFI Compatibility, GPT Partitions, Booting & Dual Boot Guide

    Does this error mean the bootloader doesn't know where the file is ntldr (I edited the BCD file incorrectly) or is this loader just not working under EFI?
  • #2
    Prot
    Level 38  
    Gelip wrote:
    I installed WinXP x64 in the second virtual machine

    I copied all files and directories from C: WinXP x64 to Win7


    But I guess in BIOS mode this WinXP installation :?:

    Copying files? Are you transferring a disk image from XP :?: If the image, what modifications to the entries have you made in the MBR and bootsector regarding the system boot?

    It's common knowledge that older Windows systems cannot boot using UEFI - you want to deny this point :?:
  • #3
    Gelip
    Level 34  
    Prot wrote:
    But I guess in BIOS mode this WinXP installation :?:

    Of course, in BIOS mode, EFI cannot be installed.
    Prot wrote:
    Copying files? Are you transferring a disk image from XP :?:

    I clearly stated that I copied the files and not restored the image.
    Prot wrote:
    It's common knowledge that older Windows systems cannot boot using UEFI - you want to deny this point :?:

    No - I do not want to deny but find out where the limitation is because, for example, Windows 7 x64 can be installed in both BIOS and EFI mode and after the system starts it uses the same .dll or .exe files in both BIOS mode and EFI. Besides, even WinXP does not use BIOS device drivers, only its own. I think it's just a matter of bootloader because WinXP 64-bit for Itanium architecture supports booting from EFI using a file IA64ldr.efi :
    Quote:


    Edited
    ========
    However, there was a bug in BCD because after booting the machine from DVD-ISO Win7 and selecting the option Fix the computer :
    Windows XP 64-bit & 32-bit: EFI Compatibility, GPT Partitions, Booting & Dual Boot Guide
    the installer repaired my BCD entries, but probably only the one regarding the location of Windows 7. However, the WinXP entry is either still bad because the option Fix the computer from Win7 or Vista disc can not repair older systems either and / or ntldr from WinXP x64 does not support EFI because now after the repair I have something like this:
    Windows XP 64-bit & 32-bit: EFI Compatibility, GPT Partitions, Booting & Dual Boot Guide
  • #5
    Gelip
    Level 34  
    Prot wrote:
    I suggest you review the article about the intricacies of dual booting Windows i limitations :cry: related to the input / output interface (BIOS vs UEFI), and the type of disk partition (MBR vs GPT) :idea: - https://wiki.archlinux.org/index.php/Dual_boot_with_Windows

    Yes, officially everything is correct - what can the system do, but while investigating the topic I came across a 32-bit beta version - something between WinXP and WinVista, and more precisely Windows Longhorn (Vista Beta 1 5112):
    Windows XP 64-bit & 32-bit: EFI Compatibility, GPT Partitions, Booting & Dual Boot Guide
    which when installed in BIOS mode has some files .efi In the catalogue C: \ Boot :
    Windows XP 64-bit & 32-bit: EFI Compatibility, GPT Partitions, Booting & Dual Boot Guide
    I try to use it in EFI somehow, but it doesn't work very well because the CD doesn't boot in EFI mode. Program winnvram.efi has the following syntax:
    Windows XP 64-bit & 32-bit: EFI Compatibility, GPT Partitions, Booting & Dual Boot Guide
    but I don't know if the system should be on a regular MBR or GPT partition - the system certainly supports GPT partitions because diskpart whether diskmgmt.msc recognizes GPT correctly.
  • #7
    Gelip
    Level 34  
    Files winldfw.efi and winnvram.efi they are also in WinXP Media Center in Gateway 610 in directory only C: \ Boot \ EFI \ Microsoft \ Boot on an NTFS partition. It was probably one of the first computers with EFI firmware and 32-bit:
    Intel and Microsoft are set to start pitching "EFI"
    Quote:
    Gateway, which uses EFI in its all-in-one Gateway 610 Media Center desktop , said it chose to do so because EFI proved a more efficient way to code preboot software and can also help to improve the product from a long-term development perspective, a company representative said.

    Quote:
    Intel and Microsoft will also promote EFI by supporting it with their products. Microsoft will support EFI in Longhorn , its next version of the Windows operating system.

    Windows XP Pro SP2 DOES have EFI Support
    Windows XP 64-bit & 32-bit: EFI Compatibility, GPT Partitions, Booting & Dual Boot Guide Windows XP 64-bit & 32-bit: EFI Compatibility, GPT Partitions, Booting & Dual Boot Guide
    Only, I don't know whether the computer had the Legacy BIOS option in EFI or maybe Microsoft added support for EFI in WinXP in this case?

    Very interesting things:
    Microsoft - Firmware Design
    UEFIrequirements.doc
    EFI - The BIOS Replacement
    This is what it looks like EFI Boot Manager on a computer with Insyde EFI firmware:
    Windows XP 64-bit & 32-bit: EFI Compatibility, GPT Partitions, Booting & Dual Boot Guide
    from the document (Power Point) - TW04023_WINHEC2004.ppt Implementing EFI on 32-bit Systems , it appears that Insyde has implemented WinXP boot from EFI:
    Windows XP 64-bit & 32-bit: EFI Compatibility, GPT Partitions, Booting & Dual Boot Guide
    I found the firmware of this 610 and using UEFITool I extracted several EFI modules, e.g. Csm16 and LegacyBios :
    Windows XP 64-bit & 32-bit: EFI Compatibility, GPT Partitions, Booting & Dual Boot Guide Windows XP 64-bit & 32-bit: EFI Compatibility, GPT Partitions, Booting & Dual Boot Guide
    so it looks like WinXP is booting on this Gateway 610 thanks to CSM and this framework is nothing but CSM:
    Intel(R) Platform Innovation Framework for UEFI - Compatibility Support Module Specification
  • #8
    Gelip
    Level 34  
    The topic was originally about WinXP 64-bit but this post is about WinXP x86

    Test versions of Vista are practically improved WinXP and it turns out that WinXP SP3 can be launched from the EFI bios. It is possible thanks to two files from the test version of the system Vista (Longhorn 6.0.5219.0) (beta2) . These files must be extracted from the ISO image from the location:
    install.wim\Windows\System32\winload.efi
    install.wim\Boot\EFI\Microsoft\BootMgr\bootmgfw.efi

    Tested in VMware Workstation 8 - of course in EFI32 mode.
    [letter: bc67a9acf6] [*: bc67a9acf6] create a machine with a disk, e.g. 3GB
    [*: bc67a9acf6] we create two primary partitions on the disk - 100MB FAT32 active and the rest 2, something NTFS
    [*: bc67a9acf6] install WinXP SP3 in regular bios on partition 2, something GB
    [*: bc67a9acf6] after installation on a 100MB partition, create a folder EFI \ Boot and put the file there bootmgfw.efi changing its name to bootia32.efi
    [*: bc67a9acf6] file winload.efi copy to Windows \ System32 on the second partition
    [*: bc67a9acf6] on a 100MB partition we have a file boot.ini and edit it to look like this:
    [boot loader]
    timeout=30
    NOBCD
    default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
    [operating systems]
    multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /usenewloader
    [/ letter: u: bc67a9acf6]
    System boots but BSOD occurs 0x00000050 framebuf.dll :
    Windows XP 64-bit & 32-bit: EFI Compatibility, GPT Partitions, Booting & Dual Boot Guide
    https://www.youtube.com/watch?v=eCTF0C2bOuA " target="_blank" rel="noopener nofollow ugc" title="http:// https://www.youtube.com/watch?v=eCTF0C2bOuA " class="postlink inline-block "> https://www.youtube.com/watch?v=eCTF0C2bOuA
    Windows XP 64-bit & 32-bit: EFI Compatibility, GPT Partitions, Booting & Dual Boot Guide

    Officially VMware 8 does not support EFI, but just extract the EFI32 firmware (resource 6020) from the file vmware-vmx.exe and add this entry to the machine configuration file .vmx:
    firmware = "efi"
    efi32.filename = "6020.bin"
  • #9
    Gelip
    Level 34  
    From what I found a bug STOP 0x00000050 causes VMware. Here's a topic that covers the same BSOD that occurs with a non- 5219 test version of Vista 5231 in VMware:
    Vista 5231 error in VMware player
    Apparently the version VMware Workstation 7.1.4 in mode Hardware Compatibility 6 works correctly with the test version of Vista and this error is not present, only that Vista was installed probably in BIOS mode, not EFI, but since the same error appeared in VMware EFI32 in WinXP 32-bit, it is possible that in the EFI version on VMware 7.1. 4 error 0x00000050 it will not:
    https://www.betaarchive.com/forum/viewtopic.php?p=392188#p392188 " target="_blank" rel="noopener nofollow ugc" title="http:// https://www.betaarchive.com/forum/viewtopic.php?p=392188#p392188 " class="postlink inline-block "> https://www.betaarchive.com/forum/viewtopic.php?p=392188#p392188 :
    Windows XP 64-bit & 32-bit: EFI Compatibility, GPT Partitions, Booting & Dual Boot Guide

    In laptops there is mostly EFI64. There were a few exceptions from the EFI32. If someone has one, he can test the operation of WinXP 32-bit.

    On laptops with EFI64, you can only try WinXP 64-bit installations, but you need 64-bit EFI boot files. I did not find the test version of the 64-bit 5219 and it probably wasn't. However, there were such 64-bit test versions and it is possible that the appropriate files are there:
    [*: be6eca52a4] Windows Longhorn (6.0.5112.0) (x64 beta1)
    [*: be6eca52a4] Windows Longhorn (6.0.5231.2) (x64 beta2) [/ list: u: be6eca52a4]
    Win7 64-bit EFI files are not suitable because the Win7 loader works in conjunction with the BCD not Boot.ini :
    Windows XP 64-bit & 32-bit: EFI Compatibility, GPT Partitions, Booting & Dual Boot Guide

    Added after 5 [hours] 6 [minutes]:

    Unfortunately, it all sucks:
    [*: be6eca52a4] 64 bit Vista 5112 has no EFI files
    [*: be6eca52a4] The 64-bit version of Vista 5231 has EFI files but 32-bit (weird)
    [*: be6eca52a4] na VMware Workstation 7.1.4 WinXP x86 still fires with an error 0x00000050 [/ letter: u: be6eca52a4]
    The only way to check if WinXP SP3 will run in EFI32 is hardware with EFI32 firmware, e.g. Lenovo Ideapad flex 10 with 32-bit bios (93cn19ww.exe) - Lenovo Flex 10 BIOS Update Issue

    If someone has it, he can test ;-)

    Added after 8 [hours] 32 [minutes]:

    However, you can boot like WinXP in EFI. Here is my post on another forum:
    Does Windows XP have EFI?
    I was able to run Windows Server 2003 R2 SP2 x86 in VMware Workstation 7.1.4 with EFI32 bios. I used the same EFI files as for WinXP SP3, i.e. from Vista beta2. How we turn on the service Themes the system looks like WinXP :D :
    Windows XP 64-bit & 32-bit: EFI Compatibility, GPT Partitions, Booting & Dual Boot Guide



    I found out from an unofficial source that the w2k3R2 system has improved HAL drivers to work with EFI, i.e. files such as framebuf.dll, hal.dll, halmacpi.dll, ntoskrnl.exe e.t.c.

    Added after 10 [hours] 7 [minutes]:

    I did new tests. If the EFI32 firmware has an integrated NTFS driver (as in this case) then only one active MBR primary partition is enough to run Windows 2k3 in EFI32 mode:
    Windows XP 64-bit & 32-bit: EFI Compatibility, GPT Partitions, Booting & Dual Boot Guide
    You don't need any EFI FAT32 partition or GPT disk as it needs Win7 and above. You can switch between EFI and BIOS at any time and the system will start up without a problem :D The best way to switch is in the machine's configuration file .vmx by adding or removing the comment, e.g. with a character # :

    To boot in EFI mode:
    firmware = "efi"
    efi32.filename = "6020_ntfs.bin"

    Windows XP 64-bit & 32-bit: EFI Compatibility, GPT Partitions, Booting & Dual Boot Guide

    To boot in BIOS mode:
    #firmware = "efi"
    #efi32.filename = "6020_ntfs.bin"

    Windows XP 64-bit & 32-bit: EFI Compatibility, GPT Partitions, Booting & Dual Boot Guide

    Oh. And that's it for VMware Workstation 8.0.2 build-591240 in mode Hardware Compatibility 8
  • #10
    Gelip
    Level 34  
    Gelip wrote:
    No - I do not want to deny but find out where the limitation is because, for example, Windows 7 x64 can be installed in both BIOS and EFI mode and after the system starts it uses the same .dll or .exe files in both BIOS mode and EFI. Anyway, even WinXP doesn't use BIOS device drivers, only its own. I think it's just a matter of the bootloader because WinXP 64-bit for Itanium architecture supports booting from EFI using the IA64ldr.efi file:

    And I was right that it is just a matter of loader because you can run both WinXP x86 SP2 in EFI32 and WinXP x64 SP2 in EFI64. Of course, with the help of a few files from the test versions of Vista Beta2 (Longhorn). Tests were done in VMware Workstation 8. Everything is described in detail in the topic Does Windows XP have EFI? from the post https://www.betaarchive.com/forum/viewtopic.php?p=433345#p433345 " target="_blank" rel="noopener nofollow ugc" title="http:// https://www.betaarchive.com/forum/viewtopic.php?p=433345#p433345 " class="postlink inline-block "> https://www.betaarchive.com/forum/viewtopic.php?p=433345#p433345

    The startup works automatically, but you can also boot the system from EFI Shell :
    Windows XP 64-bit & 32-bit: EFI Compatibility, GPT Partitions, Booting & Dual Boot Guide Windows XP 64-bit & 32-bit: EFI Compatibility, GPT Partitions, Booting & Dual Boot Guide

    The test was also done with one laptop with EFI64 + WinXP x64 but WinXP has a problem with displaying the image. After disabling all graphics drivers, i.e. uninstalling graphics card drivers and disabling services in the registry vga ( vgapnp.sys ) and VgaSave ( vga.sys ) the system starts up and everything works except the screen - you can connect via RDP if you turn on the remote desktop first. Details on betaarchive.com
  • #12
    Gelip
    Level 34  
    This topic of mine has over 2000 views, so there is interest, but somehow no one asks, reports what and how, but there are enthusiasts who to run WinXP 32 or 64-bit (currently in the legacy bios CSM) can hack ACPI tables (DSDT, FACP ), acpi.sys driver, AHCI (SATA) drivers, USB 3.0 and run WinXP on AMD Ryzen CPU :-) - the topic has 150 pages and there we will find drivers for these devices and screenshots confirming the operation:
    https://www.win-raid.com/t4035f45-Windows-XP-SP-bit-and-modern-PC-parts-148.html#msg87122 " target="_blank" rel="noopener nofollow ugc" title="http:// https://www.win-raid.com/t4035f45-Windows-XP-SP-bit-and-modern-PC-parts-148.html#msg87122 " class="postlink inline-block "> https://www.win-raid.com/t4035f45-Windows-XP-SP-bit-and-modern-PC-parts-148.html#msg87122
    Apparently these HD Graphics 4xxx, 5xxx drivers work on XP: Modern hardware drivers for 32bit XP
    Windows XP 64-bit & 32-bit: EFI Compatibility, GPT Partitions, Booting & Dual Boot Guide

    Added after 31 [minutes]:

    PS Like something, here are EFI files for booting WinXP 32 or 64-bit: xp_efi.zip
  • #13
    Gelip
    Level 34  
    Having recently had a lot of free time, I managed to complete the hardware on which the 64-bit WinXP starts and works under UEFI + CSM with a set of drivers. The motherboard is from the era Sandy Bridge for which the manufacturer provided drivers for this system - ASUS P8H61-M_LE R2 with CPU Intel Core i3-2120 3.30GHz. Plus a graphics card AMD Radeon HD6450 with Legacy video ROM.

    Interestingly - they only need to run the system under UEFI four files from the 64-bit test version of Windows Server Longhorn 2008 16497. These files are the loader bootmgfw.efi (renamed to bootx64.efi) and winload.efi, the font file wgl4_boot.ttf, and a BCD file with a few options. As the UEFI bios usually only supports the FAT file system, we need a FAT / FAT32 partition. It can be a flash drive, but it's more convenient as we have a separate partition on the hard drive - I made 100MB without a letter at the beginning of the disk just like the newer Windows installers do, and the system is on the second NTFS partition under the letter C: The partition style is MBR.

    I tested various other disk configurations and it could be either MBR or GPT:
    [*: c6c5491776] MBR, one FAT32 partition e.g. 5GB
    [*: c6c5491776] MBR, one NTFS partition + NTFS driver loaded e.g. from EFI Shell
    [*: c6c5491776] GPT, 100 FAT + NTFS partition per system [/ list: u: c6c5491776]
    It is quite possible that by replacing the graphics card with a newer one - one that has a dual video ROM - legacy and GOP, eg AMD Radeon HD7xxx, it would be possible to run the system in pure UEFI, disabling CSM mode in the bios.
  • #14
    Gelip
    Level 34  
    Gelip wrote:
    It is quite possible that by replacing the graphics card with a newer one - one that has a dual video ROM - legacy and GOP, eg AMD Radeon HD7xxx, it would be possible to run the system in pure UEFI, disabling CSM mode in the bios.

    I checked this with a card that has a GOP - HD7450. WinXP SP2 x64 system installed in legacy MBR I even converted to GPT - windows loader starts but computer restarts and automatically turns on CSM:
    Windows XP 64-bit & 32-bit: EFI Compatibility, GPT Partitions, Booting & Dual Boot Guide
    Again, it is not only about vbios GOP and GPT partition.

    Of course, in UEFI + CSM it starts without any problems with winload.efi from MBR or GPT partition:
    Windows XP 64-bit & 32-bit: EFI Compatibility, GPT Partitions, Booting & Dual Boot Guide

    I also tested WinXP SP2 x86 on Thin Client Igel 4210 VIA C7 AWARD 6.00PG BIOS with UEFI32 DUET emulator. The system starts in UEFI, but it is not pure UEFI because the graphics card does not have a GOP:


  • #15
    Gelip
    Level 34  
    If someone is interested, WinXP SP2 64-bit can be run in pure UEFI class 3 without CSM using the UefiSeven loader: https://www.betaarchive.com/forum/viewtopic.php?p=456492#p456492 " target="_blank" rel="noopener nofollow ugc" title="http:// https://www.betaarchive.com/forum/viewtopic.php?p=456492#p456492 " class="postlink inline-block "> https://www.betaarchive.com/forum/viewtopic.php?p=456492#p456492
    The loader does such a trick that at startup, it inserts an INT10 interrupt call emulator in RAM at C0000 so you can run Win7 64-bit in UEFI without CSM and as it turned out also WinXP 64-bit :D
  • #16
    Gelip
    Level 34  
    A lot of free time again and another success :-)

    Using the EXP GDC 8.5c ExpressCard adapter and the same AMD HD6450 graphics card as in ASUS, I was able to run WinXP 64-bit in UEFI + CSM mode on a ThinkPad X220 laptop: https://www.betaarchive.com/forum /viewtopic.php?p=457234#p457234 " target="_blank" rel="noopener nofollow ugc" title="http:// https://www.betaarchive.com/forum /viewtopic.php?p=457234#p457234 " class="postlink inline-block "> https://www.betaarchive.com/forum /viewtopic.php?p=457234#p457234
  • #17
    omin172
    Level 15  
    And can't you just use GRUB2?
  • #18
    Gelip
    Level 34  
    omin172 wrote:
    And can't you just use GRUB2?

    How?