Posts Tagged ‘script’

Adding Realtek 8111E NIC to ESXi install

October 11th, 2011 No comments

This was originally supposed to be how to update the ESXi ISO to allow for installation by USB to a machine with the Realtek 8111E NIC.  Having spent most of the day trying to get this working either as USB install or Network install, I’ve for the moment put the idea on hold.  Following the instructions available online and using the mkesxiaio script, I was able to install ESXi using USB, but as soon as I tried to use the OEM.TGZ file, the install would get to the reading the Kickstart config file, then erroring indicating autopart –firstdisk –overwritevmfs had no valid target.  Until I can find a solution for this I’ve used the following to get the Realtek enabled.


Things you’ll need –

  • Installed ESXi Server with a Realtek NIC
  • SSH client (Putty is my choice on Windows)
  • oem.tgz file from vm-help


Steps involved –

  • Copy the oem.tgz file to a location the esxi machine has access to (NFS share etc)
  • Enable SSH access to the ESXi box
  • cd to /vmfs/volumes/Hypervisor1
  • mv oem.tgz oem.tgz.ORIG
  • copy the new oem.tgz file to /vmfs/volumes/Hypervisor1
  • Restart the ESXi box.
  • You should now be able to add the Realtek to a vswitch
I’m sure there are other ways of doing this, but this has worked for me.  If you have other methods of creating either the Kickstart USB with the oem.tgz included, or copying the oem.tgz file to the machine, let me know in the comments.  Unless you need the SSH enabled I’d recommend disabling it again, after you’re done.




UPDATE – Something I later found which I now think is the root of my previous problems, when I use the above method to change the oem.tgz file, I lose access to the local datastore after a reboot.  It looks like there is something in the existing oem.tgz that is removed when I add in the new one.  I’m going to try to merge the two oem.tgz files, and see if this resolves the problem.


Creating a Bootable USB key for ESXi 4.1

October 6th, 2011 1 comment

I know I’m probably a bit behind the times here, given that v5 is already out, but I haven’t done my VCP4 exam yet so I’m still going through the motions for configuring my home lab.  Given I didn’t purchase CD/DVD drives for my lab machines and I haven’t set up a PXE environment yet, though I have plans to do this in the near future, I needed another way to set up the two boxes.  There are lot of examples of how this is done around the interwebs, I tried two methods, both work, though I needed a few modifications to the Windows option. The original information is linked below.


The Linux Option –

For those of you running a derivation of linux the follow instructions worked for me.  NOTE – these instructions are taken from Vallard’s Tech Notes, so credit is due there. 

Things you’ll need –

  • ESXi iso, available from VMware
  • A USB key (at least 512mb, though I don’t even think you can buy these anymore)
  • Linux Box (I used a Ubuntu 10.04 Server)
Steps –
  • Make a mount point and mount the ESXi iso.
mkdir /media/ISO
mount -o loop VMware-VMvisor-Installer-4.1.0.update1-348481.x86_64.iso /media/ISO
  • Make the USB bootable with a Win95 image.  You will need to check where the USB stick has been attached (mine was /dev/sdb)
fdisk /dev/sdb
d (delete all partitions)
n # new partition
p # primary partition
1 # 1 is the partition number.
1 # the first cylinder
<enter> # the size of the partition, I just used the full disk
a # toggle bootable flag
1 # make partition 1 bootable
t # change the type
1 # of partition 1
b # partition type W95 FAT32
w # write it out
  • Next we need to format the disk
mkfs.vfat -n BOOT -F 32 /dev/sdb1
  • Using syslinux we make the disk bootable
syslinux -s /dev/sdb1
dd if=/usr/lib/syslinux/mbr.bin of=/dev/sdb # this on in the disk itself (sdb) not the partition (sdb1)
  • Mount the USB and copy the ISO contents to the disk
mkdir /media/USB
mount /dev/sdb1 /media/USB
cp /media/ISO/* -R /media/USB
  • We don’t need the isolinux stuff…
rm -rf isolinux.bin
mv isolinux.cfg syslinux.cfg

The Windows Option –

For those running Windows the following worked for me.  This is largely taken from VMPros, though there was also some input from others with regards to the errors I received.

Things you’ll need –

  • ESXi iso from VMware
  • USB memory key
  • Windows Box
  • UNetBootin
  • Syslinux (I got it from Softpedia, but there are lots of other places)


Steps –

  • Connect the USB and start the UNetBootin software
  • Select Disk Image (towards the bottom), choose ISO, and browse to the location of the ESXi ISO
  • Confirm the USB Drive is selected as the destination, and that the correct USB drive is selected.
  • Click OK, and if you should receive an error click Yes to overwrite.
  • This got me as far as a USB disk that was bootable, however when I tried to install I received an error about  menu.c32 is not a COM32R image.  To get around this I had to copy the menu.c32 and mboot.c32 files from syslinux and replace the existing ones on the disk.  These files are located in the syslinux\com32\menu and \mboot folders.

The rest…

Which ever method you used we now have the problem of the ESXi installer looking for the CD, why… I don’t know.. but it will.  To get around this we need to use a scripted install.  Scripted installs are done using kickstart (originally from linux I’m told).  Though the ks.cfg files between Linux/ESXi aren’t compatible with each other.

First we need to tell the Installer to check the USB disk for the ks.cfg file.   A network location can also be used, but for what we are trying to achieve, we’ll use the USB.  Edit the syslinux.cfg file and add in the ks=usb section of the append vmkboot.gz line shown below.

append vmkboot.gz ks=usb --- vmkernel.gz --- sys.vgz --- cim.vgz --- ienviron.vgz --- install.vgz

And create the kickstart file ks.cfg

rootpw YourRootPasswordHere
autopart --firstdisk --overwritevmfs
install usb
network --bootproto=static --ip=<ip here> --gateway=<gateway here> --hostname=ssv-normandy --device=vmnic0 --nameserver=<nameserver here> --netmask=<netmask here>

And yes the host name is after the SSV-Normandy from Mass Effect… Love that game, but change it to whatever floats your boat.


Initially I was hoping to be able to target another USB stick for the installation, however this is not possible in ESXi 4, it is possible in ESXi 5 though.


Vallard’s Tech Notes
VM Pros
VMware KBs

Categories: ESXi, VMware Tags: , , , , , ,