Cain Manor

Your Guide To All Things Cain™

Force your Mac to boot into 64 bit mode

UPDATE

Not all Macs that are capa­ble of boot­ing a 64 bit ker­nel will boot the 64 bit ker­nel. The Mini is one of those… (This is from Apple.) Get­ting those machines NOT on the list to boot into a 64 bit ker­nel is pos­si­ble, but it’s beyond the scope of this arti­cle (it involves edit­ing your boot.efi.)

Mac Pro (Early 2009)
Mac Pro (Early 2008)

Mac Pro (Original)  
iMac (Early 2009) 
iMac (Early 2008) 
iMac (ear­lier models)  
Mac mini (all models)  

First, make sure your Mac can sup­port 64 bits. Make sure your server is on the list above too.

ioreg -l -p IODeviceTree | grep firmware-abi

If you are 64 bit capa­ble, you’ll see the following.

| |   "firmware-abi" = <"EFI64">

There are sev­eral meth­ods. The eas­i­est method is to hold the 6 and the 4 key when boot­ing. This isn’t per­ma­nent, but the fol­low­ing are.

As root, type…

nvram boot-args="arch=x86_64"

To change it back to the default

nvram boot-args=""

I didn’t like this par­tic­u­lar method, as I pre­fer to have a ver­bose boot

sudo nvram boot-args="-v"

There is one more way, that some peo­ple have had more suc­cess with. It involves edit­ing /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></string>
</dict>
</plist>

You need to replace the null value below Ker­nel Flags () with “arch=x86_64”. The cor­rect version -

<?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>arch=x86_64</string>
</dict>
</plist>

To check if you’re 64 bit or not, you can use

uname -a

If you see

x86_64

You’ve got a 64 bit kernel.

This also works

system_profiler | grep "64-bit Kernel and Extensions"
      64-bit Kernel and Extensions: Yes

Comments are closed.