Too many problems, not enough time.

Part 2: ESXi Owning The NUC

With the SDD and memory installed and the NUC re-assembled I was almost ready to power on. But the last thing I needed to do was replace the North American cable with an Australian plug. As I have never thrown a cable out since I was 8 this wasn’t an issue. The system now looked as follows.

The first thing I wanted to do was see the BIOS and if it required an update to the latest version. The Bluetooth KB/Mouse plugged into the USB port worked without issue. F2 on the NUC splash screen gets you into Intel’s VisualBIOS. It’s all laid out nicely and simply to understand. Finding the BIOS version is straight forward. On the Home screen with Basic View you can see the bios version on the top left. The first part of the version is the Initial Production Version WYLPT10H.86A. The second part is the actual BIOS version 0027. Followed by the date and what looks to be a build number 2014.0710.1904.

Pic1. Booting into the NUC Bios

Getting the latest BIOS version is as simple as heading over the the Intel Download Center and searching for NUC and selecting the model number. I was on version 0026 (released back in 2013) with the latest being 0027 released only a few months back. I downloaded the OS Independent .BIO file and copied it onto a USB thumb drive. I plugged it into the NUC while it was currently sitting on the BIOS screen. I went to the Wrench icon and selected Updated BIOS. The NUC then rebooted and flashed the new BIOS. The most obvious change I saw was the ability to now check and update the BIOS over the Internet. However, when tried, I receive an ‘Unable to locate Product ID version’ error message. Something to look into at a later stage.

Installing ESXi

So now the more interesting and fun frustrating part, installing ESXi. The first thing I did was install a Beta version of ESXi. Now unfortunately NDA says I can’t talk about this 🙁 How’s that for a tease… All I’ll say on that was that the process was fairly painless to get up and running.

But next I tried ESXi 5.5, and this I can talk about 😉

Booting off ESXi 5.x media should be as simple as mounting the ISO image and copying the files onto a USB thumb drive. Attempting to boot in this way caused an error during boot with the following.

<3>Command line is empty.
<3>Fatal error: 32 (Syntax)

A VMware KB article solution was to turn off UEFI in the BIOS. This was only part of the solution as now the error disappear but no boot media could be found. Some searching lead me to UNetbootin. A small simple app that would turn an ISO image into bootable media on a USB thumb drive.

Finally I had ESXi 5.5 booting off the USB and starting the install process. The network drivers in ESXi 5.x will not recognize the Intel I218V Ethernet Controller. This will cause the installation of ESXi to fail. The I218V will work off e1000 drivers so the next step was to location an updated version. I ended up finding net-e1000e-2.3.2.x86_64.vib

There are two way to inject the drivers into the ISO image. The correct VMware way and the quick way! The correct VMware way is with PowerCLI and using the add-esxsoftwaredepot commandlet and packaging a new ISO. Turns out there is a much simpler way using an app called ESXi-Customizer. Another simple app that will take an original ESXi ISO, extract it, inject a vib file of your choosing, and repackage it, all within 60 seconds. This tool should be required learning for a VCAP, it’s that simple and it works!

So… I now have a new image. With updated e1000 network drivers. I re-run Unetbottin against the new image and create boot media. And Happy Days! ESXi 5.5 boots off the USB thumb drive with the new boot image and installs fine with the updated network drivers to the second USB thumb drive I have plugged in.

But why a second USB drive you ask? Well, read on…

Pic2. Intel I218V Network Controller detected in ESXi

So I installed ESXi to a second USB thumb drive, as mentioned above, because during the installation the SSD did not detected when selecting a device to install to. For the time being this isn’t an issue for me. In my first post (Part 1: The NUC Arrival), my end game was to always boot and run ESXi from USB and use the internal SSD as storage and at some point vSAN. All I’m doing now is just skipping to that step.

Getting ESXi 5.5 to detect the NUC’s mSATA controller requires creating new SATA driver mappings. With a little digging around I found what i needed at vibsdepot.v-front.de. Here you can download a VIB or an offline bundle (if you want to also inject it into the ISO the correct VMware way). There’s also a link to the authors blog post that explains this process in much more details.

But, summerised below is what I did to get the NUCs mSATA controller to be detected. I opened up an SSH session to the ESXi host and typed the following.

After a reboot the controller detected and the SSD storage was available to create Datastores.

Pic3. Storage Controller now detected in ESXi

Conclusion

If you don’t want to read this whole post (it’s okay, I don’t blame you) and just want the steps to install ESX 5.5 onto a 4th Gen NUC.

1. Download ESXi 5.5 ISO from VMware.
2. Turn off UEFI in the BIOS of the NUC.
3. Download net-e1000e-2.3.2.x86_64.vib.
4. Download ESXi-Customizer, run it and select the ESXi 5.5 ISO and net-e1000e-2.3.2.x86_64.vib.
5. Download UNetbootin and create a bootable USB drive from the new ISO created above.
6. Boot off the USB thumb drive and install ESXi to a second USB thumb drive.
7. Enable SSH and run the above ESXCLI commands to create new mappings to the mSATA controller.
8. Turn UEFI back on in the BIOS

Conclusion Conclusion

At this point I have a fully working and running ESXi 5.5 host on the NUC. I am running off a 4GB USB thumb drive. I have network and detectable SSD storage. The skies the limit now.

I’ll now be looking at purchasing a second Intel NUC, and while it’s being shipping, I’ll have a couple weeks to play with vSphere on this current NUC.

UPDATE;

At the time I wrote this article ESXi 6.0 was still in Beta so I couldn’t talk about it. Now that it’s GA I can say that the process to install ESXi 6.0 still requires the msata process to get internal storage to work. The great news is that networking now works out of the box.