VMware Updated Nov 4, 2026

How to Simulate Custom ESXi SMBIOS Hardware Strings (Vendor, Model, Serial) with ignoreHwSMBIOSInfo and vsish (Lab Only)

4 min read

Short answer: ESXi reads the hardware vendor, model, serial number and UUID from the firmware’s SMBIOS tables. In a lab you can override them in two steps. First, add ignoreHwSMBIOSInfo=TRUE to kernelopt in /bootbank/boot.cfg and reboot. Then write your own values to /hardware/bios/dmiInfo with vsish and restart hostd. This works on physical and nested ESXi, with BIOS or EFI firmware. It does not persist across reboots and is unsupported, so use it in labs only.

To look up the esxcli hardware platform commands used here, search the interactive ESXCLI mindmap.

What SMBIOS strings ESXi shows, and why you would fake them

The Hardware panel in the Host Client and vCenter, esxcli hardware platform get, and the vSphere API all report what the firmware exposes through SMBIOS/DMI. Broadcom KB 384493 shows the two ways to read it:

esxcli hardware platform get

vsish -e get /hardware/bios/dmiInfo

In a homelab, whitebox or nested hosts show generic strings such as “VMware, Inc.” or “Default String”. Custom values are handy when you want to:

  • test scripts, reports or automation that branch on vendor or model
  • make nested hosts in a demo look like distinct physical servers, each with its own serial number
  • reproduce customer-side behaviour that depends on hardware identity

If your production hosts show “Default String” or a wrong serial, this is not the fix. KB 384493 says the firmware is supplying incomplete SMBIOS records and the vendor must provide a firmware update.

Step 1: tell ESXi to ignore the hardware SMBIOS

Append the kernel option to the existing kernelopt= line in /bootbank/boot.cfg. Keep what is already there, add a space, then the option. Reboot the host afterwards.

vi /bootbank/boot.cfg
# kernelopt=<existing options> ignoreHwSMBIOSInfo=TRUE
reboot

Broadcom documents two ways to pass boot options: edit the kernelopt line in boot.cfg, or type them after pressing Shift+O at the boot prompt (see About the boot.cfg File). Shift+O applies only to that one boot, so the boot.cfg edit is the practical choice here.

Step 2: set the custom dmiInfo with vsish

The dmiInfo node takes one structure. The field order is product name, vendor, serial number, UUID as a 16-element byte array, BIOS version string, a numeric field, SKU string and family string. The example below uses placeholder values:

vsish -e set /hardware/bios/dmiInfo {\"LAB-R650\", \"vDan Lab\", \"LAB-SN-0001\", [<16 UUID bytes>], \"1.0.0\", 6, \"SKU=LAB650\", \"vDanLab\"}

/etc/init.d/hostd restart

esxcli hardware platform get

The UUID must be written as 16 decimal byte values, and the byte order is easy to get wrong. William Lam’s post (linked below) includes a PowerShell function, Generate-CustomESXiSMBIOS, that takes UUID, model, vendor, serial, SKU and family and prints the full vsish command. Use it rather than converting the UUID by hand. After hostd restarts, the new strings show up in the Host Client, in vCenter and through the vSphere API.

Persistence and Secure Boot

The vsish change lives in memory, so the custom values are lost at every reboot and must be set again. You could re-apply it from /etc/rc.local.d/local.sh, which Broadcom KB 324525 documents for boot-time commands. Two limits apply. Commands must go before the exit 0 line, and the script does not run when UEFI Secure Boot is enabled. On Secure Boot hosts, re-run the command manually or from your lab automation after each boot.

Not the same as SMBIOS.reflectHost

SMBIOS.reflectHost is a VM setting (.vmx) that passes the physical host’s SMBIOS identity into a guest. KB 313985 covers it because it makes VMs report the host’s serial number. It copies real values and cannot invent new ones, so it cannot give each nested ESXi host its own identity. The ignoreHwSMBIOSInfo plus dmiInfo approach works inside ESXi itself, whether ESXi runs on metal or in a VM.

Support statement

Neither ignoreHwSMBIOSInfo nor writing to /hardware/bios/dmiInfo is documented by Broadcom as a supported configuration. Faking hardware identity on a production host can break hardware compatibility checks, vendor add-ons and support workflows. Use it only on lab hosts you can rebuild, such as a minimal VCF 9.0 lab. The esxcli command reference lists the related esxcli hardware namespaces.

Explorer note: ignoreHwSMBIOSInfo is a VMkernel setting (esxcli system settings kernel list -o ignoreHwSMBIOSInfo) that exists since ESXi 6.7 with the default FALSE, which is why it can also be set with esxcli system settings kernel set -s ignoreHwSMBIOSInfo -v TRUE instead of editing boot.cfg; a reboot is needed either way. The ESXi Advanced and Kernel Settings Explorer shows its description and history.

Further reading

Daniel Micanek

Senior Service Architect, SAP/TDL Platform Services Team at Vivicta | vExpert ⭐⭐⭐⭐⭐⭐⭐ | Broadcom Knight: vSphere Kubernetes Service, VCF Networking (NSX), VCF Automation | Broadcom Software Knight: vSphere | Cisco Champion. Notes from running about 1,000 ESXi hosts on Cisco UCS, VCF 9 and SAP HANA on vSphere.