In looking at the differences between the new Feature Upgrade C:\Windows folder for Build 19546 verus its Windows.old “equivalent” (Build 19541), I couldn’t help but notice more that was different than alike. Start with the intro image for this story. Windows.old (left) includes 86,332 files and 22,148 folders and is 15.3 GB in size (15.1 GB on disk). Windows (right) includes 86,020 files and 19,655 folders, but is 17.4 GB in size (17.2 GB on disk). This makes me curious about more of what’s different between the two iterations of the Windows OS, aside from the difference in builds. But first, let’s review . . .
What We Know For Sure About Windows.old
Every time you perform a feature upgrade on Windows, it creates a Windows.old folder with a (mostly intact) copy of the previous version of the OS inside. Its primary function is to allow users to roll back to that previous version, should they decide to do so. By default in current Windows 10 versions, that number of days is 10. Check that value by running dism /online /Get-OSUninstallWindow in an admin command prompt or administrative PowerShell session; provide a different value using dism /online /Set-OSUninstallWindow /Value:<n>, where <n> is a positive, non-zero integer.
As a secondary function, you can also spelunk around inside the Windows.old folder using Explorer (or some other file management tool) and look for (or at) stuff inside this folder hierarchy. Personally, I rely on Macrium Reflect image backups if I want to return to a prior OS version. Thus, I usually clean up my disk right after a feature upgrade — including getting rid of Windows.old — and then create an image backup immediately thereafter. If I want to roll back to a prior OS version, I already have at least one backup I can use. This first, pristine post-upgrade image backup will just be the first in a series of such backups of the current OS that I could use as a rollback after another feature backup, if I wanted to.
The key to understanding the differences is clear from what’s in Windows.old and NOT in Windows. I’ll explain…
[Click image for full-sized view.]
What’s the Difference Between Windows.old and Windows for 19541 and 19546?
To answer that question, I ran the Open Source WinMerge file/folder comparison utility. In fact, I used it to compare C:\Windows and C:\Windows.old on the PC I just upgraded to that higher-numbered Fast Ring Insider build. The preceding screencap shows stuff that’s in Windows.old only at the top, and starts a long-ish list of folders that appear in Windows only (but not in Windows.old).
Looking at the two collections of stuff, it’s obvious that Windows.old internalizes numerous folders that are separate and distinct in the disk layout from the new Windows folder itself. The list of folders includes 64-bit programs (Program Files), 32-bit programs (Program Files (x86)), Recovery data, and the Users folder hierarchy, among other odds and ends. Of course, this also includes a Windows folder that is more or less equivalent to the Windows folder that acts as our point of comparison for Build 19546 (the new feaure upgrade).
What all this tells me is that the Windows.old folder is a more-or-less complete collection of the stuff from the whole system disk for the previous OS build 19541. And, of course, that explains why there are more folders and files in the Windows.old folder (86,322 files and 22,148 folders) silo than there are in the Windows silo (86,020 files and 19,655 folders). I’m not sure about answers to the following questions, though. That’s why I’ll be chasing them down in the weeks ahead. Here are my still-open questions:
1. Given more files and folders, why does Windows.old consume less space than Windows? Is compression involved?
2. What happens to the stuff that is present in Windows but NOT in Windows.old? A lot of it appears to be generated or extracted during OS installation, possibly from an image file, or from WinSxS.
3. Does this mean that rolling back to the version of Windows inside Windows.old would regenerate those files and folders present in Windows but not in Windows.old during the reset process? Is that why they’re not saved/present?
Inquiring minds want to know — especially mine. Stay tuned. I’m going to be digging deeper.
Author: Ed Tittel
Ed Tittel is a 30-plus-year computer industry veteran. He’s a Princeton and multiple University of Texas graduate who’s worked in IT since 1981 when he started his first programming job. Over the past three decades he’s also worked as a manager, technical evangelist, consultant, trainer, and an expert witness. See his professional bio for all the details.