Boot MacOS X86 from USB Pendrive

Have you ever dreamed about carrying in your pocket,
your favorite OSx86 install. And boot it everywhere.
When dreams come true…




Before you start

You will need the following stuff:

  • USB pendrive (min. 2 GB required)
  • JaS Mac OS X 10.4.x or 10.4.7 Retail DVD
  • Pacifist software (www.charlessoft.com)

Format the pendrive

Plugin your USB pendrive and open Disk Utility (Applications->Utilities).

Select your pendrive device in the left menu, and click the partition tab.
Enter a nice name for your device like osx86.

Hit Options… button, and choose Master Boot Record.
From the drop-down, choose 1 partition as the volume scheme.

Be sure the filesystem is Mac OS Extended (Journaled),
Hit the Partition button.

Next, we need to enable Owners, open a Terminal and type:

sudo /usr/sbin/vsdbutil -a /Volumes/osx86

Install OSx86

Mount the JaS 10.4.x DVD or the Retail 10.4.7 DVD (I used retail).
Browse to the directory System/Installation/Packages on the DVD.
Open OSInstall.mpkg with pacifist (right-click->Open With Pacifist).

Expand Contents of EssentialSystemSoftware, then expand Contents of
EssentialSystemSoftwareGroup.

Select Contents ofBaseSystem.pkg and Contents ofEssentials.pkg and
right-click and choose Install to Other disk…
Choose your pendrive (osx86) and hit the install button. Now be patient 🙂

Now depending on what DVD you used, you will need to download the
right update from apple.com. I downloaded the 10.4.8 Intel update since I used
10.4.7 retail DVD.

Open MacOSXUpd10.4.8Intel.pkg with Pacifist and install to Other disk…

N.B.: Before installing the update, you may need to free some space on the pendrive.
Just delete the asiatic font files in /System/Library/Fonts (= 100 MB bonus).

Add missing files

Since we installed with Pacifist, some of the files are missing. We need to copy them.
Get them from a full 10.4.8 working install. Those files are:

/System/Library/CoreServices/SetupAssistant
/Applications/Safari.app
/Applications/Address Book.app
/Library/Receipts/BaseSystem.pkg
/Library/Receipts/Essentials.pkg

Copy OSx86 specific files

You need to replace the following files:

/mach_kernel by semthex SSE3 or SSE2 kernel
/System/Library/Extensions/AppleACPIPlateform.kext
/System/Library/Extensions/AppleSMBIOS.kext

Optional:

/System/Library/Extensions/IONetworkingFamily.kext
/System/Library/Extensions/AppleIntelIntegratedFrameBuffer.kext
 (GMA950)

Add this for PS2 keyboard/mouse:

/System/Library/Extensions/ApplePS2Controller.kext

Put all your custom kext you use on your working install.

Do not forget to chmod -R 755 and chown -R root:wheel all files you copy.

Make the pendrive bootable

Be sure that you have bless version 24.0 from 10.4.4.
Any other version of bless won’t work.
Run bless -version in Terminal to check version.

sudo bless –verbose –folder 
“/Volumes/osx86/System/Library/CoreServices” –bootinfo

Repair permissions

Open Disk Utility.app, select your pendrive and repair permissions.

Set Partition Active

Open a Terminal, be sure your pendrive is plugged in:

> sudo -s
> diskutil list

> /dev/disk1
#: type name size identifier
0: FDisk_partition_scheme *1.9 GB disk1
1: Apple_HFS osx86 1.9 GB disk1s1

Note that here the pendrive is disk1 (disk1s1).

> fdisk -e /dev/rdisk1

Enter 'help' for information
fdisk: 1> p
Disk: /dev/rdisk1 geometry: 999/64/63 [4028416 sectors]
Offset: 0 Signature: 0xAA55
Starting Ending
#: id cyl hd sec - cyl hd sec [ start - size]
-------------------------------------------------------------
*1: AF 0 1 1 - 1023 254 63 [ 63 - 4028346] HFS+
2: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
3: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
4: 00 0 0 0 - 0 0 0 [ 0 - 0] unused

First time you do this, you should not see the star in front of partition 1.
We need to activate the partition.

fdisk: 1> f 1
Partition 1 marked active.
fdisk:*1> write
Device could not be accessed exclusively.
A reboot will be needed for changes to take effect. OK? [n] y
Writing MBR at offset 0.

First Boot

During the first boot to OS X from the pendrive,
you’ll have to finish the installation setup.
For the first boot, you need to boot to your current working system.
And specify following boot flags:

mach_kernel -v rd=disk1s1

Notice that we specified disk1s1 from previous diskutil list command.

Next boot should be directly to the USB pendrive,
so don’t forget to enable USB boot in BIOS.
And set USB Flash boot order before harddrive.

Bring your osx86 with you and test it on any PC with SSE2/SSE3 proc!
Enjoy!

Leave a Reply

Your email address will not be published. Required fields are marked *