Random Thoughts – Randocity!

Installing Mac OS X (Snow Leopard) in VMWare Player 3

Posted in Apple, Mac OS X, Uncategorized, virtualization by commorancy on January 9, 2011

 

With this article, I’ll start by saying.. please purchase your copy of Mac OS X desktop software from Apple. It’s $29 and you get the original media (which is always good to have on hand).

 

 

To start, here are the softwares you will need:

Installing Mac OS X on VMWare Player is a pretty simple install, but note that there are some important issues that aren’t yet resolved. I’ll explain the issues, however, after the install steps.

Installation

Inside the Empire EFI 1.3.2 archive, you will see the following files:

You will see that the extracted ‘Snowy_VM’ folder contains several files besides just the EFI media.  Inside the Mac OS X Server*.vmwarevm directory, you’ll see it contains two .vmx templates for VMWare.  Use the .vmx file without the underscore at the beginning.  Note, you’ll need to use this template to get the install going.  It’s far simpler to use their existing template than trying to figure out all the proper VMWare Player settings.  So, use what’s given rather than trying to reinvent the wheel.  If you absolutely feel you want to reinvent, then I’ll leave that for you to determine what’s necessary.

To begin, inside VMWare Player, select File->Open a Virtual Machine.  Find the .vmx file mentioned just above and open it.  Once opened, it will appear as ‘Mac OS X Server 10.6 (experimental)’ in the VMWare Player selection panel.  From here, you will need to modify the settings for the CDROM device under this machine.  Choose the ‘Mac OS X Server 10.6 (experimental)’ imported machine and choose ‘Edit virtual machine settings’ on the bottom right of the window.  Now click the on the CDROM device and under ‘Connection’ change it to ‘Use ISO image’ and browse to and select the darwin_snow.iso image inside the Snowy_VM directory’. Click ‘OK’.

You’re now ready to boot.  So, click ‘Play Virtual Machine’.  Once the machine has started and the system begins searching for a CDROM (read the text on the screen), you will need to change the CDROM to the Mac OS X Snow Leopard media.  I recommend using an ISO media to install. So, I will assume you are using an ISO image here.  At the bottom of the active VM Window, right click the CDROM icon which may now be greyed out (disconnected) and choose ‘Settings’.  Locate the Snow Leopard media on your hard drive and click ‘OK’ to accept it.  Check the box next to ‘Connected’ at the top of the window and click ‘OK’ at the bottom.

The system should recognize the disk change and begin to boot the media in about 10 seconds.  Once the install begins, you are now installing Mac OS X.  Follow the steps to install Mac OS X.  Once Mac OS X is installed, reboot.  Note the hard drive given in this Snowy_VM archive is ‘ready to go’.  So you don’t need to format it.

Booting issues with VMWare Player and Mac OS X

Let’s pause and explain this.  When you reboot the first time, the system may or may not boot up.  There are two behaviors you should watch for.  The first behavior is that you get to the Apple Logo screen with the spinning lines.  If it never progresses beyond this grey screen, then you will need to reboot and try again.

The second behavior is that it may get past the grey screen, but then Finder never appears and you see a forever spinning cursor.  If you see this, you will need to reboot and try again.

These issues are annoying, but that’s why this is ‘experimental’.  So, we live with these issues.

The third issue is that you will need to continually leave the darwin_snow.iso image in the drive all of the time to boot up Mac OS X. Hey, at least it works.  Leaving it in the drive is really not a problem as it boots up so quickly.  Perhaps they can create a standalone booter later, but for now this works.

Note, I recommend setting up a second CDROM drive inside your Mac OS X virtual machine’s settings.  This way, you leave one CDROM always set up with darwin_snow.iso and you use the second one to load/unload other ISO images.  If you like, you can set the second one up to your physical drive also so you can pop real CDs in the drives as you need.  Note that if you change the darwin_snow.iso image to something else, you have to remember to set it back when you’re done.  If you don’t do this, Mac OS X won’t boot.  So, this is why I recommend setting up a second drive for loading ISO images.

Booting up successfully

