Jump to content

GUID, dual boot from MBR XP Disk to GUID Mac OS X


  • Please log in to reply
31 replies to this topic

#1
macgirl

macgirl

    Stargate's Pharaoh

  • Retired
  • 7,612 posts
  • Gender:Female
  • Location:Mexico City
  • Interests:Techie gadgets
This is the scenario

Disk 1 has XP (MBR scheme)
Disk 2 has Mac OS X (GUID scheme)
maybe another disks (like me :P )

1- reduce XP partition just enough to allow a 50 to 100 MB HFS partition

2- make a HFS partition (you can make a Fat32 and then with Disk Utility erase to a HFS)

3- use any method to install a boot loader and make this partition the active one, OSX86 Tools is an easy way to do it (you can install any of them, I choose chameleon)

4- copy your actual kernel to that partition (i name it boot)

5- make this folders System/Library and Library/Preferences/SystemConfiguration (you can change ownership to root:wheel if you want)

6- copy your /System/Library/Extensions.mkext to the new HFS partition (same path)

7- copy your /Library/Preferences/SystemConfiguration/com.apple.Boot.plist to the new HFS partition (same path)

8- download hfsdebug from http://www.osxbook.c...tware/hfsdebug/ and extract it

9- see what is your diskXsY with any method ("diskutil -list" on Terminal do the work).

A- extract your Disk UUID with this command on Terminal "./hfsdebug -d /dev/diskXsY -v | grep UUID" (run it from where you extract it).

B- copy the result to the new com.apple.Boot.plist below Kernel Flags key with this prefix "boot-uuid=".

EXAMPLES:

# diskutil list
/dev/disk0
   #:					   TYPE NAME					SIZE	   IDENTIFIER
   0:	 FDisk_partition_scheme						*76.3 Gi	disk0
   1:			 Windows_FAT_32 DISKD				   76.3 Gi	disk0s1
/dev/disk1
   #:					   TYPE NAME					SIZE	   IDENTIFIER
   0:	 FDisk_partition_scheme						*76.3 Gi	disk1
   1:			   Windows_NTFS NTFS				   76.3 Gi	disk1s1
/dev/disk2
   #:					   TYPE NAME					SIZE	   IDENTIFIER
   0:	  GUID_partition_scheme						*149.0 Gi   disk2
   1:						EFI						 200.0 Mi   disk2s1
   2:				  Apple_HFS WD					  148.7 Gi   disk2s2
/dev/disk3
   #:					   TYPE NAME					SIZE	   IDENTIFIER
   0:	 FDisk_partition_scheme						*149.0 Gi   disk3
   1:			   Windows_NTFS DiskC				  148.9 Gi   disk3s1
   2:				  Apple_HFS boot					102.0 Mi   disk3s2

# ./hfsdebug -d /dev/rdisk2s2 -v | grep UUID
	   # File System Boot UUID
				  UUID = F3B54462-4BED-30F6-971D-BF37173E795E

/Volumes/boot/Library/Preferences/SystemConfiguration/com.apple.Boot.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Kernel</key>
  <string>mach_kernel</string>
  <key>Kernel Flags</key>
  <string>boot-uuid=F3B54462-4BED-30F6-971D-BF37173E795E</string>
  <key>Boot Graphics</key>
  <string>Yes</string>
  <key>Timeout</key>
  <string>5</string>
  <key>device-properties</key>
  <string>0d040000010000000A-VERY_LONG-GFX-STRING-HERE</string>
</dict>
</plist>

view of the contents of the new HFS partition (boot).
Attached File  boot.png   66.31KB   1471 downloads

When you boot you will see the two Partitions of the XP disk,
if you select XP partition it will boot onto XP
if you don't make a selection (leave the timeout counter) or select the Mac partition it will boot form the UUID specified disk

Things to take care, any moment you change your extensions or kernel you need to copy again the Extension.mkext file or the kernel whichever is the case.

