Disk 1 has XP (MBR scheme)
Disk 2 has Mac OS X (GUID scheme)
maybe another disks (like me )
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=".
# 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
<?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).
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.