After getting through any unsuccessful boot attempts (or not), you should get to the registration screen.  After going through all of the registration screens you will be at the standard Finder desktop.  At this point, you might want to change things like Sound and Display. Note that the sound and display drivers are just about as good as what’s in Virtual Box.  In fact, Virtual Box’s resolution setup is a bit more complete than this.  So, don’t expect a whole lot here.

Suffice it to say that you will need to follow editing of the apple.com.Boot.plist file as in the ‘Installing Mac OS X on VirtualBox‘ article on Randosity.  Add in the lines related to the graphics.  Once you have done this, edit the virtual machine in VMWare player and choose the Display setup.   Under ‘Monitors’ change it to ‘Specify Monitor Settings’ and manually change the maximum resolution to ‘1366×768’. When you reboot, Mac OS X should go into this mode.  If it doesn’t work, then you may have to fiddle with the apple.com.Boot.plist file until it works.  Note that the resolutions here are limited, so don’t try to set up some odd resolution as it won’t work.

Note, this is the best resolution I could find.  Note that in the above directory, you’ll see the file ‘EnsoniqAudioPCI.mpkg.tar’.  This is a Mac OS X driver for audio.  I have tried installing this without success.  But, your mileage may go farther.  The trick is in getting this into the Mac.  So, you’ll need to start a browser and download the EFI file again on the Mac.  Then extract it, find this file and install it.

At this point, you should be all set.  You may run into the booting issues from time to time, just reboot until it boots up.  Hopefully this booting issue will be fixed at some point.  Good luck and happy installing.

If you’re looking for something that boots consistently for Mac OS X, has better video mode support and working sound, then I would suggest setting up Mac OS X on VirtualBox. The setup for VirtualBox is a little more complex, but it boots consistently every time, has its own standalone boot loader and offers a few more features.

If you have questions, please leave a comment below.

Running / Installing Mac OS X (Snow Leopard) on VirtualBox

Posted in Apple, Mac OS X, VirtualBox, virtualization by commorancy on June 21, 2010

Updated 8/2/2011

Lion Update

With the recent release of Lion, there is a push to get a Lion version working on VirtualBox.  At present, there is yet no boot loader capable of booting Lion on VirtualBox. So, for now, Snow Leopard is still it for a standalone MacOS on VirtualBox.  I will update this article as necessary to address a working installation of Lion as it progresses.  Stay Tuned.

Nawcom Mod CD