Other option is to make the XP partition active, use the chain0 method in the boot.ini but when you select the mac partition you need to select the mac partition from the Darwin bootloader menu again (since the XP partition is the active one Darwin will select as boot OS and if you don't select other you will end in the XP bootloader again, that is Why I prefer the other option Darwin as 1st boot an just one selection).

This method is similar to RAID setups.

I don't know if other SystemConfiguration Files are needed, you can add them since they are not really big ones.

#2
macgirl

macgirl

    Stargate's Pharaoh

  • Retired
  • 7,612 posts
  • Gender:Female
  • Location:Mexico City
  • Interests:Techie gadgets
I will.

don't be sorry for the spanish words since you wrote a translation.

#3
kramer2k

kramer2k

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 373 posts
Nice, awsome method...

#4
mitch_de

mitch_de

    InsanelyMacaholic

  • Local Moderators
  • 2,884 posts
  • Gender:Male
  • Location:Stuttgart / Germany
THANKS - last week i decided to make EXCAT such a procedure and searched around - nothing really good solution found.
I have MBR/EFIs and want to "switch to GUID/EFI.
Good timing :tomato:

Question:

<key>Kernel Flags</key>
<string>boot-uuid=F3B54462-4BED-30F6-971D-BF37173E795E</string>

What happens if i clone my Boot-Volume to an BackupVolume.
I make that every 1-2 weeks or before major Systemupdates. BackupVolume is after that bootable.

I ask because until now i didnt used/needed the boot-uuid flag.
Has the BackupVolume not an other boot-uuid than my BootVolume ?

If my normal BootVolume is damaged and i try to boot from the Backupvolume (has same uuid= as BootVolume! because cloning) i maybe have no bootsystem ?
So i must change the uuid= after every cloning back to the individual (right) uuid of the Backupvolume ?

#5
macgirl

macgirl

    Stargate's Pharaoh

  • Retired
  • 7,612 posts
  • Gender:Female
  • Location:Mexico City
  • Interests:Techie gadgets
UUID = Universally Unique Identifier see http://en.wikipedia.org/wiki/UUID

I didn't try it, I will test later if I reformat a HFS partition gives the same UUID, posibly yes, but never NEVER on different disks or cloned partitions/volumes.

#6
mitch_de

mitch_de

    InsanelyMacaholic

  • Local Moderators
  • 2,884 posts
  • Gender:Male
  • Location:Stuttgart / Germany

UUID = Universally Unique Identifier see http://en.wikipedia.org/wiki/UUID

I didn't try it, I will test later if I reformat a HFS partition gives the same UUID, posibly yes, but never NEVER on different disks or cloned partitions/volumes.


Yeah, UUID are differnet,

but i meaned, that if i use an fixed UUID (getting from Disk Utility of Volume1) in the boot.plist on Volume1 and i clone that Volume1 to Volume2 (now has also bootflag uuid of Volume1), the boot flag uuid of Volume2 is same as Volume1 , what
is wrong (must be an other uuid).
Thats what i mean with the cloneing + no change of boot.plist = boot problem? vs cloning + change of boot.plist(clone) = booting

#7
Jumbie

Jumbie

    InsanelyMac Protégé

  • Members
  • Pip
  • 37 posts
Thanks for this guide macgirl. Got it working although I have to say that some things could be a bit more clear and I had to read this guide more than a few times to wrap my mind around it as I am not used to working so "technically" on computers.

This is the scenario

Disk 1 has XP (MBR scheme)
Disk 2 has Mac OS X (GUID scheme)
maybe another disks (like me :) )


This means that they should be installed and working already.

For myself, I had it so that I would press F12 at system boot and then select which hard drive I wanted to start up with.

1- reduce XP partition just enough to allow a 50 to 100 MB HFS partition

2- make a HFS partition (you can make a Fat32 and then with Disk Utility erase to a HFS)


I did this all before installing since I was doing a clean install of both OS X and Win XP.

I have two HDs. On one, I formatted as HFS with GUID for OSX and on the other I made 3 partitions with MBR. The first of these was Fat32 (which I later formatted to NTFS when I installed XP) and the other two were a 1 GB partition (the smallest I could make in Disk Utility) for the boot files and another for file storage; both were also HFS.

Don't think that it matters but I installed XP first.

3- use any method to install a boot loader and make this partition the active one, OSX86 Tools is an easy way to do it (you can install any of them, I choose chameleon)


I also did this and installed Chameleon.

In case it's not clear, the boot loader is to be installed on the small boot partition that was created earlier.

4- copy your actual kernel to that partition (i name it boot)


First problem (for me anyway). This file, named mach_kernel, was hidden.

I used the following command in Terminal to unhide it

"defaults write com.apple.Finder AppleShowAllFiles YES"

To hide the files again, type the same command with NO instead of YES.

A- extract your Disk UUID with this command on Terminal "./hfsdebug -d /dev/diskXsY -v | grep UUID" (run it from where you extract it).


If you look at the example, that the macgirl gives below, this should actually be

"./hfsdebug -d /dev/rdiskXsY -v | grep UUID"

The r before diskXsY is missing.

I also had to type "sudo -s" first to get root access.

