Install & Run Mac OS X 10.7 Lion in a Virtual Machine with VMWare
Update 9/14/2011: Installing Mac OS X Lion within a virtual machine is made significantly easier with VMWare Fusion 4. All you need to do is:
- Go to the File menu and select “New”
- Locate the “Install Mac OS X Lion.app” (here’s how to redownload Lion from the App Store) in your /Applications/ folder and drag that into the “New Virtual Machine Assistant” window
- Choose Continue and select your settings, and boot the VM
Installation of Lion is extremely fast, and you are then able to boot and use your virtual OS X 10.7 install.
The older method is repeated below for posterity sake:
If you want to run Mac OS X 10.7 Lion Developer Preview but you don’t want to bother setting up another partition or upgrading your existing Mac OS X 10.6 installation, you can go with a third option: running Lion in a virtual machine with VMWare.
This is really only recommended for more technically inclined Mac OS X users. If you’re serious about Lion development, remember that virtual machines have their limitations, and you should probably just setup a dedicated partition to run the developer preview directly. Having a dedicated partition will ultimately perform better and the installation process is a lot easier than setting this up to run in VMware. Anyway, if you want to try out Lion in a VM, here’s what you’ll need:
Requirements to Install & Run Mac OS X 10.7 Lion in VMWare:
- Mac OS X 10.7 Developer Preview – developers can download this from Apple
- VMware Fusion for Mac OS X – here’s the free 30 day trial version
- Patience – there’s some setup required here, so if you’re lazy this isn’t for you
- Optional/Recommended: plenty of RAM
Regarding the RAM requirement, VMware and virtual machines in general perform best with a lot of RAM, if you plan on using them often on your Mac it’s highly recommended to upgrade to 8GB. With how cheap RAM is these days, I consider it an essential upgrade for power users. If you’re curious, you can read my review of 8GB RAM upgrade for a MacBook Pro where I detail the advantages of having a bunch of memory.
Update: ObviousLogic.com seems to have disappeared from the face of the earth, here’s the walkthrough repeated below via Google Cache:
Everything ready? Then check out the great walkthrough from ObviousLogic: Installing Lion in VMware, it’s broken down into 12 steps that are easy to follow.
Installing Mac OS X Lion in VMware
Shhh! Don’t tell anyone.
Yay! The developer version of OS X Lion is out in the wild!!! Not going to say where I got it from, but I have it and I want to play with it!
But… Being ill-gotten and a pre-beta release, I really don’t want to install it on a hard drive and boot my iMac off of it. Who knows what crazy things could happen? Would suck if something was wrong with the file system (or a virus installed) and it wiped all attached drives!!! So, since I already use VMware Fusion for my OpenBSD web server, why not run Lion in a virtual machine!?
Issue 1. Only server versions of Mac OS X can be run in a virtual machine. Well there’s an easy way around that. Seems the system only checks for the existence of a single file, which can be created to appease the VM Gods.
Issue 2. Lion’s installation and boot process is a lot different and the VM doesn’t know what to make of it – booting from a disk image makes the VM cower into a corner and cry for help. Or just get outright hostile and tell you, “Not here, Jack!” But, as it turns out, there’s a way around that as well. Not as easy as the first obstacle, but possible nonetheless.
Step 1: Create a blank disk image.
Using Disk Utility, create and mount a new image with the following settings,
Size: 5 GB
Format: Mac OS X Extended
Partitions: Single partition – Apple Partition Map
Image Format: DVD/CD master
You can name it whatever you want, but be sure to modify the steps below accordingly.
Step 2: Mount the Lion installer image.
The image I obtained mounts as ‘Mac OS X Install ESD’. If yours mounts as something different, then you will need to make any necessary changes to reflect that in the following steps.
Step 3: Mount the Base System image.
The Lion installer image contains a bunch of hidden files, to get to them you’ll need to run the Terminal application. One of these hidden files is BaseSystem.dmg which is used to boot the system.
$ cd “/Volumes/Mac OS X Install ESD”
$ open BaseSystem.dmg
The volume will mount as ‘Mac OS X Base System’
Step 4: Copy the base system.
The entire contents of the base system needs to be copied to your installer image. The ‘Restore’ feature in Disk Utility works great for this. Once that is finished, you can eject the BaseSystem image, it is no longer needed.
Please note, if you chose to “Erase destination”, your installer image will now have the same name as the source, ‘Mac OS X Base System’. I rename mine back to ‘MyInstaller’.
Step 5: Setup the ‘kernelcache’ file.
First the file needs to be copied from the Lion installer image to your installer image, then the boot configuration file updated to specify the location of the file.
$ cp “/Volumes/Mac OS X Install ESD/kernelcache” /Volumes/MyInstaller/kernelcache
$ cd /Volumes/MyInstaller/Library/Preferences/SystemConfiguration/
$ sudo vi com.apple.Boot.plist
Make sure the boot file contains at least the following key/value to specify the location of the kernelcache file,
Step 6: Copy the installation Packages.
Before the packages can be copied from the Lion installer image, there’s a file on your installer image that needs to be deleted.
$ sudo rm /Volumes/MyInstaller/System/Installation/Packages
$ sudo cp -R “/Volumes/Mac OS X Install ESD/Packages” /Volumes/MyInstaller/System/Installation/Packages
The copy (cp) command will take a few minutes; it’s copying a few gigabytes of data, so be patient.
Step 7: Flag the system as a server installation.
Again, in order to boot an OS X volume in VMware, it needs to be a server. The system checks for the existence of a file in a specific location; you can imitate a server installation simply by creating that file.
$ cd /Volumes/MyInstaller/System/Library/CoreServices
$ sudo touch ServerVersion.plist
That’s it for the installation disk. Both installer images can be ejected.
Step 8: Create a virtual machine.
This shouldn’t be anything new to you, but I’ll go through each step anyway.
Open VMware Fusion and select “New…” from the File menu.
Click the “Continue without disc” button.
Select “Create a custom virtual machine” and then Continue.
Select ‘Operating System: Apple Mac OS X’ and ‘Version: Mac OS X Server 10.6 64-bit’, then click Continue.
Click the “Customize Settings” button, then name and save the new virtual machine.
Choose “CDs & DVDs” from Settings, then click “Use disc image” and select your installer image.
Choose “Hard disks” from Settings, deselect “Split into 2 GB files” for the pre-created hard drive and click “Apply”. *
Feel free to make any other changes to the settings with one caveat, you must use a SCSI hard disk; IDE drives are not recognized by the installer after it boots. Also, if the hard disk is going to be used as a boot disk, it cannot be split into separate 2 GB files, so make sure to deselect that option when the HD is created.
Step 9: Replace the VMs NVRAM.
The default NVRAM will boot up previous OS X systems, but it will not boot up a Lion volume. I have a VM that I initially used as a Snow Leopard system. Booting into that system seems to have set the NVRAM so that it will know how to boot a Lion volume. Here is the NVRAM file from that VM. You can download it and use it in your VM.
Download and uncompress the nvram file.
Locate your VM within the Finder, right click and select “Show Package Contents”.
Delete the current nvram file if one exists.
Copy the downloaded nvram file into the folder and rename it to match the name of your VM; mine is named, “Mac OS X 10.7”, so the nvram file would be renamed to “Mac OS X 10.7.nvram”
Now you should be able to run the VM and it will boot up to being the installation process.
Step 10: Installing Lion.
After the installation disk boots up, the first thing you should do is run Disk Utility and format the hard drive. All the norms apply; GUID partition map, Mac OS X Extended (Journaled) format, etc. When done, Quit to return to the installer.
Continue with the installation.
When the installation is complete, it will attempt to reboot the VM using the freshly installed OS on the hard disk. It won’t boot, because it’s not a server installation.
Step 11: Forcing the VM to boot from the CD.
VMware will not let you change the startup disk in the VMs settings, so you’ll have to force a change while the VM is running.
Start the VM. As soon as you see the vmware splash screen, hit the escape key. This will bring you to a boot menu, select “Boot Manager”
This will then bring you to another menu where you choose which device to boot from. With “Mac OS X” selected, you can look at the ‘Device Path’ info on the right side of the screen to see the path to the default OS X boot device (this should be the hard disk). You can then move through the list to determine which device would be the CD to boot from. (The Pci or Scsi numbers will be different.) If you choose the wrong device the first time, you can just restart the VM and choose another until you get it right.
Step 12: Flag the new system as a server installation.
After the VM boots from the install disk again, run the Terminal from the Utilities menu.
I labeled my HD, “OS X Lion HD” when I initialized it, so I would enter the following to ‘touch’ the system,
# touch “/Volumes/OS X Lion HD/System/Library/CoreServices/ServerVersion.plist”
Now you can quit the Terminal, choose Startup Disk from the Utilities menu and restart from the hard disk.
[ Image credit: r2×2 ]