I tried to update my ESXi 6.5 server yesterday and ran into this error “[Errno 28] No space left on device”.
Before I tell you, how I solved the issue, I would like to show, how I do my updates.
You can download update files from VMWare, but there is an easier way to keep your ESXi server up to date.
On an ESXi host, you need to activate remote command execution explicitly. This protects your server and prevents that you can log in to the host by using a remote shell. You can enable remote command execution from the direct console or from the vSphere Web Client.
Now you can open a shell using your preferred tool.
The “VMware Front Experience ” blog has a list of recent patches and updates available .
Click on the “image profile” link for the patch, you want apply.
A popup will open.
Execute the commands from the shell. In general, this is a no no-brainer. You apply the patches, and after that, you have to restart the ESXi server. Done!
But today, for some reason, I got this error message “[Errno 28] No space left on device”.
There are several “solutions” that all tell you to delete obsolete log files and the like. But none of this solutions really solve the problem. If you have not changed the log settings, then ESXi rotates logs.
Therefore, it is unlikely that you use all of the available disk space for logging.
Another solution suggested to change the file system. This can be dangerous. If something goes wrong, you will end up in a useless piece of hardware.
But I finally found the root cause. The system swap file has become very large, leaving no space to unpack the patch files.
What can you do? You can move the swap file to another datastore.
By default, the “Datastore” is set to none. This means that the system partition is being used. Change the setting and run the update command again. You can now update your server without any problems.