After installing ESXi 7 (specifically Update 3f, Build 20036589) on a 128GB boot device, I found that a datastore had not been created. When I tried to create a VMFS datastore I found that it was not possible because a very large VMFSL partition had consumed all remaining space.
After some research I found that this version of ESXi creates this new kind of system partition that can consume up to 128GB of space by default!
https://knowledge.broadcom.com/external/article/345195/boot-option-to-configure-the-size-of-esx.html
Based on this documentation, if you are using a boot device of 128GB or less then you will run into this problem of having no datastore on the boot drive after a clean install!
The solution is to reinstall ESXi and limit the size of the system partition by passing a boot option to the installer during the boot up process. In the Broadcom documentation, there are some recommended minimums for the system partition that should be met based on your hardware configuration (especially the amount of RAM).
Once you have determined which size you want to target, the method required depends on which build of ESXi you have on the installer.
If you are using an ESXi 7 version prior to Update 1c (build 17325551), then you will need to use:
autoPartitionOSDataSize=XXX where XXX is the number in MB. (e.g., 32768 would result in 32GB).
If you are using ESXi 7 Update 1c or later, you can use the first approach above or the more simplified approach below:
systemMediaSize=XXX where XXX is either min, small, default or max corresponding to 32GB, 64GB, 128GB or all remaining GB, respectively.
The first step is to completely wipe the OS drive using a 3rd party tool because the ESXi installer will not delete any existing VMFSL partitions.
Once the OS drive is completely free of partitions, reboot with the ESXi installer media. Wait for it to prompt you for Shift+O to modify the boot loader, then press that key combination.
At that point you can enter at the command line one of the two options listed above to limit the size of the system partition by adding it to the end.
For example:
runweasel cdromBoot systemMediaSize=min
Then press Enter.
Run through the installation as usual but this time you should end up with a datastore automatically created once complete!
Notes:
- The boot loader options are case sensitive