Customizing your ESXi install with oem.tgz

oem.tgz is a file used by ESXi to customize the installation. With this file you can replace default files that ESXi uses or add additional files to the install. Below are some sample files which enable support for various storage controllers. Please search the forum for other files.

1)  ESXi 3.5 Update 4 includes some support for ICH9 and ICH10 controllers. If you are performing a new install you may not require a customized oem.tgz file. If you have been using a custom oem.tgz file you may be able to run without it. After you install patch ESXe350-200903201-O-UG – UPDATE, you can copy /bootbank/binmod.tgz to /tmp, extract it and check ./etc/vmware/ to see if your PCI id for your ICH9 or 10 controller is now listed. You should also verify that the same driver is being used. If your oem.tgz file is listing ata_piix and the binmod.tgz copy of lists the ide driver then you should continue to use the modified oem.tgz file.
2) ESXi 3.5 Update 4 supports the Intel 82566DM-2 NIC (8086:10bd) 82566DC2 (8086:294c) although they are listed as an unknown NIC in the VI client (i.e. pci.ids is not correct)

DescriptionLast Update
Community Unified oem.tgz v1.1.0 – contains ICH10, ICH8, e1000e, 3Ware, igb and Dvorak support. See change log.   Note: if you have installed this oem.tgz file properly, the version info will be diplayed in the DCUI (press F2, select View Support Information and you should see something similar to this. 2009/03/27
Enable SSH, FTP, enhanced wget and rync (change log)2009/04/16
Adds support for the 3Ware 9650SE/9690SA controllers 
Adds support for Intel Gigabit ET Dual Port adapter (8086:10c9)2009/01/29
Adds support for nForce 430 (MCP61) Ethernet adapter (10de:03ef)2009/02/17
Adds support for nVidia MCP78 SATA controller in ACHI mode (10de:0ad4)2009/03/19
Adds support for nVidia MCP78 SATA controller (10de:0759 / 10de:0ad0)2009/03/30
Adds support for nVidia NForce 430 chipset NIC2009/05/15
Adds support for Intel 82566DM-2 Ethernet adapter (8086:10bd)2009/03/11
Adds support for Intel ICH8 on HP DC77002009/04/22
Adds support for Intel 82567LM Ethernet adapter (8086:10f5) and for2009/04/21
Add support for Intel 82567LM-3 (8086:10de) and ICH10 (8086:3a02)2009/04/30
Adds support for Realtek 8169 Ethernet adapter2009/03/28
Adds support for Realtek 8168/8111C Ethernet adapter (this oem.tgz is based on Community Unified oem.tgz v1.1.0). May have performance issues.2009/05/04
Drivers for Areca ARC11XX/ARC12XX/ARC13XX/ARC16XX SATA/SAS RAID controllers. Note that the driver link is for ESX and the driver arcmsr.o would have to be extracted and added to ESXi with the necessary PCI ID data. 
Archived oem.tgz files 

Modifying oem.tgz when using the install CD

If you’re using the installable CD image to install ESXi, you will have to modify oem.tgz in two places. First you will find oem.tgz in the root of the install CD. This copy of the file is used when ESXi boots from the CD to perform the installation to CD. Should you want to add additional drivers or modify to recognize additional hardware, then you would first need to modify this file. Otherwise the install process will not be able to recognize the hardware you wish to add support for. The second copy in on a disk dump image within the file install.tgz.

For update 2 that file can be found at this path within the install.tgz file – install.tgz/install.tar/usr/lib/vmware/installer/VMware-VMvisor-big-3.5.0_Update_2-103909.i386.dd.bz2/VMware-VMvisor-big-3.5.0_Update_2-103909.i386.dd. This copy of oem.tgz would be used when ESXi boots after the install. You would need to modify this copy for ESXi to boot using it after the installation has been completed.

While it is possible to modify oem.tgz in the dd image, you may find it easier to change the file after it has been installed to your system. This would make your install process look like this should you need to add hardware support:
1) Modify oem.tgz on the install CD
2) Boot the CD and install ESXi
3) After the install is complete, reboot the host with a bootable Linux CD
4) Modify oem.tgz on the Hypervisor1 partition
5) Reboot your host and ESXi will boot using the modified oem.tgz file

Update: if you’re running Linux and want to automate the above process, check out the scripts here provided by Varazir. He has provided scripts for embedding oem.tgz into an install CD as well as to create a bootable flash drive with oem.tgz added. If you don’t want to deal with buring a CD you can also install ESXi from a USB flash drive.

Modifyng oem.tgz when booting from a USB flash drive

When you boot ESXi from a USB flash drive you will have copied the install dd image from install.tgz and you only have to modify oem.tgz on the Hypervisor1 (/bootbank) partition. You can either do this prior to booting ESXi or after. In the below example, ESXi will have been booted and you will then access the console. If you plan to modify oem.tgz to add hardware support, you’ll have had to gathered the PCI ids for the hardware.

Instructions to modify oem.tgz if you’re booting from a USB flash drive to add support for an unrecognized device.

This example assumes that you have deterimed the PCI ids for the hardware you want to add to the ESXi PCI database files and that you have been able to access the console of ESXi.

1) cd /tmp/
2) mkdir -p oem/etc/vmware
3) mkdir -p oem/usr/share/hwdata
4) cd oem/etc/vmware
5) cp /etc/vmware/
6) vi
— add the necessary PCI data for your devices
7) close vi – press ESC and enter :wq
8) cd /tmp/oem/usr/share/hwdata
9) cp /usr/share/hwdata/pci.ids pci.ids
10) vi pci.ids
— add the necessary description for your devices (this will be displayed in the console and VI Client)
11) close vi – press ESC and enter :wq
12) cd /tmp/oem
13) chown -R 201:201 ./etc
14) chown -R 201:201 ./usr
15) chmod -R 755 ./etc
16) chmod -R 755 ./usr
17) chmod 644 ./etc/vmware/
18) chmod 644 ./usr/share/hwdata/pci.ids
19) tar -cvzf oem.tgz etc usr
20) cp oem.tgz /bootbank/oem.tgz
21) cd /bootbank/
22) chmod 755 oem.tgz
23) reboot the host

Leave a Comment

Your email address will not be published. Required fields are marked *