New
#1
Boot Windows 7/8 from GPT on BIOS system : No hybrid MBRs or DUET!
Hi guys,
Till now, Windows 7/8 x64 could boot from a GPT disk only on a UEFI system. Methods to enable this are hybrid MBRs and DUET. Both of which are hacks.
We now have a simple way to boot windows (BOTH 32bit AND 64 bit) from a GPT disk on a BIOS system WITHOUT hybrid MBRs or DUET, using just a small MBR disk to hold bootmgr, can be HDD or USB stick. It can even be a floppy :) It will just hold the boot files.
GPT is preferable for several reasons, independent of UEFI :
- No 2TiB limit on Hard disk size
- No distinction between primary and logical partitions, and the associated space allocation decisions.
- Partition table is redundantly stored, checked using CRC
- No conflict of partition types
- No need to use the logical partitions which are implemented in an EXTREMELY error-prone manner.
The principle here is simple: Have a ready Windows installation on a partition on a GPT disk. Then add the boot files and boot record to an MBR disk, and add a bootloader entry to the BCD pointing to the Windows installation (more precisely, winload.exe)
First install windows on a GPT disk. This can be done in several ways :
- Install in BIOS mode on MBR and then convert using gptgen
- Install in UEFI mode using DUET. (ONLY for 64-bit!)
- Apply the windows install image (install.wim) using ImageX (Windows 7) or DISM (Windows 8+)on the GPT disk (best)
Next insert the Windows DVD, and that small disk, whatever it may be. Open the command prompt.
Use diskpart to verify for yourself which drives are data drives, and which is your windows boot drive. For safety, I recommend removing the drive letters of all other drives except the windows boot drive, which I'll refer to as C:, using the command :Type the following commands in diskpart. I'll refer to the other disk as Disk 1. It should be self-explanatoryCode:remove
Note down the letter assigned newly in the last list volume. Assume it is D:Code:select disk 1 clean create partition primary [size=##] format select partition k active list volume select volume n assign list volume exit
Install boot files to the drive
Install the bootsectorCode:bcdboot C:\Windows /l en-us /s D:
Edit the BCD for a small tweak (this may not be necessary : experts advice looked forward to)Code:bootsect /nt60 D: /mbr /force
Restart, and boot from the second disk. It should boot smoothly. CheckCode:bcdedit /store D:\boot\bcd /set {bootmgr} device bootfor confirmation of GPT disk.Code:diskmgmt.msc
NOTE : Tested in a VM, not yet tried on a real machine, which I will very soon. Hence I have not made it into a full tutorial. But realistically, it's not really going to fail unless something gets screwed up. Testers also very welcome! but rest assured, none of this is close to as dangerous as a Hybrid MBR. I'll make it into a tutorial once it's tested and no sudden issues are found
I'll be looking for more elegant solutions very soon, such as mapping an image at boot time. But I wanted to tell (announce :) ) to you guys, so that I get some valuable feedback, and improvements, and expert gyaan.
The original thread is here : Hack Bootmgr to boot Windows in BIOS to GPT - Windows 7 - reboot.pro . Credits to cdob and Sha0 from reboot.pro.
Last edited by milindsmart; 23 Aug 2014 at 22:00. Reason: added image install, fixed short "basic principle"