My mac has 64-bit EFI, but it only boots with 32-bit kernel

64-bitbootkernel

I followed the guide at
http://macperformanceguide.com/SnowLeopard-64bit.html
to boot into 64-bit mode. I had no problems with the instructions and on the boot screen it says "PAE enabled, 64bit mode enabled" but when the system boots, both uname -a and System Profiler tell me that it has booted into 32-bit mode.

I really need to boot into the 64-bit kernel, what should I do?

System is MacBook Unibody (Early 2009, 6 GB RAM, 2.4 Intel CPU, 10.6.6)

Best Answer

64-bit Mac CPUs cannot boot 64-bit kernel due to one of the following reasons:

  1. The machine has 32-bit EFI.
  2. The machine’s model is prohibited from booting K64 through a hardcoded list within the boot loader. (The list excludes "non-Pro" machines.)

Both limitations are artificial and imposed by Apple, although the first one is important because if a 32-bit EFI were allowed to boot the kernel wouldn't be able to use firmware services.

IF you really, really, really want to boot these machines with a 64-bit kernel, you'll need to perform hackery on /System/Library/CoreServices/boot.efi. This is quite risky. More info:

http://osxbook.com/blog/2009/08/31/is-your-machine-good-enough-for-snow-leopard-k64/