One of the computers I have at home is a nice Intel Core i7 12Gb RAM 2Tb RAID10 VMWare ESXi server. As I hate reinstalling my main personal and work computers, I use ESXi for all kinds of experiments, development, debugging, etc. RAID10 there is provided by a decent hardware HighPoint RocketRAID 3510 controller. The main reason I chose it was its announced support for VMWare ESXi. The system is set up in such a way that the 2Tb SATA II disk is provided by RocketRAID 3510 controller. There are no other disks in that system – no CD/DVD drives, nothing at all.

Back in the days when I was setting it up, the latest version of ESXi available was 3.5. I had a fair bit of a headache to get the system set up and boot from RAID10 array. It involved:

  • creating custom oem.tgz (edit pci.ids, etc, etc…)
  • integrating it into install image
  • after install, connecting external DVD drive to the server
  • boot into Knoppix LiveCD
  • set up RAID10 support in Knoppix (it didn’t work out of the box)
  • finally, copy my custom oem.tgz to the relevant partition on RAID10 device
  • pray that it works (which it did)

This is a fair bit of hassle, which I didn’t document at all.

Now imagine my disappointment when I figured out that neither patching nor “normal” upgrades from ESXi 3.5 to ESXi 4/4.1 work for my setup – something to do with custom oem.tgz. Trust me, I tried everything, all possible combinations of upgrades, upgrade tools, network setups, etc. It just doesn’t work, so don’t waste your time on that. At the same time, I needed a solution, as I had to run 64-bit OSes.

To cut the long story short, here is a simple and elegant solution that worked perfectly for me:

  1. Install brand new copy of ESXi 4/4.1 (or whatever is the latest at the time) onto USB stick (I used 1Gb SanDisk) following these instructions
  2. Boot into any Linux with your newly baked ESXi USB stick connected
  3. Download this oem.tar.gz (it must work for anything that is compatible with hptiop driver 1.6 – this includes a range of HighPoint devices with Intel IOP processor)
  4. Rename it to oem.tgz
  5. Make sure your USB is mounted (“mount” without parameters will tell you what is mounted and where). Let’s assume that your USB partitions are mounted on /media
  6. Run something like “find /media -type f -name oem.tgz” to find where exactly the old oem.tgz is located. Let’s assume you find that it is in /media/part1/oem.tgz
  7. (this assumes you do not require any other OEM drivers! if you do – for example, for networking – you need to merge two oem.tgz files; this is out of scope of this article) Back it up: “mv /media/part1/oem.tgz /media/part1/oem.tgz.backup”
  8. Overwrite the old oem.tgz with a new one: “mv ./oem.tgz /media/part1/”
  9. Reboot and enter setup
  10. Set your system to boot from USB first
  11. Voila – you will have your VMWare ESXi on USB stick, you can import the RAID10 storage and all of your VMs through VMWare vSphere Center.

So this now works and all the updates can be applied remotely without reinstalls/etc. Nice!

I hope this helps someone. If not, it will help me one day. 🙂