Over the years, there have been plenty of discussions about the size of Windows images. Over time, there were a variety of efforts to try to squeeze the OS so that it could fit on smaller (e.g. 16GB) drives, but those never really worked out very well because the OS would typically start off at about 8GB (decompressed) and slowly grow from there (a.k.a. disk rot). (Remember Compact OS, which I talked about back in 2015? It’s still around, just not used too much.)

Of course that assumes you aren’t adding anything to the Windows image yourself (e.g. apps, drivers, or anything like that). And if you’re patching the image yourself (don’t bother, just download updated ISOs periodically), you have to go through great pains to get the size back down again (component cleanup, export, etc.). So we’re talking about the “ultimate thin image,” straight from the Windows 10 media.

So how big is it, and how has that changed over time?

Those are surprisingly hard questions to answer, because it’s hard to get a consistent answer from the available tools. If we look at the ISO sizes, we see steadily increasing sizes:

Windows 10 release ISO size
Windows 10 1511 (10586) 3.75GB
Windows 10 1607 (14393) 4.20GB
Windows 10 1703 (15063) 4.15GB
Windows 10 1709 (16299) 4.45GB
Windows 10 1803 (17134) 5.21GB
Windows 10 1809 (17763) 5.32GB
Windows 10 1903 (18362) 5.13GB
Windows 10 1909 (18363) 5.42GB
Windows 10 2004 (19041) 5.24GB
Windows 10 20H2 (19042) 6.08GB

But there are some extenuating circumstances there: The first three (1703, 1709, 1803) were just Windows 10 Enterprise, while the rest of the ISOs contained multiple images. Alright, but what if we ask DISM for the size of just the Enterprise image (e.g. DISM /Get-WimInfo /WimFile:d:sourcesinstall.wim /Index:3)? You get these values, which would be decompressed sizes:

Windows 10 release Size (decompressed)
Windows 10 1511 (10586) 13.66GB
Windows 10 1607 (14393) 14.61GB
Windows 10 1703 (15063) 15.29GB
Windows 10 1709 (16299) 15.77GB
Windows 10 1803 (17134) 16.25GB
Windows 10 1809 (17763) 14.92GB
Windows 10 1903 (18362) 14.75GB
Windows 10 1909 (18363) 15.00GB
Windows 10 2004 (19041) 14.60GB
Windows 10 20H2 (19042) 15.64GB

But those are actually too big: If you apply one of those OSes to a hard drive and then look at the used disk space, you’ll find that they’re about half of that size. For example, this is what you get from Windows 10 20H2:

So what gives? Well, it appears that DISM is reporting the size consumed by all files, not taking into account the hardlinks that are used for pretty much every Windows 10 file, so as a result the size reported is about double what it should be. If you go back to the old ImageX.exe tool (which is still available in the ADK), you can see two different numbers, again for Windows 10 20H2:

The “TOTALBYTES” value matches what DISM reported, but the “HARDLINKBYTES” takes into account the duplication of files between C:Windows and the WinSXS folder. So, looking at those values for each image shows something a little more reasonable:

Windows 10 release Size (decompressed, with hardlinks)
Windows 10 1511 (10586) 6.24GB
Windows 10 1607 (14393) 6.48GB
Windows 10 1703 (15063) 7.17GB
Windows 10 1709 (16299) 7.45GB
Windows 10 1803 (17134) 7.48GB
Windows 10 1809 (17763) 6.08GB
Windows 10 1903 (18362) 6.02GB
Windows 10 1909 (18363) 6.00GB
Windows 10 2004 (19041) 5.96GB
Windows 10 20H2 (19042) 5.80GB

But again, those don’t match: Windows 10 20H2 as we see it applied to the disk above is about 7.79GB, not the 5.80GB reported in the table (presumably because the disk allocation for files is done at a block level, and with a whole lot of small files, there’s a lot of wasted space, which is why Compact OS was created). What a headache. So DISM and ImageX aren’t going to be super helpful here, as the sizes they report aren’t quite matching up with reality.

So let’s try something different: Let’s export the Enterprise SKU from each of the multi-image WIMs and see how that size progresses. Here’s an example with Windows 10 20H2:

This image has an empty alt attribute; its file name is image-3.png

Doing the same thing for each of the other releases (exporting only the Enterprise index 3) gets us this info:

Windows 10 release WIM size
Windows 10 Enterprise 1511 3.75GB
Windows 10 Enterprise 1607 4.20GB
Windows 10 Enterprise 1703 4.15GB
Windows 10 1709 multi-edition 3.71GB
Windows 10 1803 business editions (VL) 4.17GB
Windows 10 1809 business editions (VL) 4.23GB
Windows 10 1903 business editions (VL) 4.05GB
Windows 10 1909 business editions (VL) 4.28GB
Windows 10 2004 business editions (VL) 4.10GB
Windows 10 20H2 business editions (VL) 4.67GB

So the size bounces around, but overall little progress has been made to reduce the size. In fact, it’s generally getting bigger. But how much bigger? Well, “somewhat” bigger. If you wanted “real” sizes, you’d have to apply each of those WIMs to the disk. But assuming the compression is fairly consistent between the releases, the result would be something like the above table, where the 20H2 “applied to disk” size would be 7.79GB, and releases before it would be smaller.

Can this Windows 10 image be made smaller? In theory, yes — that will be the subject of another blog at a later date. The real question is “by how much.”

Source link

Share this post via

Leave a Reply