Making 64-bit Booting on a Mac Permanent

| How-To

For those Macs that can boot into the 64-bit kernel, there are several ways to force that to happen. Here are some pointers, and a gotcha, on how to make it permanent.

Note, this HOWTO is intended for reasonably savvy Mac users who want to learn more about their Mac and take advantage of 64-bit mode. If you have questions about anything, post them in the comments, and we'll all try to help. If anything here makes you feel that you're over your head, just pass.

First, if you need to check whether your Mac can boot into a 64-bit kernel, here's a reference to a TMO article that explains and provides list the current Macs that can.

Next, there are several ways to force a boot into the 64-bit kernel.

1. Hold down the "6" and the "4" keys at boot. This method only applies to the current boot and is not permanent. This is a good technique to try when you first embark on the 64-bit road to make sure everything works as expected. If so, you may want to make it permanent. To determine if the boot was successful, look at the System Profiler -> Software and the next to last line. It should say: "64-bit Kernel and Extensions: Yes"

System Profiler

2. Use a GUI, such as the "32- or 64-bit Kernel Startup Mode Selector 1.4." A full explanation of the app is provided by the author.

32/64 bit selector

Not only can this app set the boot mode, but will also provide additional information about your system. However, there is one caveat: This app converts the applicable plist file from human readable text file to a binary. That's fine. The system can still read the file, but I cannot with a simple editor, and that annoyed me. So I prefer the third method: keep the plist file as a text file and edit it directly.

3. Edit com.apple.Boot.plist. This file is found in /Library/Preferences/SystemConfiguration. Here's how to do it safely.

1. Make a copy of the file, in the terminal, for safekeeping:

$ sudo cp com.apple.Boot.plist com.apple.Boot.copy.plist

The file looks like this:

Kernel flags-1

2. In the line after "Kernel Flags," line 9, edit it to look like this instead.

Kernel flags-2

That file is owned by root, so you'll have to be logged on as an administrator of the Mac and authenticate with your password when you edit the file with, say, BBEdit or TextEdit.

When using BBEdit (or any other GUI text editor) make sure the default for an edited text file has the right kind of line break. It should be UNIX (Line Feed). Set or check this in BBEdit -> Preferences -> Text Files. Apple's TextEdit uses the UNIX convention, so you're okay. (Not a word from the UNIX gurus about "vi," you hear?)

From now on, when you boot your 64-bit kernel capable Mac, it will boot into 64-bit mode.

Sign Up for the Newsletter

Join the TMO Express Daily Newsletter to get the latest Mac headlines in your e-mail every weekday.

Comments

John Martellaro

Here are some more references.

http://www.macobserver.com/tmo/article/checking_32_or_64-bit_kernel_boot_mode_in_snow_leopard/

http://www.macobserver.com/tmo/article/more_on_64-bits_how_much_ram_can_a_mac_have_really/

cashxx

Some other cmds:

Snow Leopard 32bit or 64bit (Can also hold 32 keys to boot temporarily into 32bit or 64 for 64bit on bootup.):
ioreg -p IODeviceTree -w0 -l | grep firmware-abi

Snow Leopard 32bit or 64bit (Can also hold 32 keys to boot temporarily into 32bit or 64 for 64bit on bootup.):
uname -a

Print nvram settings:
nvram -p

Set boot-args to use 64 bit kernel:
nvram boot-args=?arch=x86_64?

Set boot-args to use 32 bit kernel:
sudo nvram boot-args=?arch=i386?
sudo nvram -d boot-args

UpQuark

I like VIM personally.. but pico is fine too smile

THanks for the article… smile

Tgossard

Forgive me for laziness not to google (again) the answers, but:

Do qualifying Macs by default boot in 1) 32 bit or 2) 64 bit mode?

In as few words as possible, tell me (again) why and why not might I want to boot in 64 bit mode? I assume there’s a damn good reason(s) for leaving the default setting alone, by ordinary, everyday Mac users.

Thanks (sincerely).

Tgossard

“VIM?” “pico??”

you see what I mean.

John Martellaro

Tgossard:

1. All Macs boot into 32-bit mode by default except the Xserve.

2. Reasons for 64-bit?
  -  Speed gain (yummy) for some apps.
  -  Ability of apps to access larger chunks of memory. Especially useful if you have more than 4 GB of RAM.
  - Much better system security. (That’s a complicated one. No room for explanation here.) That alone is worth it.

Tgossard

Thanks!

One more ?

Then, if 64-bit is so hot, then why is the default setting 32-bit? This, btw, is the single most often put question I get, a modest (NOT) Mac enthusiast, from people who mistakenly think I’m a power geek, when all I am is an enthusiastic Mac user since 1985 when I first lay my hands on a 128 k-byte, which was placed in the darkest corner of the computer ed lab at my job, surrounded by IBM pcs. It never sat alone as far as I knew, and usually had a crowd of eager onlookers. smile

Tgossard

> laid my hands. >

John Martellaro

Tgossard: The default setting is 32-bits for the kernel boot because many users still have 32-bit kernel extensions installed. Developers have needed extra time to re-write and publish these extensions as 64-bit.  The possibility of having the system crash in 64-bit kernel boot mode with a 32-bit kernel extensions remaining is a worse prospect than the loss in system security. It would mystify and annoy the users.

UrbanBard

Tgossard, Apple has been migrating toward 64 bit code since 2003. It needed to make this an easy and seamless migration, so it hasn’t been in a real hurry.

Only servers have needed this capability. But, once Apple has made it possible then a bright new future opens up for it. If for no other reason, it starts to leave behind the 32 bit Carbon API’s. But Apple has a lot of work to do to strip out Carbon, not all of its Professional apps are in Cocoa yet.

The final step, before Apple turns on the 64 bit kernel by default, is that the majority of Mac Applications need to migrate. That will take place in the next year.

Apple made that migration easy in the move to Intel processors, three years ago. If developers wanted to run native x86 code, they needed to rewrite heir apps in XCode 2.0. Most developers have done so. This means that they can create a FAT file containing both 32 and 64 versions in XCode 3.2.

Apple isn’t making a big deal about this, right now. People will wake up a year from now and find their apps are much faster.

Tgossard

Thank you very much, Mssrs. Martellaro and UrbanBard. I am printing out this page for reference.

Best,

Tom Gossard

Log-in to comment