Use ESXi-Customizer GUI to inject multiple driver VIBs into your ESXi installer ISO

Posted by Paul Braren on Dec 16 2013 in
  • ESXi
  • 24 Comments

    I've often heard that a barrier to giving VMware's ESXi a try is the burden of figuring out how to inject a driver/VIB (vSphere Installation Bundle) file into the installer ISO file. The big OEMs do it, like HP and IBM, but the home lab enthusiast may not really feel like learning VMware's official approach, nevermind the syntax.

    With the recent cut-backs in drivers included with the ESXi 5.5 compared with 5.1, it seemed like a big problem to many. Turns out it isn't that big a deal, once you locate the fine work by Andreas Peetz (@VFrontDe) over on his VMware Front Experience site, using his GUI utility called ESXi-Customizer* (see article end below, for updated info). In this step-by-step walkthrough supplemented by a video, I add ASMedia SATA, Realtek network, and LSI RAID monitoring support. Quickly, simply, easily.

    There are many ways to add driver bundles, but this article will focus on an actual example procedure I created for my own home lab. My vZilla build has the ASRock Fatal1ty Z68 Professional Gen3 motherboard from 2011. It has Realtek 8111 based NICs on the motherboard that worked great on ESXi 5.1, but ceased being recognized, when it came time for the ESXi 5.5 installer to see those devices. This gave me the dreaded "No network adapters have been detected" message discuss by other Realktek owners here. So instead of merely adding a fully support NIC like the Intel I350-T2, why not just inject this driver, along with any other needed drivers, right into the install ISO? That way, when I create the bootable USB flash drive using Rufus, I've now have the ISO to create that install source that also becomes the install target, with full support for all my devices. No SSH or VIB install commands to remember.

    Turns out the AHCI SATA ports on this motherboard by ASMedia also aren't seen by the ESXi 5.5, even though they worked fine on ESXi 5.1. This is described by Andreas in his recent How to make your unsupported SATA AHCI Controller work with ESXi 5.5 post. Then there's my LSI 9265-8i RAID controller for SSD caching reads/writes, which was never fully functional out of the box, requiring a VIB to get proper healthy monitoring going under all ESXi 5.x versions, described here. So the next hurtle was how to inject all 3 VIBs into the same ISO, given there is currently no multi-selection ability in the ESXi-Customizer VIB Browse button.

    Here's the workaround I developed, where you create a custom ISO by adding the first VIB, then repeat with the second, using the new bigger ISO as the source for that second injection. Rinse, repeat. Details here.

    Step by step to inject ASMedia, Realtek, and LSI VIBs into ESXi ISO:

    the latest ESXi-Customizer

    I put the ESXi-Customizer-v2.7.1.exe into my C:\VIBs folder. I then also took all 3 of my VIBs:

    ASMedia ASM1062 (right-click, select "Save As" to download) (filename is sata-xahci-1.10-1.x86_64.vib) for SATA support on many popular motherboards, described here. Realtek 8111/8168 (right-click, select "Save As" to download) (filename is VMware_bootbank_net-r8168_8.013.00-3vmw.510.0.0.799733.vib) for networking adapter support, described here. LSI 9265-8i(right-click, select "Save As" to download) needs the Certified LSI SMIS VIB for RAID health, described here. I used the ESXi SMIS VIB file for my exact LSI 9265-8i RAID controller. Once downloaded, you'll need to extract the zip to locate the VIB within the extract to directory.

    and put them into the same C:\VIBs directory, where I also put a copy of the original ESXi 5.5 installer called VMware-VMvisor-Installer-5.5.0-1331820.x86_64.iso.

    All-the-files-in-the-right-place
    All the files in the right place

    2) Run the EXE

    in my case, it was called ESXi-Customizer-v2.7.1.exe It auto-extracts to the same directory you ran it from

    3) Run \ESXi-Customizer\ESXi-Customizer-v2.7.1\ESXi-Customizer.cmd

    In the GUI that launches, choose the original ISO and the first VIB file, click 'Run'

    Run-ESXi-Customer.cmd-then-choose-original-ISO-and-the-first-VIB-file-click-Run
    Run ‘ESXi-Customer.cmd’ then choose original ISO and the first VIB file, click ‘Run’

    4) Rename

    the produced ISO from 'ESXi-5.x-Custom.iso' to indicate the first VIB injected

    rename-the-produced-ISO-from-ESXi-5.x-Custom.iso-to-indicate-the-first-VIB-injected
    rename the produced ISO from ‘ESXi-5.x-Custom.iso’ to indicate the first VIB injected

    5) Repeat

    Run 'ESXi-Customer.cmd' a 2nd time, choose the already customized once ISO and the second VIB file, click 'Run'

    Run-ESXi-Customer.cmd-a-2nd-time-choose-the-already-customized-once-ISO-and-the-second-VIB-file-click-Run1
    Run ‘ESXi-Customer.cmd’ a 2nd time, choose the already-customized-once ISO and the second VIB file, click ‘Run’

    rename the produced ISO from 'ESXi-5.x-with-sata.iso' to indicate second VIB injected

    rename-the-produced-ISO-from-ESXi-5.x-with-sata.iso-to-indicate-second-VIB-injected
    rename the produced ISO from ‘ESXi-5.x-with-sata.iso’ to indicate second VIB injected

    6) Repeat again

    Run 'ESXi-Customer.cmd' a 3rd time, choose the already customized twice ISO and the third VIB file, click 'Run'

    Run-ESXi-Customer.cmd-a-3rd-time-choose-the-already-customized-twice-ISO-and-the-third-VIB-file-click-Run
    Run ‘ESXi-Customer.cmd’ a 3rd time, choose the already customized twice ISO and the third VIB file, click ‘Run’

    rename the produced ISO from 'ESXi-5.x-with-sata-and-realtek.iso' to indicate three VIBs injected. In my case, that final filename wound up being called: ESXi-5.x-with-sata-and-realtek-and-lsi.iso

    rename-the-produced-ISO-from-ESXi-5.x-with-sata-and-realtek.iso-to-indicate-three-VIBs-injected
    rename the produced ISO from ‘ESXi-5.x-with-sata-and-realtek.iso’ to indicate three VIBs injected

    That's it!

    I then used Rufus to make the install USB flash drive from that custom ISO, using the well documented TinkerTry procedure Rufus takes 2 minutes to create a bootable USB flash drive for ESXi installation.

    Here's a quick look at the hardware visibility.

    ASMedia-ASM1062-SATA-ports-visible-to-ESXi-5.5
    ASMedia ASM1062 SATA ports visible to ESXi 5.5
    Realtek-8111-NICs-seen-by-ESXi-5.5
    Realtek 8111 NICs seen by ESXi 5.5
    LSI-RAID-health-shown-in-vSphere-Client
    LSI RAID health shown in vSphere Client

    It was fun to create this simple video, and you have the assurance that method resulted in a fully functioning home lab for me, with all 3 of the added drivers performing as expected. Nice! A future video will show the entire lab build process, from start to finish.

    See also:

    by Andreas Peetz on Dec 11 2013

    by Andreas Peetz on Nov 04 2013

    by Paul Braren Sep 10 2013

    by Paul Braren Sep 24 2013


    *Jan 06 2014 Update:

    Andreas Peetz has now published a very relevant article today:

    where he explains the following key info:

    Although ESXi-Customizer-PS makes the use of ImageBuilder much easier it is not as easy as ESXi-Customizer, because it does not provide a GUI, but needs to run in a Powershell/PowerCLI console. This is the main reason why ESXi-Customizer is so popular today and will probably remain popular for quite a while.
    ...
    The most requested feature of ESXi-Customizer is the ability to add multiple VIB files in one run. I have not and will not implement that, but there are workarounds available:

    • Run ESXi-Customizer multiple times adding one VIB file per run and using the output ISO of one run as input for the next run.
    • Add all VIB files to one Offline Bundle (using vib2zip.cmd) and add this Offline Bundle instead of the individual VIB files ...
    • ... or just use ESXi-Customizer-PS with this Offline Bundle!

    Well, Andreas isn't kidding, this article has been viewed well over 500 times in these past few weeks, with the video at 340 views. It's not surprising, given the GUI makes adding 3 VIBs into one ISO so easy, with no command line stuff to copy and paste or memorize. So will I be changing my ESXi 5.5 install guides? Probably not until a new GUI is developed by Andreas. Good news! Here's what Andreas says about that:

    I am aware that the legacy ESXi-Customizer tool is still very popular, because it offers a very clear and easy-to-use GUI that even ESXi beginners can work with. In contrast the ESXi-Customizer-PS Powershell script looks intimidating (at least at first glance), because it requires you to enter a command line with lots of possible options. This is why I will work on improving the usability of ESXi-Customizer-PS and also adding some sort of GUI to it...In the meantime I will continue to support the legacy ESXi-Customizer tool, so - no worries - it will not go away completely soon!

    Frankly, for ESXi 5.5, no hurry really, I have my Realtek, ASM1062, and LSI working, so this may not be something I'll need to incorporate into my own home lab build process about until ESXi 6(?) is released, typically announced at VMworld in late August, with download availability in September. So for the major refresh of Build your own VMware vSphere 5.5 Datacenter with ESXi and VCSA that I'm working on now, I'll incorporate the new SSO-problem-free vCenter Appliance 5.5.0b, and the 3 driver VIB install technique I used for the above article. By the way, this time around, the lab build procedure is under an hour, and the steps have actually been typed up as well, to be in an easy-to-use checklist format. Stay tuned!


    All Comments on This Article (24)

    What a fantastic post! This is so chock full of useful information I can't wait to dig deep and start utilizing the resources you have given me. Your exuberance is referring. I am just over one month into blogging and have achieved some early milestones, I recently wrote an article on oneplus 8 5G. Anyway, I'm looking forward to reading more of your articles that you've linked in here.

    This is a very old article, and Andreas has replaced the old (no longer supported) injection tool with this newer version:
    https://www.v-front.de/2016/11/update-esxi-customizer-ps-25-esxi-image.html
    Hope this helps!

    I am using Cubi-2 - I7 processor, 32GB RAM and M.2 Sata 256GB. I tried injecting Network Drivers VIB and I am getting this error: "The system has found a problem on you machine and cannot continue. Failed to Validate acceptance levels: Failed to check acceptance levels: None"

    Please help!

    Great tip, thanks for typing this all up for everybody!

    If you use ESXi 6.0 or ESXi 6.5 or newer, you must use ESXi-Customizer-PS. The Windows app ESXi-Customizer is deprecated.

    ESXi-Customizer-PS
    is a tool from the same author (Andreas Peetz) that runs under PowerCLI
    and you can also inject a driver into ISO ESXi install.

    Extracted from: http://www.sysadmit.com/2017/01/vmware-esxi-instalar-driver.html

    Love this story, thank you for sharing, so glad it works so well for you!

    Thanks Paul for this great article, I just tried this today with esxi6 u2 and it worked like a charm. I have lsi 9650 24 port and raid 6 using 7 drives of 2gb each. I use this for my main movies/music/picture storage and wanted to move to ESXi, after adding the driver vib with the Customizer software I installed esxi6 u2 which recognized the raid controller if I wanted to install esxi on it, but I chose to install on the same USB flash drive, then I enabled pass through for the lsi 9650 in the host, installed Windows vm, added a pci device to the vm (9650 was the only option), installed Windows drivers inside the vm, automatically recognized my raid array as a foreign disk, imported the foreign disk in "disk management" and Voila! All files and folders are still there.
    I know there are lots of people trying to figure this out and I just wanted to share.

    Well, I hope you found that LSI article fascinating.
    Sorry about this oops, Rico, clearly not in the typo category, more likely in the cut-and-paste oops category.
    Thank you so much for the feedback, article now fixed!

    Hi Paul, I just noticed. For some reason that link (here) in the section titled "That's it" doesn't link to the Rufus tutorial, but to the LSI Raid Health fix guide.

    Admittedly, this method:
    http://www.tinkertry.com/install-esxi-5-5-with-realtek-8111-or-8168-nic/

    won't work on all Realtek users systems, it's just a workaround, just in case it helps.

    I can say an (admittedly expensive) I350 Intel NICs will work well:
    http://TinkerTry.com/intel-i350t2-dual-port-ethernet-server-adapter-for-esxi-home-lab/
    http://amzn.to/1wnmQkM

    I have an ASUS M4N68T-M V2 with built in Nic, I tried the options ESXi-Customizer Software that you recommended in this blog but I still getting error of NIC not detected. any advise please. Thanks in advance :-)

    hello I have a Hp Dl580 G7 server and I installed ESXi 5.5 and Vcenter 5.5 on the Server .I have a GPU AMD Firepro S10000 and I want to install on this Server. Can I install the GPU on the Server ? Do I need any Driver for this GPU? Does a Server need any requirements for AMD Firepro S10000 ? Where do I get the (.vib) file? please help me because I have little time sincerely yours

    Wow, this is amazingly helpful information for my site visitors, thank you AlexJoda! Curious how you figured all this out, did you find an LSI support rep who knows ESXi?


    I don't personally own a 9361 myself, but your tip sure sounds promising.


    At the moment, I"m a little distracted with back to school season, and cleaning up after RAID5 single drive failure on my 9265-8i, and a (related) strange CacheCade Pro error.

    Looks like I solved this problem ! VMware introduced an additional LSI driver with ESXi 5.5 called lsi-mr3 for the SAS3 (3108) "Invader" Controllers . if this driver is installed it takes over the SAS3 controllers from the scsi-megaraid-sas driver, even if it is installed too.

    The actual lsi-mr3 installed with the ESXi 5.5 Patch 5 version form Juli 1, 2014 is not running with the LSI SMIS provider ! LSI recommends to install the new scsi-megaraid-sas driver version megaraid_sas-6.604.54.00-1948917 to fix this. This driver can drive all LSI Megaraid controllers (SAS2 92xx and SAS3 93xx).

    But after installing this new LSI driver the SAS3 controllers are still not visible because the lsi-mr3 driver is still there and "competes" with the new scsi-megaraid-sas driver for the SAS3 controllers (and seems to win...). After finding this out the solution was easy: You have to delete the lsi-mr3 driver with the following command:

    "esxcli software vib remove -n lsi-mr3" from the SSH shell. After rebooting the SAS2 and SAS3 controllers showing up in the Hardware Status and are even manageable with the MegaRAID Storage Manager (sometimes only with the help of slp_helper...)

    Paul: thanks for the reply. Did your monitoring is working also for the new 9361 SAS3 controllers ? We have a 9240 and a 9361 controller in the same host and only the 9240 is showing up in the components list and is monitored with MSM. So it looks like the LSI SMIS provider is not compatible with the 9361 series at the moment (MR6.4).


    We wrote to LSI support regarding this but only standard helpless answers (install the latest drivers and so on..) until now. They give you the impression that you are the only person in the world having this problem, but if it is true that the new standard SAS3 controller is not compatible with ESXi 5.5 they should have thousands of customers with the same problem...


    Alex

    Yeah, frustrating, I know.

    I wrote some tips for folks with MegaRAID issues in the section "May 04 2014 Update" in this article, but your issue is worse than just getting MegaRAID working:
    http://TinkerTry.com/esxi-5-1-can-run-lsi-megaraid-in-a-vm

    your issue is getting health monitoring working at all, with 5.5 U1.

    I wrote up some of my frustrations here:
    http://TinkerTry.com/years-of-trying-to-make-my-lsi-9265-8i-raid-controller-play-nice-with-esxi

    I don't have the patch5, and my monitoring is working (I have a failed drive I'm dealing with now actually), hard to know how 6.0 will behave, sure hope they get out of the box support for LSI going smoother.

    Same problem here. The health status of the LSI 9361-8i is not shown even in ESXi 5.5U1 Patch5 with newest driver and LSI SMIS provider. The whole controller is not listed at all in the software components. Without health status even a great controller like the LSI 9361 is not usable for production environments.... (Today we measured 6.4 GB/s transfer speed from 24 SATA SSDs with ESXi and IOMeter !)

    if i use MSM inside the VM, it would show up the esxi host as loopback IP. no wonder I was not able to connect to it using a remote pc. When I try to log in, it say wrong username/password or CIM not running.

    I am using LSI 9361-8i. I think the health status was shown but I was not able to connect to it through LSI MSM.

    Sorry about the Disqus moderator trouble below, please ignore, so sorry about that.

    No, if you inject the LSI driver you desire into the installer ISO, you're all set, the driver you injected is automatically already active.

    By the way, new LSI drivers out now (that I haven't yet tested), read bottom of this article for details:
    http://TinkerTry.com/years-of-trying-to-make-my-lsi-9265-8i-raid-controller-play-nice-with-esxi

    that means it's time for a whole new ESXi 5.5 Update 1 / LSI 926x RAID controller article, not sure yet which weekend I'll be able to tackle that.


    So glad you stopped by hank, hope this helps!

    so no need to do in that article?

    if i inject the VIB to the ISO, do I need to do this also?
    http://www.tinkertry.com/lsi92xx-health-under-esxi-51/

    Great article - thanks. I was experiencing problems with the install after injecting LSI MegaRaid drivers. The error during the install process:

    ErrorValue: "Invalid acceptance level".

    Seems to be related to the acceptance level of the vibs being lower than the host installation requirement. The default host acceptance level is PartnerSupported (https://pubs.vmware.com/vsphere-55/index.jsp?topic=%2Fcom.vmware.vsphere.install.doc%2FGUID-6ED55C6B-E2FA-4DAB-B98D-E80FE1B8F1D9.html) and I did use the Community Packaging Tool to create a vib from a tgz file at the default 'community' setting. Repackaging these tgzs and setting the acceptance level to 'vmware' (higher than the host install) gave a different error:

    InstallationError: (None, 'No image profile is found on the host or image profile is empty. An image profile is required to install or remove VIBs. To install an image profile, use the esccli image profile install command.')

    This is getting complex. Admittedly, I'm injecting both the driver VIB (MR 6.2, Version: 6.602.55.00.1) and the SMIS VIB (MR 6.2, Version: 00.50.V0.04). This should mean I have the latest DRIVER and the latest MANAGEMENT SOFTWARE for ESXi. But it's proving a problem. And I assumed that setting the acceptance level higher than the default host installation level would work. I repackaged the Driver files into various levels and changed different flags (for Maintenace mode, Live install etc) and set about injecting those into separate install ISOs. I then worked through these methodically.

    I did get this installing though (and error free) with nothing more than changing the acceptance level on the Community Packaging Tool to 'Accepted', no other changes needed.



    And finally, I come to a question, any reason you didn't install the latest LSI MegaRaid DRIVER (not the SMIS files)?