WilliamLam.com

  • About
    • About
    • Privacy
  • VMware Cloud Foundation
  • VKS
  • Homelab
    • Resources
    • Nested Virtualization
  • VMware Nostalgia
  • Apple
You are here: Home / Automation / How to create a customized ESXi ISO without vCenter Server?

How to create a customized ESXi ISO without vCenter Server?

02.01.2022 by William Lam // 28 Comments

Historically, if you needed to create a customized ESXi ISO that included additional ESXi drivers, your only supported option was to use the vSphere Image Builder service, which has a dependency on vCenter Server. If you have an existing vCenter Server, this was not a problem and you could easily create a customized ESXi ISO using either the vSphere UI (example here) or the CLI with PowerCLI (example here).

Where this becomes a real challenge is for a greenfield or brand new deployment, where the default ESXi ISO can not be used as it does not contain the required networking and/or storage drivers for the desired hardware platform. Although this affects some customers who use hardware from the VMware HCL but it definitely has a bigger impact on the VMware Homelab community or anyone just getting started for the very first time.

While discussing this topic with a colleague recently, I actually came to learn about an alternative solution for creating a customized ESXi ISO without the need of vCenter Server! Thanks to fellow team member Blair Fritz, who now works in the VMware Cloud Product Management team, for the awesome tip.

PowerCLI 12.0 was a major release with a TON of new functionality, but it it also included a couple of new cmdlets: New-IsoImage and New-PxeImage that allows users to create a custom ESXi ISO and Image without the need of vCenter Server. This was actually the first time I had heard about these cmdlets and I am guessing that this is probably going to be news for many of you as well.

UPDATE (03/14/25) - As of PowerCLI 13.3.0, the New-IsoImage cmdlet does work with PowerShell Core and does NOT require Windows system. I was able to successfully build a custom ISO using the script below on macOS 13.7.4

The official VMware documentation does a pretty job explaining how the New-IsoImage cmdlet works, so I will not bore you with the details. One important thing to quickly mention is that these new cmdlets are included under the VMware.ImageBuilder module and unfortunately, that module has not been ported over to PowerCLI Core which also means you will need to use PowerShell on Windows to make use of these cmdlets. The other really cool thing about -Depot argument is that it can reference both a locally download ESXi Image Profile (zip) or it can actually point to VMware's Online repo located at https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml. Using this second option for the depot, I have found that it can take up to 30 seconds before it lists the version when using the Get-DepotBaseImages cmdlet to identify the version string that is required.


I know many folks in the community often create custom ESXi ISOs that include the popular USB Network Native Driver for ESXi, Community NVMe Driver for ESXi and Community Networking Driver for ESXi to name a few and I wanted to make it even easier for folks to get started.

Note: While testing the New-IsoImage cmdlet, I ran into an error when using the USB Network Native Driver for ESXi Fling and it looks like the driver was not created with specific metadata that the cmdlet is expecting. Hopefully we will be able to fix this in a future update of the Fling, but for now, you will need to use the Image Builder service if you need to incorporate USB Fling but for the Community Network and Storage Driver for ESXi, those work as expected.

To aide in this infrequent process, I have created a small PowerCLI script called create_custom_esxi_iso.ps1 which handles creating the required JSON software spec and the only thing users need to provide is the path to the ESXi Image Profile and a list of ESXi Offline Bundle Drivers paths. The script will check to ensure you are running PowerShell for Windows as PowerShell Core is NOT supported and also means you will need a Windows desktop to use this script.

Here is an example output of the script creating a new custom ESXi 7.0 Update 3c ISO that contains both the Community Network and Storage Driver for ESXi:

More from my site

  • PowerCLI 13.0 on Photon OS
  • Heads Up - Unable to open VIB archive in streaming mode using Export-EsxImageProfile with PowerCLI 13.0
  • Deploying NSX-T VIBs and/or creating custom NSX-T Image Profile
  • How to install ESXi 5.5 Patch03 on the new Mac Pro 6,1?
  • Quick Tip - Retrieving vSAN File Share Network Permissions using vSAN API & PowerCLI

Categories // Automation, ESXi, Home Lab, PowerCLI, vSphere Tags // image builder, New-IsoImage, PowerCLI

