What is XPC?
XPC is an DUET based bootloader for OSX86. It emulates UEFI (EFI) that is used on Apple computers and on some new PC motherboards. It uses Apple EFI drivers to boot OSX but it also loads kexts, DSDT and SMBIOS spoofing which is needed for OSX86.
“DUET is an EFI environment that will boot on a legacy platform. It stand for “Developer’s UEFI Emulation” and it creates an environment where you can test EFI related stuff without needing a fully working EFI Platform.”
“DUET is an EFI environment that will boot on a legacy platform. It stand for “Developer’s UEFI Emulation” and it creates an environment where you can test EFI related stuff without needing a fully working EFI Platform.”
Requirements:
- A USB stick with min. 6GB space.
- Access to OSX (on your PC, MAC or using VM).
- 64bit CPU.
- Min. 20GB HDD.
- Hardware that is supported by Lion.
Required Files:

duettohdd.zip | |
File Size: | 11 kb |
File Type: | zip |
Mount InstallESD
When you download Lion from App Store it is an installable Application and is not bootable, so what you want is the InstallESD.dmg file located inside it.
Navigate to /Contents/SharedSupport/ and open InstallESD.dmg
Format USB Stick
In Disk Utility select your USB stick. Click Partition. Click Options and choose MBR. Click OK.
Click Partition.
Click on Partition Layout and select 2 Paritions. Make the first partition 1 GB, MS-DOT (FAT).
Make the second partition min. 5 GB, Mac OS Extended (Journaled).
Click Apply.
Restore BaseSystem to USB
- Mount InstallESD.dmg.
- In terminal type: open "/Volumes/Mac OS X Install ESD/BaseSystem.dmg"
- In Disk Utility select: Mac OS X Base System.
- Click Restore.
- Drag your HFS+ partition on USB to destination.
- Click Restore.
- Press Erase.
- Type your password.
Click Erase to confirm.
Wait 5-20 min for restore to finish.
Packages Folder
In Disk Utility right click on BaseSystem.dmg and Eject Disk Image.
Right click on Mac OS X Base System and Open ”Mac OS X Base System”.
Navigate to /System/Installation/ and delete the packages link.
In Disk Utility right click on Mac OS X Install ESD and Open “Mac OS X Install ESD”.
Copy the Packages folder to /Mac OS X Base System/System/Installation/
This is how it should look:
Copy Mach Kernel
Open Terminal and type:
sudo cp /Volumes/Mac\ OS\ X\ Install\ ESD/mach_kernel /Volumes/Mac\ OS\ X\ Base\ System\ 1/
sudo cp /Volumes/Mac\ OS\ X\ Install\ ESD/mach_kernel /Volumes/Mac\ OS\ X\ Base\ System\ 1/
Install Bootloader
- Copy DuetToHdd to XPC folder.
- Open terminal and type: cd
- Press Spacebar.
- Drag XPC folder to terminal window.
- Press Enter.
- Type diskutil list to find out which is the EFI partition on your USB stick.
- Type: ./DuetToHdd usb /dev/rdiskXs1 Efildr20 (X = EFI partition on USB stick).
- It should say MBR and PBR written successfully.
Copy XPC to USB
Copy everything from XPC folder (Add your DSDT and Kexts) to the XPC partition on USB as below:
Copy kexts to the common folder if you only want to boot SL or Lion with. If you want to use both (dualboot) then create a folder named 10.6 and another 10.7, in extra_kext and put kexts in them instead.
Booting Lion installer
Press F12 (Different for different motherboards) on keyboard to open bios Boot Menu. Select Hard Disk (Also depends on motherboard).
Select your USB Stick.
Select OS X Base System.
Install XPC to HDD
- Boot with USB stick.
- Press 7 and select your OSX HDD.
- Press shift + i to install bootloader.
- Boot into OSX using the USB stick.
It will complain that Efildgpt is not found but should show "Bootloader Successfully Installed" after that.
Boot into OS X with the USB stick.
Mount EFI Partition
"Every GPT formatted disk has EFI partition that is not visible by Darwin
It is first on every disk, already formatted as FAT32 and 200MB in size."
It is first on every disk, already formatted as FAT32 and 200MB in size."
In terminal type: diskutil list to find out EFI partition on HDD. DiskXsX, where X is the number.
- - Make mount point for hidden EFI partition:
- sudo mkdir /Volumes/EFI
- - Mount EFI partition:
- sudo mount_msdos /dev/diskXsX /Volumes/EFI
- - Prepare EFI partition for use:
- cd /Volumes/EFI
- touch /Volumes/EFI.metadata_never_index
- rm -Rf /Volumes/EFI/.fseventsd/
- mkdir /Volumes/EFI/.fseventsd
- touch /Volumes/EFI/.fseventsd/no_log
- - Copy the files from your xpc boot stick to root of EFI partition:
- cp -R /Volumes/"your_xpc_usbstick_name"/* /Volumes/EFI
- - Remove EFI partition from system:
- sudo umount -f /Volumes/EFI
- sudo rm -rf /Volumes/EFI
If you can’t boot into OSX from the HDD you can always boot it from USB stick.