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.
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
# 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 http://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
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