ESXi on Raspberry Pi 4: Part 2

VMware’s ESXi (on the Pi)

his is a series of three posts where I share my own experience and what I’ve learned as a first time Pi user, by turning it into a VMWare’s ESXi host.

Part 1 describes the assembling of the Raspberry Pi 4.

What is the ESXi hypervisor

Enterprise environments ask for a lot of hardware resources to keep all their systems running, which should also happen in a fault tolerant and cost efficient way, as much as possible. This is where hardware virtualization comes in handy. Plainly speaking, virtualization separates the operating system (OS) from the underlying hardware. In this way, each OS can be “tricked” that it runs on its own dedicated physical machine, when in fact many of them can live on one piece of (very expensive) hardware as virtual machines (VMs).

There are a number of products that utilize this concept, but on an enterprise level VMware’s ESXi Type 1 hypervisor seems to be like a household name. The ESXi is actually part of a bigger product called vSphere, but it’s the foundation that makes virtualization happen. It’s described as bare metal software that is installed directly to a physical server/machine without any previous installations of an OS. In this way, a layer of abstraction exists between the physical hardware components and their logical representation for each of the virtual machines spinned up. Once the hypervisor is installed, the server is referred to as an ESXi host.

Installing ESXi on the Pi

From the moment the news broke that VMware’s ESXi is now available for ARM processors (thus for Raspberry Pi), tutorials on how to install it have been popping up almost daily. They are pretty much following the official documentation, which is meticulously written and easy to understand.

It can be downloaded without a MyVMware account, but for the ISO download an account is required, which is still free and easy to set up.

Because of the extensive sources already available on the how-to process, I won’t get into too many details, as I myself followed a video tutorial, concurrently with the official PDF. But I will provide a general outline/checklist, which can be used if you need to repeat the process on an additional Pi or on the same one. Keep in mind, the evaluation period once you install and set up an ESXi host is 180 days. After that, you would need to re-install and start from scratch.

Phase 1: Update the Raspberry Pi Firmware

  • Download:

Raspberry Pi Imager: https://bit.ly/3ma3jnb

  • Commands:

sudo rpi-eeprom-update

sudo rpi-eeprom-update -a

sudo reboot

Phase 2: UEFI Setup

  • Download:

Latest Raspberry Pi Firmware: https://bit.ly/37eaUL5

Latest community UEFI Raspberry Pi Firmware: https://bit.ly/3laFLxj

  • Adjustments:

hit ESC before it boots, Disable 3GB RAM limit (one time)

Phase 3: Install the ESXi

  • Download:

VMWare ISO: https://bit.ly/3fGjGFu

Rufus (WINDOWS): https://bit.ly/3fIIvAX

  • Commands:

hit ShIft-O before it boots;

autoPartitionOSDataSize=8192 (I used 4096 instead 8192, which means the ESXi installation will take up only 4GB of my 32GB Usb, rest will be for the datastore capacity a.k.a the VMs.

  • Adjustments:

hit ESC before it boots, Change the boot order to the bigger USB.

Final settings

If all went well, you should now be seeing the flagship yellow and grey-ish screen with very minimal info on it. You can’t do much here, except some additional networking setup and check system logs.

The most important info is the IP address. You can use it to navigate to the web interface of your ESXi host from a regular laptop’s browser. Login with username root and the password you set up during the installation. And now, the fun starts.

This is the host’s web client, where you manage everything. This is how it looks on the first boot (except for showing that one VM being installed for mine, “Virtual Machines” should say 0). If the datastore (the USB drive) is not listed as “datastore1”, there is a fix that addresses that issue.

You will notice that the time and date are wrong and that’s because the NTP server is not set up. You can do that in the following way:

  1. If you just Google “NTP” it should give you the geographically nearest server by accessing www.pool.ntp.org. For example, mine was in Europe.
  2. Start the NTP Daemon service (Step1-4). To keep it running even after the host restarts (in our case the Raspberry Pi), change the service policy to “Start and stop with host” (Step 5).

2.Start the NTP Daemon service (Step1-4). To keep it running even after the host restarts (in our case the Raspberry Pi), change the service policy to “Start and stop with host” (Step 5).

In Part 3, directions will be provided on what to do with an ESXi Pi.