The calm before the storm
My VMware ESXi based home server has been working really well for the last 2 years and I have not felt the need to upgrade it. That is the longest I can handle “don’t fix it if it ain’t broken” 😉
Background and motivation
The main reason for this upgrade is to move from a solution with a single HDD connected to the onboard SATA controller, to a battery backed hardware RAID controller (LSI 9261-8i). I guess I have been lucky, but let’s not celebrate too early!
Anyway, this article is about preparing a new ESXi ISO with all the drivers needed for the transition from ESXi 5.1 to ESXi 5.5-u2. Although I have not been reading very actively on this topic lately, I do have picked up a few things to consider for this upgrade:
- VMware have been removing SATA AHCI mappings for some onboard controllers. This might be an issue since I intend to move the existing VMs from the single drive to the RAID:ed disks.
- ESXi 5.5 u2 have drivers for the LSI 9261-8i card but there are newer ones, I might as well include the latest release.
- Speaking of the RAID controller, there is also a “SMIS provider” VIB to be able to manage the RAID controller in the host remotely. To be honest, I need to learn more about this and the first step is to include this functionality.
- Still no native support for one of the Intel NICs on this board (Intel DQ77MK motherboard with Intel 82579LM and 82574L NICs). Therefore, NIC drivers need to be included.
- Finally, since this motherboard is more than 2 years old, at least since I last updated the BIOS, I’m going to include a CPU microcode update pack.
Preparing to include drivers in an ESXi 5.5-u2 ISO
Previously, I have been using the graphical ESXi-Customizer tool to add drivers to an ISO, but this time I will attempt to use the PowerShell script version
Here is a recipe for the tool chain:
- Windows 7/8/8.1 with PowerShell 2.0 or higher
- VMware vSphere PowerCLI
- ESXi 5.5 Update 2 Offline Bundle (this is used instead of the ISO image)
Here is a summary of the drivers to be included.
- sata-xahci-1.24-1-offline_bundle.zip – addonboard SATA AHCI controller mappings
- igb-5.2.7-1331820-offline_bundle-2157967.zip – Intel igb 5.2.7 NIC driver
- net-e1000e-184.108.40.206-glr-offline_bundle.zip – Intel e1000e 220.127.116.11 NIC driver
- megaraid_sas-6.605.00.00-offline_bundle-2132901.zip – LSI MegaRAID driver
- VMW-ESX-5.5.0-lsiprovider-500.04.V0.53-0003-offline_bundle-2152533.zip – LSI SMIS provider
- cpu-microcode-1.5.0-1-offline_bundle.zip – AMD and Intel CPU microcode update
The ESXi-Customizer-PS has a really nice feature where it is possible to make it load an entire directory with files to be included. I created an offline_bundles subfolder from where I put the ESXi-Customizer-PS script and copied all files to it.
Executing the ESXi-Customizer-PS script
I’m a complete PowerShell noob and it took me a while to just make it run the script. I had to run the following command to allow script:
Navigate to the ESXi-Customizer script folder and run the following command:
.\ESXi-Customizer-PS-v2.3.ps1 -pkgDir .\offline_bundles -izip .\update-from-esxi5.5-5.5_update02-2068190.zip -nsc
To make it easier to read, here it is again broken into multiple rows:
A successful output looks something like this:
Script to build a customized ESXi installation ISO or Offline bundle using the VMware PowerCLI ImageBuilder snapin
(Call with -help for instructions)
Running with PowerShell version 2.0 and VMware vSphere PowerCLI 5.8 Release 1 build 2057893
Adding base Offline bundle .\update-from-esxi5.5-5.5_update02-2068190.zip ... [OK]
Getting ImageProfiles, please wait ... [OK]
Using ImageProfile ESXi-5.5.0-20140902001-standard ...
(dated 08/23/2014 06:46:46, AcceptanceLevel: PartnerSupported,
For more information, see http://kb.vmware.com/kb/2079732.)
Loading Offline bundles and VIB files from .\offline_bundles\ ...
Loading D:\Linux\ESXi5.5u2VIBs\offline_bundles\cpu-microcode-1.5.0-1-offline_bundle.zip ... [OK]
Add VIB cpu-microcode 1.5.0-1 [OK, added]
Loading D:\Linux\ESXi5.5u2VIBs\offline_bundles\igb-5.2.7-1331820-offline_bundle-2157967.zip ... [OK]
Add VIB net-igb 5.2.7-1OEM.518.104.22.1681820 [OK, replaced 22.214.171.124.1-1vmw.5126.96.36.1993387]
Loading D:\Linux\ESXi5.5u2VIBs\offline_bundles\megaraid_sas-6.605.00.00-offline_bundle-2132901.zip ... [OK]
Add VIB scsi-megaraid-sas 6.605.00.00-1OEM.5188.8.131.521820 [OK, replaced 5.34-9vmw.5184.108.40.2068190]
Loading D:\Linux\ESXi5.5u2VIBs\offline_bundles\net-e1000e-220.127.116.11-glr-offline_bundle.zip ... [OK]
Add VIB net-e1000e 18.104.22.168-glr [New AcceptanceLevel: CommunitySupported] [OK, replaced 1.1.2-4vmw.522.214.171.1243387]
Loading D:\Linux\ESXi5.5u2VIBs\offline_bundles\sata-xahci-1.24-1-offline_bundle.zip ... [OK]
Add VIB sata-xahci 1.24-1 [OK, added]
Loading D:\Linux\ESXi5.5u2VIBs\offline_bundles\VMW-ESX-5.5.0-lsiprovider-500.04.V0.53-0003-offline_bundle-2152533.zip ... [OK]
Add VIB lsiprovider 500.04.V0.53-0003 [OK, added]
Exporting the ImageProfile to 'ESXi-5.5.0-20140902001-standard-customized.iso'. Please be patient
Now you have an installation image ready to be tested!