overdue-scratch

Author Topic: Can Chameleon EFI-boot Windows on a GPT-based disk?  (Read 15102 times)

0 Members and 1 Guest are viewing this topic.

naomik

  • Entrant
  • Posts: 3
Can Chameleon EFI-boot Windows on a GPT-based disk?
« on: April 12, 2012, 06:53:25 AM »
Question subject asks it all.  I just need to clear this up so I can eliminate a potential reason for my issue.

Blackosx

  • Forum Moderator
  • Posts: 1150
Re: Can Chameleon EFI-boot Windows on a GPT-based disk?
« Reply #1 on: April 12, 2012, 08:29:04 AM »
naomik - I think dmazar answered your question last night.
http://forum.voodooprojects.org/index.php/topic,2392.msg11813.html#msg11813
10.10.5 / 10.11 GM1 | Asus Maximum IV Gene-Z | i7-2600 3.40GHz | 4GB | Radeon 5770 1GB

dmazar

  • Member
  • Posts: 52
Re: Can Chameleon EFI-boot Windows on a GPT-based disk?
« Reply #2 on: April 12, 2012, 10:03:08 AM »
Well, I understand that this whole thing is a bit confusing: Chameleon boots OSX which can be started only on EFI, but then Chameleon can not start UEFI Windows.

This is my try to add a bit more light to it ...

On our UEFI boards UEFI booting of Win goes like this (Win UEFI installation on GPT disk):
UEFI => \EFI\Microsoft\Boot\Bootmgfw.efi (Win UEFI booter) => Win
Bootmgfw.efi requires UEFI environment. Can not be run in BIOS environment.

BIOS Win booting (legacy BIOS installation on MBR or GPT hybrid disk):
UEFI => BIOS => Win partition booter => Win

OSX boot:
UEFI => BIOS => Chameleon => fake EFI Runtime services => OSX

So, Chameleon does not operate in UEFI, but in BIOS environment. It just fools OSX into believing that it is booted in EFI environment by passing to OSX fake EFI Runtime services. That's enough for OSX to start and run.

Since Chameleon runs in BIOS environment, it can only boot Win in BIOS environment:
UEFI => BIOS => Chameleon => fake EFI Runtime services => OSX
.........................\=> Win partition booter => Win


Ideally, on our boards we need this:
UEFI => some UI boot manager => /System/Library/CoreServices/boot.efi (OSX EFI booter) => OSX
............................\=> \EFI\Microsoft\Boot\Bootmgfw.efi (Win UEFI booter) => Win


but time for this has not come yet.

Edit: just to be more precise, Chameleon does a lot more when booting OSX then just Runtime services: EFI memory map, device tree, ACPI tables patching, SMBIOS patching ...

Edit 2, to be more complete:

There is an option to use UEFI based booters like Clover (http://www.projectosx.com/forum/index.php?showtopic=2304), XPC, iBoot and on our UEFI boards it looks like this:
UEFI => BIOS => Clover/XPC/iBoot UEFI => Clover/XPC/iBoot booter => /S/L/CS/boot.efi (OSX EFI booter) => OSX
................................................................\=> \EFI\M\B\Bootmgfw.efi (Win UEFI booter) => Win


where Clover/XPC/iBoot UEFI is UEFI implementation based on Tianocore DUET, that runs on top of BIOS.
And a note: I did not try to boot UEFI Win through them since I currently do not have one. Plus, never managed to start XPC and iBoot.
« Last Edit: April 12, 2012, 10:37:24 AM by dmazar »

Blackosx

  • Forum Moderator
  • Posts: 1150
Re: Can Chameleon EFI-boot Windows on a GPT-based disk?
« Reply #3 on: April 12, 2012, 10:45:27 AM »
Thanks for the comprehensive description dmazar. This definitely helps me, and I guess others too, visualise the different boot process of the new systems.

And yes, with regard to Clover, гык-sse2 did post that he tested booting UEFI win7/8 but reported a problem with sleep.
10.10.5 / 10.11 GM1 | Asus Maximum IV Gene-Z | i7-2600 3.40GHz | 4GB | Radeon 5770 1GB

dmazar

  • Member
  • Posts: 52
Re: Can Chameleon EFI-boot Windows on a GPT-based disk?
« Reply #4 on: April 12, 2012, 11:39:28 AM »
Well, this UEFI => BIOS switch is transparent to the user, so it all feels like on other boards.

User still has an option to choose from which disk to boot, and if disk is selected, this switches from UEFI to BIOS and starts BIOS boot (BIOS => MBR boot => partition boot ...) from that disk.

When you install Win with UEFI, Win will add "Windows Boot Manager" option to this list of drives and when you select this (or you make it a primary boot option), it will run Bootmgfw.efi in UEFI environment.

BugsB

  • Entrant
  • Posts: 1
Re: Can Chameleon EFI-boot Windows on a GPT-based disk?
« Reply #5 on: December 01, 2013, 01:20:21 PM »
Wow, thank you SOO much, dmazar, I have been looking for a detailed drill-down like this to understand the Mac/ Windows MBR/GPT EFI/UEFI boot processes - awesome!

on BIOS based PCs, Hybrid synced GPT/MBR is OK for up to 4 partitions - but as soon as one adds more GPT partitions they won't be visible in Windows.

I successfully installed Win 7 SP1 and Win 8.1 (latest w/ Update Rollup 1) on a GPT disk (which already hosts lots of OS X installs booted via Chameleon) on a BIOS PC via Clover USB flash drive, and can also boot them (via the EFI sys partition) via USB flash drive (and also via Grub4DOS on a Fat32 boot partition --> Clover --> Bootmgfw.efi)


I REALLY like Chameleon and don't feel like traveling the learning curve for Clover right now.

QUESTION: has anything changed in the meantime re. Chameleon UEFI support? Has the code from Clover been integrated into Chameleon, or are there any projects where this is being worked on? At least the opportunity to "chainload" Bootmgfw.efi so the BCD store with the UEFI UUIDs is read correctly?

Thank you,
Bugs
« Last Edit: December 09, 2013, 12:09:46 AM by Gringo Vermelho »