There is a new CD image from Nawcom (http://blog.nawcom.com/?p=306) that makes installation of MacOS X much easier on VirtualBox (instead of using Prasys’ EFI boot CDs).  And yes, I’ve tried it.  The Nawcom EFI CD is much faster for installation because it does some very clever things, including installing the boot loader at the end of the install.

So, I am now recommending you to download and use the Nawcom ModCD instead of the Prasys EFI boot CDs listed below.  Although, I will leave the information for the Prasys Empire EFI CDs available should the Nawcom CD not work for you.  Alternatively, you can try the tonymacx86.com iBoot or iBoot Legacy CDs if all else fails.  Even using the Nawcom ModCD, you will still need to follow the instructions on changing the resolution of the screen as documented below as this CD doesn’t change that part of the installation process.

Go!

Let’s start by saying this. Support Apple by legally buying your copy of Mac OS X.  Don’t pirate it.

Note also that buying a retail packaged disk from the Apple store prevents a lot of headaches during this process.  A Mac OS X Install Disk that comes bundled with any Mac system will only install on the hardware with which it came bundled.  For example, if you try to install from a bundled DVD media that was shipped along with a MacBook Pro, it will not install on Virtualbox and you will see the error ‘Mac OS X cannot be installed on this computer’.  Save yourself the headache and get a retail disk from the Apple store.

Before getting started, if you are wanting to run Mac OS X on VMWare Player 3 instead, then check out Randosity’s Running Mac OS X on VMWare Player 3 article for details.

Apple’s Stance

Apple wants you to buy and run Mac OS X (desktop edition) on a MacBook Pro or other similar Mac hardware. While I think that’s a grand notion to sell the hardware, the hardware will sell regardless of the operating system. Further, if you are a hardware company, why sell the operating system separately anyway? I mean, if it’s the hardware that matters, how is it that you can buy Mac OS X separately both desktop and server editions. I digress.

Because Apple wants you to buy into their hardware platforms, they would prefer you not run Mac OS X on Virtual Environments. I personally think, however, that this idea is both socially and ecologically irresponsible. For a company that tries to tout itself as Green and Earth-Friendly, by not allowing virtualization of Mac OS X (any desktop version), this prevents people from using the hardware they already have and instead forces us to buy new hardware that will eventually fill landfills. Using existing hardware that may work just fine, although not made by Apple, at least keeps the hardware out of the land fill and they are still making money off selling the operating system.

Supported vs Non-Supported CPUs

Note, these boot CDs support specific types of CPUs.  If your CPU is not listed (i.e., Atom processor), you will need to download and use the CDs labeled with the word ‘Legacy’.   These CDs may or may not work for your CPU, but these are the only CDs that have a chance of working on non-supported CPU types.

Let’s get started — items required

  • A recent PC hardware config (within the last 3 years) installed with 64 bit Windows 7 or Vista or Linux 64 bit
    • Note, the faster the PC is, the better that VirtualBox will work.
  • A recent processor (Intel core i3, i5, i7, i3m, i5m, i7m, AMD Phenom or similar 64 bit processor)
  • Enabled VT-x (for Intel Processors) or AMD-v (for AMD processors) in the PC BIOS
  • Retail version of Mac OS X Snow Leopard.  (If you try any other version other than the retail package, it probably won’t work!)

As stated above, you will need hardware capable of VT-x / AMD-v (BIOS level virtualization support passthrough). Without this hardware configuration, you will not be able to install Mac OS X. Most recent dual and quad core processors support this technology. Although, you may have to enter the BIOS to enable it. So, check your BIOS for ‘Virtualization’ settings and enable it.

Pick your host operating system. You can run Windows 7, Vista, XP, Linux (Ubuntu, Redhat, etc) or Solaris. Whichever operating system you choose for the host, make sure it’s a 64 bit edition. I recommend Windows 7 64 bit edition as XP 64 bit edition can be somewhat of a bear to work with and Vista isn’t readily available at this point. If you’re looking for the least expensive solution, then I would choose Linux. I personally use Windows because I also need Windows 7 for other tasks as well. If you are currently running a 32 bit OS edition, you will first need to upgrade the host to 64 bit to operate Snow Leopard. Snow Leopard is mostly 64 bit now and, thus, requires a 64 bit host OS to function.

Note that this tutorial was tested using Mac OS X 10.6.3 (Snow Leopard). OS X may install using 10.6.4 or later, but Apple may also make changes that could prevent it from working. If you have an older install disk than 10.6.3, the installation may fail. I recommend using 10.6.3 or later.

What is EFI?

One other thing to note about Macintosh computers and Snow Leopard… Macintosh computers require an EFI BIOS to boot. What is EFI? EFI stands for Extensible Firmware Interface and was developed by Intel for the Itanium platform in the mid-90s. This ‘BIOS’ replacement is designed to allow direct 32 and 64 bit addressing right from the firmware unlike the PC BIOS which only allows 16 bit addressing during boot operations.

Apple integrated EFI into the PowerPC and later the Intel Macintosh line to boot Mac OS X. Because this boot system is not compatible with PC BIOS, it requires the standard PC BIOS to boot an EFI boot system first. Then, the EFI boot system can then boot Mac OS X. So, the boot system goes like this:

  • PC BIOS boots EFI
  • EFI boots Mac OS X

Yes, VirtualBox has an EFI boot system within, but this EFI system will not boot Mac OS X (probably on purpose). Instead, the Empire EFI boot ISO is necessary to boot Mac OS X (both the Mac OS X install media and the actual operating system once installed).

Focus on Windows

With this post, I will focus on using Windows as the Host and Mac OS X as the guest. You can utilize this guide if you want to use Linux, but you will need to determine how to get certain steps done with Linux (i.e., creating and/or mounting ISO images). So, let’s get going.

Items you’ll need

Steps to get it working

  • Install VirtualBox on Windows
  • Open VirtualBox and click ‘New’. This will start a Machine build Wizard
  • Name this machine ‘Mac OS X’
  • Set the Type to Mac OS X + Mac OS X Server (if it isn’t already) and click Next
  • Set memory to 1024 (or whatever you want to give it) and click Next
  • Under Boot Hard disk, either create a new HD or select an existing HD file* (at least 20GB), click Next
  • If Creating new, continue onward. Otherwise, skip down to ‘Readying VM for First Use’
  • In the New HD Panel, choose Dynamic Expanding Storage, Click Next
  • Click the Folder icon to choose where this disk is to be stored (C not recommended)
  • Set the size to 20GB (type in 20GB), click Next
  • Click Finish to exit HD creation and click Finish again to exit VM creation

Readying VM for First Use

Now you have a new VM for Mac OS X set up, it’s not to use ready yet. So, Let’s ready it for use:

  • Click to select the Mac OS X machine
  • Click the ‘Settings’ button
  • Click the System settings icon
  • Uncheck ‘Enable EFI’ (we will use EFI, just not VBox’s built-in version**)
  • Under Processor tab, leave it at 1 CPU and enable PAE/NX if it isn’t already
  • Under Acceleration, Enable VT-x/AMD-v (must be enabled). Without this setting, you can’t run Mac OS X in VBox.***
  • Under Display, set the Video Memory to 128 and Enable 3D Acceleration
  • Under Storage, IDE controller type must be ICH6
  • Also under Storage, click ‘Empty’ cdrom drive and set the Empire EFI disk to this drive using the Folder icon****.
  • Audio Driver is Windows Directsound + ICH AC97
  • Network should be Bridged Adapter (NAT may work)
  • Click ‘OK’ to save these settings

Now you’re ready to start the install process. Click the ‘Start’ button to start the Mac OS X virtual machine. Once the Empire EFI screen has loaded, eject the Empire EFI ISO image by unchecking it from the Devices->CD/DVD Devices Menu and then locate your Mac OS X Install ISO and select this. If you have the original media and want to create an ISO, go to the ‘Creating an ISO image with ImgBurn’ section below. After the Mac OS X install ISO is selected and you’re back at EFI, press the F5 key. The screen should refresh to show the newly inserted Mac OS X install media. Once it shows the install media, press the enter key to begin installation.

Note, if you start this process using the Empire ISO image, then you must use a Mac OS X Install ISO. If you want to use the physical media, then you’ll need to burn the Empire ISO to a CD and boot from the physical media drive in VirtualBox. You can then eject that media and insert the Mac OS X install media. You cannot mix and match ISO to physical media. I was not able to get mixing ISO and physical media to work in Empire EFI.

Installation of Mac OS X

Once you get the Mac OS X Installer going, I’ll leave it up to you to finish the full install process. However, I will say this about the hard drive. The VBox HD is blank. So, you will need to prepare it with ‘Disk Utility’. Once the Mac OS X installer starts and you get to the first screen with a menu bar, choose Utilities-> Disk Utility. It will recognize the Disk is there, but it cannot be used until it is partitioned and formatted. Choose the VBox disk and click the ‘Erase’ tab. Under Erase, choose Mac OS X Extended (Journaled) and then name it ‘Hard Disk’ (or whatever you want to call it) and click the ‘Erase’ button. It will confirm that you want to do this, so click ‘Erase’ again. Exit Disk Utility and continue the installation. It will probably take 30-40 minutes to install Mac OS X depending on various factors.

Mac OS X Installed — What’s Next?

If you’ve installed from the Nawcom ModCD, then skip this part and go directly to Final Steps + Increasing screen resolution.  If you’ve installed from tonymacx86.com’s CD, you may still need to install MyHack.  If you’ve installed from Prasys’ Empire EFI CD, you will need to install MyHack.  So, continue on.

Ok, so now that Mac OS X is installed, the system still won’t boot up without the EFI disk. So, reboot after the install with the Empire EFI ISO in the drive. Choose the new bootable ‘Hard Disk’ in the EFI menu and boot into Mac OS X. Once Mac OS X is loaded, open Preferences and set the ‘Startup Disk’ to your new bootable installation. Now, open Safari and search Google for ‘MyHack’ or locate this Randosity article in Safari and go to this site: MyHack. The download will be a package (.mpkg) file and needs to be downloaded on Mac OS X. Once downloaded, double-click the package to install. Click through the Wizard until you get the screen with the ‘Customize’ button. Click Customize and enable PS2Controller (keyboard and mouse) and disable SleepEnabler (doesn’t work with later OS X versions). Click to finish the installation process.

After MyHack is installed, you can eject the Empire EFI media and your Mac OS X installation will now boot on its own.

Final Steps + Increasing screen resolution

You’ll notice that the resolution is fixed to 1024×768. You can change this resolution, but it has to be done in two files. First on Mac OS X, there’s the /Extra/com.apple.Boot.plist file. This file describes the resolution for the Mac to use. Before you edit this file, install Xcode from the Mac OS X media (insert it into the drive with the Mac running). Open ‘Optional Installs’ folder and double-click ‘Xcode’ and follow the installation instructions. Note, it takes about 2.3GB of space. Plist files are easier to edit when the Property List Editor is installed from Xcode. Otherwise, you will have to hand edit these files with TextEdit.

Also note that the /Extra folder is at the root of the Hard Drive volume.  It is not inside your local user profile folder.  You will also note that after a default install, Mac OS X doesn’t show hard disk icons on the desktop.  To turn this icon on, from the top menu, select ‘Finder->Preferences…’.  Then, put a check next to ‘Hard Disks’ under ‘Show these items on the desktop’.  Once you open the Hard Disk icon, you should see the Extra folder.  If you still don’t see the Extra folder, be sure that you have installed MyHack or used the Nawcom ModCD.  If MyHack hasn’t been installed, there won’t be an /Extra folder there.  The Extra folder gets installed as a result of installing MyHack.

Also, there can only be one available resolution in Virtualbox and on the Mac at a given time. I wish it supported more resolutions at once, but it doesn’t. Note also that because VirtualBox doesn’t support Mac OS X fully, there are no machine additions. To enable the resolution, on the PC side of VirtualBox (on the VirtualBox host), you will need to run the following command from a command shell (cmd):

VBoxManage setextradata "Mac OS X" "CustomVideoMode1" "1920x1080x32"

The “Mac OS X’ label is the exact machine name in VirtualBox. The “1920x1080x32” setting is customizable to your needs (and video card capabilities). However, both this setting and com.apple.boot.plist (on the Mac) must match for the screen resolution to take effect.

The ‘VBoxManage’ command is located in the Program Files\Oracle\VirtualBox folder or wherever you installed VirtualBox. You can add this location to your PATH variable so you can use this command without typing in the full path each time.

In the com.apple.Boot.plist file, you will need to add the following properties (if not already there):

Graphics Mode - String - 1920x1080x32
GraphicsEnabler - String - y

(The resolution value should match the above VboxManage command). If you want to change resolutions later, you will need to edit both places again and reboot your Mac.

If you reboot and the screen hasn’t changed or has changed to 1280×1024 and not the resolution you expected, double check that both com.apple.boot.plist and the CustomVideoMode1 setting match and are active. Both of these settings must match for the resolution to work.

Updating com.apple.Boot.plist

It’s easiest to edit this file with the Property List Editor tool. So, install Xcode before managing this file. In order to edit this file, you cannot edit it directly. Instead, copy the file and paste it to your desktop. Edit the file on your desktop. Then, once done editing, drop the file on top of the /Extra folder. Click “Replace File” when asked and supply your account password. Once the file is replaced, you can reboot to see if the resolution change has taken effect.

Audio Support

Update: On my HP quad core system, I am unable to get the AC97 sound driver to work on 10.6.4 (as have others). I have uninstalled and reinstalled this kernel extension, but it simply will not activate. I am still working with this setup to see if I can get it working, but so far no luck. I should point out, then, that the AC97 sound driver may not work on all systems and may not work with 10.6.4. So, you may not want to update to 10.6.4 until this issue is resolved if you need sound.

Mac OS X does support audio output with an AC97 audio driver in Snow Leopard up to 10.6.3. It does not appear to support audio input. I will say, however, that the audio driver is, at best, under performing. That means, it breaks up, it doesn’t always work and it generally sounds crappy. That said, if you want to hear the various insundry noises that the Mac can make for bells, you can install the driver. The AC97 driver can be found in this Virtualbox Forum Thread.

Note, if the supplied installer does not properly install the driver, download the .zip file and install the AppleAC97Audio.kext Extension the into /Extra/Extensions folder. Then follow the instructions below on rebuilding the Extensions.mkext file.

Kernel Extensions — Rebuilding .mkext cache files (Kernel Extension Cache)

Mac OS has always been known for its extensions. Well, Mac OS X is no different in this respect. In the original Mac, you simply drop the extension into the Extensions folder and it works. Well, unfortunately, it’s not quite that simple with Mac OS X. If you want to drop in a .kext file (extension), you will need to rebuild the Extensions.mkext database. This database is what helps Mac OS X find and work with installed extensions. To rebuild these cache files, you will need to use the following Terminal.app as root:

# kextcache -v 1 -t -m /Extra/Extensions.mkext /Extra/Extensions/ /System/Library/Extensions/
# kextcache -v 1 -t -m /System/Library/Caches/com.apple.kext.caches/Startup/Extensions.mkext /System/Library/Extensions/

Running these commands will rebuild the cache files necessary to activate newly installed extensions. So, if you need to install any new extensions, you will need to run the above commands to recreate the extension cache files.

Creating an ISO image with ImgBurn

To create an ISO image using ImgBurn, you will first need to download and install it. Once it’s installed, start it up. Now click ‘Create image file from disc’. Insert the Mac OS X CD. The CD will be labeled ‘Boot Camp’. This is fine as this is the only partition that Windows is able to see. As long as it sees the ‘Boot Camp’ partition, the image will be created correctly. Click the CD icon at the bottom of the Window to create your ISO image. Once the image has been created, you can continue at your previous step.

Rebooting the Mac

As a side note about rebooting. With some hardware, rebooting Mac OS X in VirtualBox doesn’t work. Sometimes it seems to hang, sometimes it gives a banner telling you to power off the machine. Basically, there isn’t really a resolution to this issue. Simply use shutdown, then when it appears all disk activity has stopped, close the Vbox window (making sure to power it off). Then click ‘Start’ again to start it up. This is really more of an inconvenience than anything, but it’s manageable.

Updating Mac OS X

As new updates get released by Apple, you may be tempted to install them immediately.  While this shouldn’t be a problem on a real Mac, it is possible that a security or full update from Apple could break VirtualBox installations accidentally (or, more likely, intentionally).  Since Virtualbox offers snapshot capabilities, I recommend taking advantage of this and do the following:

  • Cancel any updates
  • Shutdown Mac OS X
  • Take a snapshot of your Mac OS X Guest in the Virtualbox console
  • Start up Mac OS X
  • Update OS X

If the update causes your system to stop booting, stop working or in any way become broken, you can revert to the snapshot and not update.  On the other hand, if the update works perfectly, then I recommend you delete the snapshot once you feel comfortable that the update is working as expected.  If the update doesn’t work, you may need some updated components such as the Chameleon boot loader or an updated boot disk to handle the new OS update.

Notes

* I suggest using a VMDK HD image as there are more tools for VMDK format files than VDI files. Though, your choice. If you want to use a VMDK file, go to vmcreator.com and have them make you a file to download.

** VirtualBox’s EFI works, but not with Mac OS X. Whether that’s intentional is unknown. Instead, you need to use the Empire EFI ISO disk to boot Mac OS X to install it.

*** You may have to enable VT-x/AMD-v in your machine’s BIOS.

**** Click the ‘Add’ button in the Media Library window to locate your ISO image, then make sure this file is selected and click ‘Select’.