Installing VMware ESXi 4.1 At Home

Just wanted to make some quick notes that some others might find useful down the road. While a Google search and some persistence paid off I’m hoping this might save on the persistence for others.

I’m setting up my personal desktop (AMD Phenom II x4 965, 8GB Ram) to run ESXi inside VMware Workstation. And I have what used to be my previous machine (AMD Phenom x4, 4GB Ram) as my second ESXi server. I also have an Iomega storCenter ix200 1TB(Raid 1 with a second 1TB drive) serving as an ISCSI target of 100GB in size. This is all tied together with a Gigabit Dlink switch.

The first issues I had was with VMware Workstation 7 recognizing that I had hardware virtualization support on the AMD Phenom II. As I found out a bios update was a fix for that problem. Then I discovered that even with the ESX server being 64bit nested VMs do not get that 64bit support. Meaning this instance of ESXi can only run x86 OSs. So my hopes of getting some Windows Server 2008 guests going has been squashed. Luckily I have the other dedicated box to work with and I can still attempt Vmotion using the x86 guests.

Next I come to the issues with the stand alone box. First I don’t have an optical drive in it. I do have USB optical drives but I also don’t have any blank media so my only option is to boot from a flash drive. I found several places with instructions to do this for 3.5 and 4x and all of them recommended some syslinux command line action. While I’m sure most admins are ok with that I enjoy my pointing and clicking when the opportunity affords. I also enjoy simplicity and don’t care for the extra steps involved with those instructions. As it turns out the nice open source tool UNetbootin can drop ESXi on a flash drive in just a few clicks. Run UNetbootin, choose your flash drive, your iso image and click next. Now here is where it matters. During the file copy you will be prompted to overwrite an existing Linux boot file. Answer YES to the overwrite. There you have it. ESXi bootable from a thumb drive in just a few short clicks.

The next thing I ran in to was the Pink/Purple screen of doom that states “No supported microcode levels for this stepping of AMD Family 10h B2 processor.” After a quick search I discovered that you could add a switch(by hitting tab at the boot menus screen) that disables this micro code check. The catch is that it has to go in the right place. You need the line to read “…vmkboot.gz skipMicrocodeCompatCheck…” you can’t just append that command to the end of the line of commands. This should get you past the pink/purple screen of doom. If you have the error on subsequent boots you can apparently hit Shift-o during boot up and enter the kernel advanced option mentioned prior. From there at command line try entering “esxcfg-advcfg -k TRUE skipmicrocodecompatcheck” which supposedly makes the switch permanent. And there is some debate if that command line command works so another suggestion is to try changing the second line of /bootbank/boot.cfg to read “kernelopt=skipMicrocodeCompatCheck=TRUE”.

I have to give credit where credit is due. I got this information from the fine folks at the VMware forums. In particular this thread:
http://communities.vmware.com/thread/236107
and this website
http://www.vm-help.com/esx40i/vmkernel_boot_options.php

**Update**
Just recently I attempted a re-install from USB only to find it wasn’t working. As it turns out newer versions of UNetBootIn have an updated version of syslinux included that does not work properly with the version included with ESXi. Grabbing an older version seems to be a good work around at the moment. I haven’t had time to confirm which versions work or not but going back to latest 4xx version. The 494 version worked for me. You can find the previous version of UNetBootIn here.

**Update**

I started reading Mastering VMware vSphere 4 and it’s got a ton of great information. Figured I’d throw the suggestion out there to those who might find this post worth while.