Linux Virtualization

VMWare Workstation 14 Ubuntu

I recently encountered a  minor issue attempting to create additional VMs in VMWare Workstation 14 on Ubuntu. The error I received suggested there wasn’t enough memory free to power on an additional VM but the host has 32GB of RAM and I’d allocated 20GB across all VMs.

Inspecting the /etc/vmware/config file revealed the value:

prefvmx.allVMMemoryLimit = "12954"

Which is a hard upper limit for all VMs, adjusting it to the following with VMWare closed and then start VMWare resolved the problem:

prefvmx.allVMMemoryLimit = "20480"



eSXi update storage drivers

1. Power down all running VMs on host (or migrate to another eSXi host if using vCenter)

2. Enable SSH on the eSXi host

3. SSH to the host

4. Enter maintenance mode via:

esxcli system maintenanceMode set --enable true

5. Uninstall the previous storage driver via:

esxcli software vib remove -n scsi-hpvsa -f

6. Reboot the eSXi host via:

esxcli system shutdown reboot --reason "your reason here" 

7. When the eSXi host is back SSH back in and ensure Maintenance Mode is enabled through the same command in step 4.

8. SCP / SFTP copy the new storage driver to /tmp/ on the eSXi host

9. Install the new storage drive via:

esxcli software vib install -v file:/tmp/name-of-driver-file-here.vib --force --no-sig-check --maintenance-mode

10. Reboot

11. Disable SSH

12. Exit Maintenance Mode

13. Power on / migrate back VMs



Troubleshooting from SSH should begin with  /var/log/vmkernel.log




VMWare HP Microserver Gen 8

Had very slow disk performance on a RAID 1 array in ESXi on my new HP Gen 8 microserver and found hardware acceleration was disabled.

The answer appears to be rolling back the storage driver as per

esxcli software vib remove -n Hewlett-Packard:scsi-hpvsa
esxcli software vib install –viburl=/vmfs/volumes/DATASTORE/scsi-hpvsa-5.5.0-88OEM.550.0.0.1331820.x86_64.vib

Driver available from


First update all drivers via
esxcli software vib update –depot= –force
esxcli software vib update –depot= –force

Pre Installed Environment Virtualization Windows

PXELinux Windows PE

The following batch file describes the creation of a Win7 PE boot environment and generates an ISO that is then bootable. For our needs we use PXELinux so note the echo in the batch file” echo Preparing peimagexfiles” below.

[expand title=”Customized PE Creation batch file”]

@echo off

set PEROOT=%PEHOME%_Mounts
set DRIVERSRC=%PEHOME%_SharedDrivers
set APPSRC=C:ITWAIK_SharedApplications

call "%PEHOME%_ProjectsWin7PEx86Environment2_create_winpe_imagepemount.bat"

rem dism seems to have a hissy fit with this in the command line so lets just do it first and use relative paths
rem (now fixed, but will leave as is)
cd /D "%PEHOME%"
cd ToolsPEToolsx86WinPE_FPs

echo Adding required components
dism /image:"%PEROOT%Mount" /add-package /packagepath:""
dism /image:"%PEROOT%Mount" /add-package /packagepath:""
dism /image:"%PEROOT%Mount" /add-package /packagepath:""
dism /image:"%PEROOT%Mount" /add-package /packagepath:""

rem Show installed packages
dism /image:"%PEROOT%Mount" /get-packages

echo Adding drivers
Call "%PEHOME%_Sharedwinpe_inject_basic_network_drivers.bat"
echo Adding local apps and scripts

xcopy /s/e/i/y "%APPSRC%ghost" "%PEROOT%MountApplications"
xcopy /s/e/i/y "%APPSRC%imagex.exe" "%PEROOT%MountApplications"

copy /Y "%PEHOME%_ProjectsWin7PEx86Environment2_create_winpe_imageStartnet.cmd" "%PEROOT%MountWindowsSystem32startnet.cmd"

cd /D "%PEROOT%"

rem Remove 'press any key to boot' message
del isobootbootfix.bin

echo Preparing peimagexfiles
rd /s/q "%PEROOT%peimagex"
mkdir "%PEROOT%peimagex"

mkdir %PEROOT%peimagexFonts
copy %PEROOT%mountwindowsbootpxebootmgr.exe %PEROOT%peimagex
copy %PEROOT%mountwindowsbootpxepxeboot.n12 %PEROOT%peimagexpxeboot.0
copy %PEROOT%mountwindowsbootfontswgl4_boot.ttf %PEROOT%peimagexFonts
copy "%PEHOME%ToolsPEToolsx86bootboot.sdi" %PEROOT%peimagex

echo off > %PEROOT%peimagexempty

echo Creating the boot file
set BCDStore=%PEROOT%peimagexBCD
bcdedit -createstore %BCDStore%
bcdedit -store %BCDStore% -create {ramdiskoptions} /d "Ramdisk options"
bcdedit -store %BCDStore% -set {ramdiskoptions} ramdisksdidevice Boot
bcdedit -store %BCDStore% -set {ramdiskoptions} ramdisksdipath Bootboot.sdi
for /f "Tokens=3" %%i in ('bcdedit /store %BCDStore% /create /d "Windows 7 Install Image" /application osloader') do set GUID=%%i
bcdedit -store %BCDStore% -set %GUID% systemroot Windows
bcdedit -store %BCDStore% -set %GUID% detecthal Yes
bcdedit -store %BCDStore% -set %GUID% winpe Yes
bcdedit -store %BCDStore% -set %GUID% osdevice ramdisk=[boot]Bootboot.wim,{ramdiskoptions}
bcdedit -store %BCDStore% -set %GUID% device ramdisk=[boot]Bootboot.wim,{ramdiskoptions}
bcdedit -store %BCDStore% -create {bootmgr} /d "Windows 7 Boot Manager"
bcdedit -store %BCDStore% -set {bootmgr} timeout 30
bcdedit -store %BCDStore% -set {bootmgr} displayorder %GUID%

call "%PEHOME%_ProjectsWin7PEx86Environment2_create_winpe_imagepeunmount.bat"
copy %PEROOT%ISOsourcesboot.wim %PEROOT%peimagex

rem echo Creating CD ISO image
oscdimg iso pex86.iso

xcopy /s/e/i/y "%PEROOT%peimagex" "%PEHOME%_ProjectsWin7PEx86Environmentpeimagex"
xcopy /s/e/i/y "%PEROOT%pex86.iso" "%PEHOME%_ProjectsWin7PEx86Environment"

cd "%PEHOME%_ProjectsWin7PEx86Environmentpeimagex"

rmdir %PEROOT%
mkdir %PEROOT%



VMWare vCLI Errors

Getting libxml2-related errors, log out and in to refresh the environment variable changes from the install and also ensure you’re running the command prompt as an Administrator (elevated).