A quick blog on Hyper-V and OS Deployment. I was scratching my head on an error while deploying an operating system through MDT. The error was from DISM in the bdd.log:
Error 14
Not enough storage space is available to process this command.
So, there are various fixes out there on the internet, from replacing media you’re installing from, or even replacing the hard drive you’re installing on (so much cheaper to do this in a virtual environment and less screws to turn).
Well, let’s look at Hyper-V’s settings for a moment. These settings are the same within Generation 1 and 2 VMs:
So, these 3 options:
RAM: This is the amount of memory that Hyper-V will allocate when the machine boots up, or some would call that at POST. In this case, 1GB.
Minimum RAM: This is the amount of memory that Hyper-V will shrink to, if it can. In this case, only 512MB. This is the big red flag.
Maximum RAM: This is the most total memory that Hyper-V will allocate to a VM (and you do want to limit this). In this case, not more than 2GB of RAM will be allocated to the VM.
Why is this important?
I have found in modern operating systems (especially Windows 10 and Server 2016) that it takes a minimum of 1GB really to boot and maintain a stable OS deployment, any less can be problematic. At the time of the DISM error, the VM had about 900MB allocated to it. So, if you are trying to test that deployment on a laptop with 8GB of RAM, you’re going to have to give up the resources to the VM.
The moral of the story, when deploying the more modern Windows from MDT or SCCM for that matter, set your VM at a minimum of 1GB. If you can swing it later, set the minimum RAM down after the deployment.