<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "[url="http://www.apple.com/DTDs/PropertyList-1.0.dtd"]http://www.apple.com/DTDs/PropertyList-1.0.dtd[/url]">
 <plist version="1.0">
 <dict>
   <key>Kernel</key>
   <string>mach_kernel</string>
   <key>Kernel Flags</key>
   <string>boot-uuid=F3B54462-4BED-30F6-971D-BF37173E795E</string>
   <key>Boot Graphics</key>
   <string>Yes</string>
   <key>Timeout</key>
   <string>5</string>
   <key>device-properties</key>
   <string>0d040000010000000A-VERY_LONG-GFX-STRING-HERE</string>
 </dict>
 </plist>

I didn't have the Timeout option default:

<key>Timeout</key>
  <string>5</string>

So I just added it in myself. No problem.

#8
munky

munky

    Agent of Evolution

  • Retired
  • 2,901 posts
  • Location:The Land of Hairy-Arsed Highlanders
omg macgirl, you probably could have booted the retail leo disc with this method!

#9
d!g!t@lTr@sh

d!g!t@lTr@sh

    InsanelyMac Protégé

  • Members
  • Pip
  • 40 posts
If I'm not mistaking, this way should work for any M$ OS boot, including all vistas. Right?

Q.: Can someone please explain a bit in more detail on how to actually install the bootloader, like the chameleon? I have iAtkas v4i and it only contains the darwin bootloader. WHat are other, shorter ways to install bootloaders, say w/o booting to the patched OSX86 CD?

Much appreciated.

#10
pnoytechie

pnoytechie

    InsanelyMac Protégé

  • Members
  • Pip
  • 28 posts
if you don't want to download hfsdebug... and you are not command-line savvy, UUID can be obtained using OS X Disk Utility

#11
Monkey_@@

Monkey_@@

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 123 posts
  • Gender:Male
Is there a way to make this work using a single HDD? The scenario:

GPT disk:
1st partition: Vista x64
2nd partition: MacLoader
3nd partition: Macintosh retail

Right now, if I flag partition 2, I can get MacLoader and Macintosh partition in the Darwin list but NO Vista! if i flag partition 1 I can boot Vista. How can I make Darwin "sees" my Vista partiton in a GPT disk? I'm using Chameleon 1.0.11.

TIA,

M.

#12
willpower101

willpower101

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 103 posts
where did you get the boot-uuid= string from? I mean, is there a list of these commands somewhere? The reason I ask is because I need to hide an entry that chameleon picks up for my second partition on my windows drive.

Currently it looks like
d0, s0 windows
d0, s1 windows
d0, s2 osxboot

I need to get rid of the second windows option, does anyone know how to do this?

#13
Shaithis

Shaithis

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 100 posts
  • Location:The Last Aerie
You mention that chain0 method....I was wondering if you had verified it as working when you have vista/xp on an MBR-based drive and OSX on a GPT-based drive please?

I currently have that setup and want to boot from the Vista loader but no matter what I do, I get "Chain booting error".

I am not sure if this complicates matters but both of these drives are logical units on an areca array, one is defined as MBR and contains all my Windows partitions, the other is defined as GPT as has all my OSX and linux partitions (linux is having issues as well!).

It seems to me (after having this working fine when I never used GPT) that GUID drives really throw a spanner in the works ;)

#14
macgirl

macgirl

    Stargate's Pharaoh

  • Retired
  • 7,612 posts
  • Gender:Female
  • Location:Mexico City
  • Interests:Techie gadgets

You mention that chain0 method....I was wondering if you had verified it as working when you have vista/xp on an MBR-based drive and OSX on a GPT-based drive please?

I currently have that setup and want to boot from the Vista loader but no matter what I do, I get "Chain booting error".

I am not sure if this complicates matters but both of these drives are logical units on an areca array, one is defined as MBR and contains all my Windows partitions, the other is defined as GPT as has all my OSX and linux partitions (linux is having issues as well!).

It seems to me (after having this working fine when I never used GPT) that GUID drives really throw a spanner in the works ;)

chain0 does not work directly on GPT disk, what you need is something like this:

Disk 1: MBR boot manager could be XP's or Vista's

Partition 1: NTFS Windows XP
Partition 2: NTFS Windwos Vista
Partition 3: HFS Very small partition just to acomodate the boot and necessary files to allow the boot-uuid flag.

Disk 2: GPT
Parition 1: HFS Mac OS

You need to use chain0 in order to boot the 3rd partition of disk 1, then like a second boot manager it allows you to boot to you 2nd disk with the boot-uuid flag.

Here are guide to solve the "Chain booting error" bot those apply to chain0 method on MBR disks.

#15
nebuluz

nebuluz

    InsanelyMac Protégé

  • Members
  • Pip
  • 37 posts
  • Gender:Male
  • Location:Sweden
