Windows 10 Feature Focus: CompactOS
Microsoft took a serious look at how to save space from the operating system files with Windows 8.1 Update. What they came up with at the time was WIMBoot, which used the recovery partition’s compressed WIM image file as the basis for most of the system files needed by Windows. Since the recovery partition is at least 4 GB in size, this is a pretty substantial savings especially on the lower cost devices which WIMBoot was targeted at.
I’ve discussed the changes with Windows 10 a couple of times, but a recent blog post from Michael Niehaus outlines how the new system works, what it is called, and how to manually enable it.
The last bit there is pretty important, since moving to WIMBoot was not something that could be done easily. It had to be done at the time the system image was put onto the computer, and there were a couple of extra steps OEMs could take in order to incorporate their own software into the WIMBoot.
Standard Partition with Windows 8.1
WIMBoot Enabled Windows 8.1
This also lead to some of the first issues with WIMBoot. The actual size of the recovery partition, if it was just Windows, would be around 4 GB, but once an OEM adds in their own software, along with maybe a copy of Microsoft Office, and all of a sudden the recovery partition could bloat to 10 GB or more. This was a major issue because unlike with a standard install of Windows, the recovery partition can not be removed on a WIMBoot system leaving a large chunk of a possibly small drive used up with no way to reclaim that space.
The other issue was that over time the WIMBoot partition would become less and less used, since when there were security updates to the operating system, key system files would be replaced with a full uncompressed version, but the original version would still be part of the WIM which could not be modified. Over time, Windows would grow and grow to fill more and more of the drive, and the WIMBoot concept was clearly not working out as intended.
So with Windows 10, Microsoft has moved away from the recovery partition altogether. When you do a system reset, Windows will be rebuilt from the components in the \Windows\winsxs folder. This means that the system will also be almost fully patched after a reset, unlike with earlier versions of Windows where any restore off of the recovery partition would revert you back to whatever set of files was used to create the WIM. Only the most recent 30 days of patches will be installed, and this was a design decision in case the reset itself is due to something going wrong within the last 30 days.
The other part of the space savings is from a compression tool Microsoft is calling Compact OS. This kind of goes back to WIMBoot in a way, since the system files are compressed into what amounts to a WIM file. The big difference here is that unlike WIMBoot, CompactOS can be enabled and disabled on the fly.
From an administrative command prompt, simply use the commands:
Compact.exe /CompactOS:query
This will query Windows to see if CompactOS is enabled or not
Compact.exe /CompactOS:always
This will enable CompactOS
Compact.exe /CompactOS:never
This will disable CompactOS
I ran CompactOS on an ASUS TP200S which has 64 GB of eMMC storage. Windows 10 did not enable CompactOS automatically since it was not needed, but manually enabling it saved over 3 GB of space on the C: drive. Luckily ASUS has included enough storage in the TP200S where it’s not really necessary out of the box, but on any system with 32 GB or less this could be a big help.
There is going to be a performance impact of course since the files will need to be decompressed when accessed and the actual differences are something I hope to have a chance to test and document at some point in the not too distant future.
In the end, CompactOS looks to be a nice upgrade over WIMBoot which had a lot of promise, but was not as effective as hoped.