Fixing “Not enough free space” error when deploying Windows image

After creating a new install of Windows 7, with all the software on I wanted, I then tried to use our Windows Deployment Services Server to capture the image. However, it failed using both methods we’d used previously.

When booting to Windows PE over the network, choosing all our usual capture options, and then triggering the capture, an error message came up – “not enough free space”. This seemed odd, as there was a good 60GB free on the local machine, and over 1TB free on the server I was going to save the captured image on.

I tried the other capture method, which is booting the machine into Windows then triggering the capture from there. Files were copied to the local machine, and it then rebooted into WinPE and started capturing. Unfortunately, this failed too with numerous errors, the main one being 80004004, but also 80070070 and 80004005.

SnapShot_140228_170604

Here’s what was happening:

When WinPE starts a capture, it copies some files to the local machine’s main system partition (usually drive C:). However, it couldn’t do this as it said the drive was full. C: wasn’t full, though.

The fault is actually that WinPE tries to copy to the first active partition on the drive, which logic suggests would be C:. But Windows 7 creates a 100MB, usually hidden, “System Reserved” partition. 100MB isn’t enough for WinPE to do its thing, so you get the error message.

Similarly, Windows 8 and 8.1 have a (larger, but still too small) System Reserved partition, and some preinstalled Windows PCs may have other backup, boot, recovery or system partitions too. WinPE can’t cope with these if they’re marked as active.

The solution then, is to mark C: as active. You can do this by booting the install of Windows, going into Disk Management, and right-clicking C:, then choosing Mark as Active.

SnapShot_140228_165407

There’s an alternative fix which may also work. It’s listed here, but as a fix for Windows 8 when using MDT 2012. We’re using Windows 7 on an older MDT, but it still applies.

This fix involves creating a Boot folder on C:, so that the capture script uses that rather than try to create a new one on the wrong partition.

What you need to do is find the LTIApply.wsf file in the Scripts folder on your deployment server’s deployment share. About a fifth of the way down there’s this section:

' Copy bootmgr
If not oFSO.FileExists(oEnvironment.Item("DestinationLogicalDrive") & "\Bootmgr") then
oLogging.CreateEntry "Copying " & oEnvironment.Item("DeployRoot") & "\Boot\" & sArchitecture & "\bootmgr to " & oEnvironment.Item("DestinationLogicalDrive") & "\bootmgr", LogTypeInfo
oFSO.CopyFile oEnvironment.Item("DeployRoot") & "\Boot\" & sArchitecture & "\bootmgr", oEnvironment.Item("DestinationLogicalDrive") & "\", true
End if

Immediately after this, but before the “Copy the PE boot image” line, enter this code:

If not oFSO.FolderExists(sBootDrive & "\Boot") then
oFSO.CreateFolder(sBootDrive & "\Boot")
End if

Everything now works for us, so one, or both, of these fixes should be applied in the same situation.

Leave a Reply