Comments

  1. *protectedMichael Ryom says

    02/01/2022 at 8:11 am

    Thanks for sharing William! But im not sure I get whats new/different from the VMware.ImageBuilder PowerCli commands that has been used for ages?

    Reply
    • William Lam says

      02/01/2022 at 9:18 am

      You should read the blog post again, if you didn’t pick up the difference 🙂

      Reply
      • *protectedMichael Ryom says

        02/01/2022 at 9:27 am

        Still dont see it. PowerCli/VMware.ImageBuilder module has no dependency on vCenter and you can add offline bundles, drivers and depots online/offline and it exports as bootable ISO. What am I missing?

        Reply
        • *protectedparambil says

          02/02/2022 at 10:12 am

          Agree with Michael. I have been creating custom ESXi ISO for many years now using image builder, which has no dependency to vCenter.

          Reply
          • *protecteddaye says

            11/19/2024 at 8:34 pm

            Does this still work now, I mean after Broadcom purchased VMVware and we can not download the offline bundles zip? I can still download the drive zip from Flings and I still have the ESXI7.03 ISO, Can you let me know if I can build the customized image based on ESXI ISO instead of the the offline bundle zip ? Thank you.

          • William Lam says

            11/20/2024 at 7:39 am

            yes, this continues to work and has nothing to do with the acquisition. Please give it a try before commenting that it may not work 🙂

  2. *protectedShane Gibson says

    02/01/2022 at 8:13 am

    William - great posting - thank you. We deal with spinning ESXi ISOs all the time - and any improvements in the process are certainly welcome.

    Still incredibly heartbroken that someone thinks "Windows required" is a valid strategy. Highly automated environments include CI/CD toolchains that may spin ESXi ISOs and test the deployments ... which is awfully annoying / frustrating / hard to do with a Windows desktop requirement inserted in that toolchain.

    Here's to hoping that VMware one day in the next few decades modernizes this path ... primarily by jettisoning the 1990s era style requirement for spinning ISOs. Hello ... online software depots ... anyone?

    Seriously though - thank you!!

    Reply
    • *protectedMichael Rice says

      02/03/2022 at 11:38 am

      I couldnt agree more. Hopefully this cmdlet could get ported into core because at least then a docker solution could help to automate some of this.

      Reply
  3. *protectedBoner Alert (@bobbyw) says

    02/01/2022 at 9:43 am

    I've been using ESXi for years and even the PS Customizer script but I don't see any info in this article what spec.json is, why you would need it, or how you would make it. Could you elaborate?

    Reply
    • William Lam says

      02/01/2022 at 11:22 am

      The article doesn't cover the JSON details because I had linked to official docs. Its https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.esxi.install.doc/GUID-83DB452B-669A-4270-8E0D-B902188376D3.html (which is referenced in the article). This is new in vSphere 7.0 and includes support for vSphere Lifecycle Manager (vLCM)

      PS Customizer (although a very awesome community tool, it is NOT officially supported by VMware) and as an employee, we definitely recommend using the official tools to ensure the best possible customer experience

      Reply
      • *protectedBoner Alert (@bobbyw) says

        02/01/2022 at 1:31 pm

        Thank you!

        Reply
  4. *protectedSteve Ballmer says

    02/01/2022 at 3:36 pm

    Where does it say you need vCenter to use Image Builder? It can be installed on standalone windows workstations with no vCenter anywhere in the environment.

    https://docs.vmware.com/en/VMware-vSphere/6.5/com.vmware.vsphere.install.doc/GUID-C84C5113-3111-4A27-9096-D61EED29EF45.html

    Reply
    • William Lam says

      02/01/2022 at 3:40 pm

      Steve - In the past (see the reference example when I had to create a custom ESXi ISO with NSX-T VIBS), I was not able to proceed without needing to first connect to vCenter Server (which is where the Image Builder service resides). I've also seen this from other users but interestingly, I see that both you and Michael mentioned that hasn't been your experience. I'm now wondering if this was an earlier limitation or constraint but I certainly ran into this over the years and hence the article.

      Aside from the dependency aspect, these cmdlets are the recommended ones going forward, especially if you wish to construct customized ESXi Image that can function with the new vSphere Lifecycle Manager (vLCM) feature

      Reply
      • *protectedSteve Ballmer says

        02/02/2022 at 3:04 pm

        Thanks for the reply William. Great site. Keep up the great work.

        Reply
  5. *protectedVirtuallyWired says

    02/01/2022 at 3:46 pm

    Thanks William, great post! I usually use the PowerCLI ImageBuilder cmdlets myself but, I recently posted on my blog how to do it via vCenter ImageBuilder.

    Reply
  6. *protectedRoy says

    02/21/2022 at 7:02 am

    I'm using DellEMC custom images, and I need to remove a driver VIB that is causing issues in our environment. So, for this new procedure: https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.esxi.install.doc/GUID-83DB452B-669A-4270-8E0D-B902188376D3.html

    How can I specify a vib to REMOVE? The VIB is actually in the addon package.

    Reply
  7. *protectedTom says

    05/24/2022 at 7:24 am

    Is there already a fix available for PowerCLI to recognize the custom NIC driver?

    Reply
  8. *protectedjeremycirca1980 says

    01/12/2023 at 2:54 pm

    I built a Docker Container that runs PowerCLI 13 with Image Builder support. I'm a Mac user and didn't always have access to a Windows machine to run PowerCLI with Image Builder so, when I saw PowerCLI 13 came out, I jumped for joy. Anyways, I get a lot of my information from William Lam and this website I wanted to share the link to the Container. I hope it helps someone out as much as it helps me out. https://hub.docker.com/r/jmcombs/vmware-powercli

    Reply
    • *protectedscheblein says

      03/24/2023 at 5:53 pm

      THIS works! So nice to finally be able to add the USB Fling to the ESXi ISO. Thanks for putting this together (from a fellow Mac user).

      Reply
      • *protectedSemoTech says

        03/11/2025 at 5:51 pm

        Mind sharing a step-by-step on how you used it and did it on a Mac? I have to make a custom ESXi 8.0.3 (ESXi-8.0U3d-24585383-standard) installer with the USB & NVMe flings as well as optimized for a 2018 Mac mini. Thank you.

        Reply
    • *protectedSemoTech says

      03/11/2025 at 5:49 pm

      Thats awesome! Mind sharing a step-by-step tutorial on how to deploy and use it on a Mac (Sonoma)? I noticed there is already a Docker Desktop GUI MacOS app, and hope I can use your Docker container with it, if you would be so kind as to advise exactly how to do so... I need to make a customized bootable installer of ESXi 8.0.3 (ESXi-8.0U3d-24585383-standard) and could really use your help! Thank you.

      Reply
  9. *protectedTK says

    05/03/2025 at 4:17 pm

    This no longer works 🙁

    https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml

    Add-EsxSoftwareDepot or Get-DepotBaseImages just returns a HTTP 403: Forbidden

    Reply
    • William Lam says

      05/03/2025 at 4:26 pm

      It works BUT you need to now use download token. See https://blogs.vmware.com/cloud-foundation/2025/03/24/download-changes-vmware-software-binaries/ for more details

      Reply
      • *protectedTK says

        05/03/2025 at 4:53 pm

        Thanks for the quick reply!
        I just saw that too, but still didnt get far. There is no "Generate Download Token" under Quick Links for me like shown here; https://knowledge.broadcom.com/external/article/390098 and the search returns nothing too. I guess I'am not a "Product Administrator"? But I cant "Build my Profile" because I get an "This option is not available to users who have registered with a non-corporate email domain."-error.

        This thing is such a mess currently, it would be very helpful if you could update your guide to work with all the changes.

        Reply
        • William Lam says

          05/03/2025 at 9:11 pm

          If you don’t have active entitlement, you won’t have ability to creat download token. Please refer to KB for more details

          Reply
          • *protectedTK says

            05/04/2025 at 4:10 am

            Which in return makes it currently impossible to use the USB Network Fling for homelab purpose :/

  10. *protectedbob says

    05/05/2025 at 8:45 am

    Anyone tried the 8.0U2 USB Network driver (available on archive.org) on 8.0U3 or have a link to version 1.15 for U3?

    Reply
    • *protectedBob says

      05/05/2025 at 9:00 am

      found it here: https://community.broadcom.com/flings/home

      Reply

Thanks for the comment!Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Search

Thank Author

Author

William is Distinguished Platform Engineering Architect in the VMware Cloud Foundation (VCF) Division at Broadcom. His primary focus is helping customers and partners build, run and operate a modern Private Cloud using the VMware Cloud Foundation (VCF) platform.

Connect

  • Bluesky
  • Email
  • GitHub
  • LinkedIn
  • Mastodon
  • Reddit
  • RSS
  • Twitter
  • Vimeo

Recent

  • VMware Flings is now available in Free Downloads of Broadcom Support Portal (BSP) 05/19/2025
  • VMUG Connect 2025 - Minimal VMware Cloud Foundation (VCF) 5.x in a Box  05/15/2025
  • Programmatically accessing the Broadcom Compatibility Guide (BCG) 05/06/2025
  • Quick Tip - Validating Broadcom Download Token  05/01/2025
  • Supported chipsets for the USB Network Native Driver for ESXi Fling 04/23/2025

Advertisment

Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use.
To find out more, including how to control cookies, see here: Cookie Policy

Copyright WilliamLam.com © 2025

 

Loading Comments...