Computer >> Computer tutorials >  >> Software >> Virtual machine

VMWare ESXi: Errno 28 — No space left on device

I saw a strange error: Errno 28 “No space left on device” when trying to manually update a VMWare ESXi version on a standalone host:

# esxcli software profile update -p ESXi-7.0.0-xxxx-standard -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml

[InstallationError]
[Errno 28] No space left on device
vibs = VMware_bootbank_esx-base_7.0.0-xxxx
Please refer to the log file for more details.

VMWare ESXi: Errno 28 — No space left on device

The error clearly indicates a lack of free space. However, the check of free disk space showed that there is enough free space left on the storage device:

df -h

VMWare has a separate KB 1007638 “ESXi/ESX error: No free space left on device”. In the article, they say that you cannot create new files because you have reached the maximum number of inodes on the file system. Check it using this command:

stat -f / | grep Inodes | awk '{ print $NF }'

In my case, the Free value is quite large, so it should not be the cause of the problem.

Another possible issue is a lack of free memory on the host to perform the upgrade. You need to allow the ESXi host to place its swap file on any of the available VMFS datastores.

You can set another swap file location via the graphical interface of your vSphere Client: Host -> Configure -> System Swap -> Edit -> Can use datastore (select an available datastore).

Make sure that the following options are enabled:

  • Can use host cache
  • Can use datastore specified by host for wasp files

VMWare ESXi: Errno 28 — No space left on device

You can also enable the use of VMFS datastores for the swap file from the ESXi CLI:

# esxcli sched swap system set -n VMFSDataStoreName1 -d y

Save the changes and try to run the host update again.

After adding the swap file, I got another error indicating that vmware tools light could not be updated:

[InstallationError]
[Errno 28] No space left on device
vibs = VMware_locker_tools_light_11.2.5.xxxxxxxxxxxx

Try to download and install the VIB file manually:
cd /tmp
wget https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/esx/vmw/vib20/tools-light/VMware_locker_tools_light_11.2.5.xxxxxxxxxxxx.vib
esxcli software vib install -f -v /tmp/ VMware_locker_tools_light_11.2.5.xxxxxxxxxxxx
rm /tmp/VMware_locker_tools_light_11.2.5.xxxxxxxxxxxx

Use the name of the VIB file containing VMware_locker_tools_light version from your error in the commands.
You can display a full list of available versions as follows:
# esxcli software sources vib list --depot=https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml | grep tools-light | sort

Run the ESXi build update:
# esxcli software profile update .....

If manual VMware tools light update fails, try to update your ESXi image and skip the update of vmtools VIB file:

# esxcli software profile update -p ESXi-version-build -no-tools -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vm-depot -index.xml

Restart your host and update Vmware_locker_tools:

# esxcli software vib install -v https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/esx/vmw/vib20/tools-light/VMware_locker_tools-light-version-build.vib

If nothing helps, download a ZIP file with a new ESXi version and upload it to any connected datastore.

Update your host from a local ZIP file:

# esxcli software vib update -d /vmfs/volumes/YourVMFSDatastore/ESXi700-xxxxxx.zip