I encoutered the ESXi error ‘[Errno 28] No space left on device’ while doing a cmd-line upgrade.
The solution was found at https://communities.vmware.com/message/2695888#2695601
cd /tmp
wget http://hostupdate.vmware.com/software/VUM/PRODUCTION/main/esx/vmw/vib20/tools-light/VMware_locker_tools-light_6.5.0-0.VERSION.vib
esxcli software vib install -f -v /tmp/VMware_locker_tools-light_6.5.0-0.VERSION.vib
When upgradeing to 6.7 it failed again with VMware_bootbank_esx-base.
I found out how to construct the URL for other packages:
http://hostupdate.vmware.com/software/VUM/PRODUCTION/main/esx/vmw/vib20/yyy-zzz/VMware_xxx_yyy-zzz_6.7.0-VERSION.vib
I found this out with https://esxi-patches.v-front.de/ESXi-6.7.0.html
If this still doesn’t help, go to the Host -> Manage -> Swap page of your ESXi and set the Datastore to your datastore, so that during upgrade the datastore can be used to swap.