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-Customizer-PS
- 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-3.1.0.2-glr-offline_bundle.zip – Intel e1000e 3.1.0.2 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:
Set-ExecutionPolicy Unrestricted
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:
.\ESXi-Customizer-PS-v2.3.ps1 -pkgDir .\offline_bundles -izip .\update-from-esxi5.5-5.5_update02-2068190.zip -nsc
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.550.0.0.1331820 [OK, replaced 5.0.5.1.1-1vmw.550.1.15.1623387] 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.550.0.0.1331820 [OK, replaced 5.34-9vmw.550.2.33.2068190] Loading D:\Linux\ESXi5.5u2VIBs\offline_bundles\net-e1000e-3.1.0.2-glr-offline_bundle.zip ... [OK] Add VIB net-e1000e 3.1.0.2-glr [New AcceptanceLevel: CommunitySupported] [OK, replaced 1.1.2-4vmw.550.1.15.1623387] 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 ... All done.
Now you have an installation image ready to be tested!
Thanks so much for your post!
Thanks very much for this write up. Not tried installing stuff yet but the ISO built OK
Just a quick note that you need the zip inside igb-5.2.7-1331820-offline_bundle-2157967.zip and not the linked file otherwise you get an error “probably not a valid offline bundle”.
It is worth noting that ESXi 5.5 update 6 and ESXi 6 now include the 82579LM drivers – see http://www.v-front.de/2015/10/vmware-introduces-support-for-intel.html and https://www.focul.net/vmware-esxi-development-server-on-a-lenovo-t420/
hi all
How can i add driver to esxi 6 iso image via ESXi-Customizer-PS-v2.4.ps1?
Driver :net55-r8168-8.039.01-napi.x86_64.vib