Sunday, February 2, 2014

ESXi and Intel 82579v

/tmp/esxi/files/tmp/esxi/filesFor some strange reason ESXi has no driver for Intel 82579v NIC, and aborts the installation on a machine with such a NIC. Since I had no other machine to try ESXi on, and no PCI NIC was available at the moment, I've started to google for a solution. I've found some guide here, but ESXi-Customizer didn't work on my laptop, so I've used different tools to add the 82579v driver to ESXi installation ISO :)

First, loop mount the ISO image and extract the files from it:

mkdir -p /tmp/esxi/{mnt,files}
mount -t iso9660 -o loop /path/to/ESXi-installer-image.iso /tmp/esxi/mnt
cp -a /tmp/esxi/mnt/* /tmp/esxi/file

Then add the e1000e driver to the ESXi files:

cp /path/to/E1000E.tgz /tmp/esxi/files/net_igbe.t00
sed -i 's|/net_igb.v00|&1 --- /net_igbe.t00 ---|' /tmp/esxi/files/boot.cfg

And wrap the new ISO image:

mkisofs -o /path/to/updated/esxi-installer.iso \
-b isolinux.bin -c boot.cat -no-emul-boot \
-boot-load-size 4 -boot-info-table /tmp/esxi/files/

The image with 82579v is now ready for installation. After the ESXi is installed, it discards the custom driver and is should be added to the system on the hard disk. Luckily, I had Linux installed on the same box, so all I needed to do is to reboot to Linux, mount the ESXi partition containing the drivers and put E1000E.tgz there:

mkdir -p /tmp/esxi/mnt
mount /dev/sda5 /tmp/esxi/mnt/
cp /path/to/E1000E.tgz /tmp/esxi/mnt/net_igbe.t00
sed -i 's|/net_igb.v00|&1 --- /net_igbe.t00 ---|' /tmp/esxi/mnt/boot.cfg
umount /tmp/esxi/mnt/

After rebooting back to ESXi the network will be up and running.