Hmms scratching my head atm... Need some ides, maybe its to late for me to think clear but....

This is my current situation...
Using this method http://forum.insanel...howtopic=127330

120 GB HD

GUID
Partition 1: 200 MB Hidden EFI (with EFIBoot and kext)
Partition 2: 30 GB NTFS Windows Vista
Partition 3: 80 GB Mac OS X Leopard

This way i get a nice vanilla Leopard. But the only way for me to "dual boot" is to flag ether part 1 or part 2 active and reboot.

Know your method uses 2 hard disks, could i use my 1gb usb flash memory to boot from or are the uuid from separate hds needed?

I thought one solution was to use usb for booting Leo and flag vista partition active, but that way i need to pull the usb flash in and out.

Any ides are welcome :D

#16
macgirl

macgirl

    Stargate's Pharaoh

  • Retired
  • 7,612 posts
  • Gender:Female
  • Location:Mexico City
  • Interests:Techie gadgets
The method you are using should work to boot Vista too, review that your com.apple.plist doesn't have Timeout parameter as 0

Yes uuid method can be used with USB disks, CDs, etc.

#17
Monkey_@@

Monkey_@@

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 123 posts
  • Gender:Male

Hmms scratching my head atm... Need some ides, maybe its to late for me to think clear but....

This is my current situation...
Using this method http://forum.insanel...howtopic=127330

120 GB HD

GUID
Partition 1: 200 MB Hidden EFI (with EFIBoot and kext)
Partition 2: 30 GB NTFS Windows Vista
Partition 3: 80 GB Mac OS X Leopard

This way i get a nice vanilla Leopard. But the only way for me to "dual boot" is to flag ether part 1 or part 2 active and reboot.

Know your method uses 2 hard disks, could i use my 1gb usb flash memory to boot from or are the uuid from separate hds needed?

I thought one solution was to use usb for booting Leo and flag vista partition active, but that way i need to pull the usb flash in and out.

Any ides are welcome :thumbsup_anim:


You can make it with just one HDD, as I'm doing right now! Here it's my configuration:

HDD 320 GB - GUID:
1. NTFS Partition for Vista x64
2. NTFS Partition for Data
3. HFS+ Partition for MacLoader (look here)
4. HFS+ Partition for Mac Vanilla

Now, if you follow this method you can have everything working using Vista Bootloader. Follow the steps of this post from MACinized and have your mac working. After that you flag Vista Partition as active and install Vista. When you boot Vista, use EasyBCD to get Mac support for the Vista bootloader. It's working like a charm for me!

#18
Shaithis

Shaithis

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 100 posts
  • Location:The Last Aerie

You need to use chain0 in order to boot the 3rd partition of disk 1, then like a second boot manager it allows you to boot to you 2nd disk with the boot-uuid flag.

Here are guide to solve the "Chain booting error" bot those apply to chain0 method on MBR disks.


Thanks, finally got it installed and everything is working great, can patch the OS from Apple (sometimes requires 2 files to be copied from the update to my boot partition).....really nice to finally have a vanilla install :)

Now, I need to resolve my "Quad booting with Linux on a GPT partition" issue :P But that's for another day, sick of bootloaders for the time being ;)

#19
nebuluz

nebuluz

    InsanelyMac Protégé

  • Members
  • Pip
  • 37 posts
  • Gender:Male
  • Location:Sweden

You can make it with just one HDD, as I'm doing right now! Here it's my configuration:

HDD 320 GB - GUID:
1. NTFS Partition for Vista x64
2. NTFS Partition for Data
3. HFS+ Partition for MacLoader (look here)
4. HFS+ Partition for Mac Vanilla

Now, if you follow this method you can have everything working using Vista Bootloader. Follow the steps of this post from MACinized and have your mac working. After that you flag Vista Partition as active and install Vista. When you boot Vista, use EasyBCD to get Mac support for the Vista bootloader. It's working like a charm for me!


Yep, but that method is with chameleon... I use Munkys EFI boot method for using the Hidden EFI partition with kext etc, still dont think dual boot work with that method.

#20
BondDotCom

BondDotCom

    InsanelyMac Protégé

  • Members
  • Pip
  • 41 posts
Can't seem to get this method to work. I have:
Disk 1. Windows XP (NTFS, MBR)
Disk 2. iDeneb install (HFS, GUID, uses Chameleon)

I followed all the steps but when it attempts to boot the new HFS partition (I used Chameleon) on the XP disk I get the following messages:

boot0: MBR
boot0: done

then it just stops.

If I make the XP partition active and try to use chain0, I can boot XP but I just get a blank screen with cursor if I select Leo.

Did I miss something?





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy