Disk Space


This post is about disk space and the disk space “consumed” by Windows 7. Disk space is the sort of thing where everyone wants to use less, but the cost of using a bit more relative to the benefits has generally been a positive tradeoff. Things have changed recently with the availability of solid-state drives in capacities significantly smaller than the trend in spinning drives. Traditionally most all software, including Windows, would not hesitate to consume a 100MB on a specific (justified) need when looking at a 60GB (or 1,500GB) drive; with desirable machines shipping with 16GB of solid-state storage, we are looking carefully at the disk space used by Windows—both at setup time and also as a PC “ages”. We also had a specific session at WinHEC on solid-state drives that might be interesting to folks. This post is authored by Michael Beck, a program manager in the core OS deployment feature team. –Steven


Let’s talk about “footprint”. For the purposes of this post, when I say “footprint” I’m talking about the total amount of physical disk space used by Windows. This includes not only the Windows binaries, but all disk space consumed or reserved for system operations. Later in this entry, I’ll discuss in detail how the disk footprint is consumed by various Windows technologies.


A number of comments have asked about disk footprint and what to expect in terms of Windows 7’s usage of disk space. Like many of the design issues we have talked about, disk space is also one where there are tradeoffs involved so this post goes into the details of some of those tradeoffs and also discusses some of the feedback we have received. It should be noted, that we are not at the point where we are committing to system requirements for Windows 7, so consider this background and engineering focus.


To structure this post we’ll take two important points of feedback or questions we have received:



  • What does the WinSxS directory contains and why is it so big, and can I just delete it?

  • Where does all the disk space go for Windows components?

We’ll then talk about the focus and engineering of Windows 7.


WinSxS directory


We definitely get a lot of questions about the new (to Vista) Windows SxS directory (%System Root%\winsxs) and many folks believe this is a big consumer of disk space as just bringing up the properties on a newly installed system shows over 3000 files and over 3.5 GB of disk consumed. Over time this directory grows to even higher numbers. Yikes–below is an example from a Steven’s home PC.


Example properties sheet for WinSxS directory.


“Modularizing” the operating system was an engineering goal in Windows Vista. This was to solve a number of issues in legacy Windows related to installation, servicing and reliability. The Windows SxS directory represents the “installation and servicing state” of all system components. But in reality it doesn’t actually consume as much disk space as it appears when using the built-in tools (DIR and Explorer) to measure disk space used. The fact that we make it tricky for you to know how much space is actually consumed in a directory is definitely a fair point!


In practice, nearly every file in the WinSxS directory is a “hard link” to the physical files elsewhere on the system—meaning that the files are not actually in this directory. For instance in the WinSxS there might be a file called advapi32.dll that takes up >700K however what’s being reported is a hard link to the actual file that lives in the Windows\System32, and it will be counted twice (or more) when simply looking at the individual directories from Windows Explorer.


The value of this is that the servicing platform (the tools that deliver patches and service packs) in Windows can query the WinSxS directory to determine a number of key details about the state of the system, like what’s installed, or available to be installed (optional components, more on those later), what versions, and what updates are on the system to help determine applicability of Windows patches to your specific system. This functionality gives us increased servicing reliability and performance, and supports future engineering efforts providing additional system layering and great configurability.


The WinSxS directory also enables offline servicing, and makes Windows Vista “safe for imaging”. Prior to Windows Vista, inbox deployment support was through “Setup” only. IT professionals would install a single system, and then leverage any number of 3rd party tools to capture the installed state as a general image they then deployed to multiple systems. Windows wasn’t built to be “image aware”. This meant that greater than 80% of systems were deployed and serviced using a technology that wasn’t supported natively, and required IT departments to create custom solutions to deploy and manage Windows effectively. In addition, state stored in the WinSxS directory can be queried “offline”, meaning the image doesn’t have to be booted or running, and patches can be applied to it. These two features of WinSxS give great flexibility and cost reductions to IT departments who deploy Windows Vista, making it easier to create and then service standard corporate images offline.


While it’s true that WinSxS does consume some disk space by simply existing, and there are a number of metadata files, folders, manifests, and catalogs in it, it’s significantly smaller than reported. The actual amount of storage consumed varies, but on a typical system it is about 400MB. While that is not small, we think the robustness provided for servicing is a reasonable tradeoff.


So why does the shell report hard links the way it does? Hard links work to optimize disk footprint for duplicate files all over the system. Application developers can use this functionality to optimize the disk consumption of their applications as well. It’s critical that any path expected by an application appear as a physical file in the file system to support the appropriate loading of the actual file. In this case, the shell is just another application reporting on the files it sees. As a result of this confusion and a desire to reduce disk footprint, many folks have endeavored to just delete this directory to save space.


There have been several blogs and even some “underground” tools that tell you it’s ok to delete the WinSxS directory, and it’s certainly true that after installation, you can remove it from the system and it will appear that the system boots and runs fine. But as described above, this is a very bad practice, as you’re removing the ability to reliably service, all operating system components and the ability to update or configure optional components on your system. Windows Vista only supports the WinSxS directory on the physical drive in its originally installed location. The risks far outweigh the gains removing it or relocating it from the system, given the data described above.


Where does the disk space go?


As we all know adding new functionality consumes additional disk space–in Windows or any software. In reality, “code” takes up a relatively small percentage of the overall Windows footprint.  The actual code required for a Windows Vista Ultimate install is just over 2GB, with the rest of the footprint going to “data” broadly defined. Let’s dig deeper into the use of storage in a Windows Vista installation and what we mean by “data”.


Reliability and security were core considerations during the engineering process that built Windows Vista. Much of the growth in footprint comes from a number of core reliability features that users depend on for system recovery, performance, data protection, and troubleshooting. Some of these include system restore, hibernation, page file, registry back up, and logging. Each of these represent “backup state” that is available to the system to recover from any number of situations, some planned and others not. Because we know that different customers will want to make different tradeoffs of disk space relative to recovery (especially on small footprint devices) with Windows 7 we want to make sure you have more control than you currently do to decide ahead of time how much disk space to use for these mechanisms, and we will also tune our defaults to be more sensitive to overall consumption due to the changing nature of storage.


System restore and hibernation are features that help users to confidently recover their system and prevent data loss, in a number of situations such as low battery (hibernation), bad application installation or other machine corruption (system restore). Combined, these features consume a large percentage of the footprint. Because of the amount of space these use, they are easy to identify and make decisions regarding.


System restore protects users by taking snapshots of the system prior to changes and on regular intervals. In Windows Vista, system restore, is configured to consume 300mb minimally, and up to 15% of the physical disk. As the amount of space fills up with restore points, System Restore will delete older restore points to make room for new ones. The more space you have, the greater the number of restore points you have available to “roll back” to. We have definitely heard the feedback from Windows Vista customers around system restore and recognize that the it takes significant space and is not easy to tune. Some have already seen the pre-beta for Windows 7 provides an interface to manage the space better.


Hibernate is primarily used on mobile PCs and saves your work to the hard disk and puts the computer in an extremely low power state.  Hibernate is used on mobile PCs when the battery drains below a certain threshold or when turning the computer off without using Shut Down to extend battery life as much as possible.  On Windows Vista, Hibernate is also automatically used with Sleep on desktop PCs to keep a backup copy of open programs and work. This feature is called Hybrid Sleep and is used to save state to the hard disk in case power fails while the computer is sleeping.  Hibernate writes all of the content in memory (RAM) to a file on the hard drive named Hiberfil.sys.  Therefore, the size of the reserved Hiberfil.sys is equal to the amount of RAM in the machine.  In the Windows Vista timeframe, the amount of RAM being built into computers has increased significantly, thus the disk footprint of Hibernate is more noticeable than before. This space must be reserved up front to guarantee that in a critical low battery situation, the system can easily write memory contents to the disk.  Any mobile PC user that has experienced their computer automatically entering Hibernate when the battery is critically low can appreciate the peace of mind this footprint growth provides. While we’re talking about RAM and disk footprint in the same paragraph, Mark Russinovich has a post this week on virtual memory and how big the swapfile could/should/can be that you might find interesting.


Now it’s clear that in the description above, I don’t account for the entire footprint required by Windows Vista. For instance, we also include many sample files, videos, high resolution backgrounds that allow users to easily customize their experience, and try out new features, but we’ve covered a couple of the more common questions out there.


It’s important that we consider more than just the size of the system once deployed, but we must also look at how the system grows over time as services write logs, updates, and service packs are installed, system snapshots are taken etc. For many, the “growth” over time of the installation proves to be the most perplexing—and we hear that and need to do better to (a) make smarter choices and (b) make it clearer what space is being consumed and can be reclaimed.


The following table provides one view of the installation footprint of a Windows Vista Premium/Ultimate installation. This includes the full installation, but to make it digestible this has been broken down into some logical categories and also highlights some specific features. Part of the reason to highlight specific feature is to illustrate the “costs” for items that have been raised as questions (or questionable).


Table of disk space utilization of Windows Vists SP1.


Here are some items worth calling out:



  • ~1GB driver support. Windows Vista works with thousands and thousands of different devices. The ability to plug in almost any device, even your old printer and have it get recognized and install automatically is something customers have come to expect from Windows. We receive lots of feedback wanting to remove some or all of these and each release we carefully scrub the “in-box” device support relative to what we see from telemetry in terms of used devices. The ability to install a printer or USB device while offline is a key value, especially with laptops representing over half of all PCs being sold. In the future we can possibly assume “always go to Windows Update” but we’re not there yet in most places in the world.

  • ~1GB of system growth in serviced and superseded components to support robust rollback and recovery, after installing critical security and functionality updates. We receive a lot of positive feedback about the robustness of servicing but at the same time, the desire to rollback a specific fix for any variety of reasons remains an important robustness and reliability measure. We also understand the feedback we have received regarding the disk requirements to install SP1 on top of RTM. We hope folks are aware of the vsp1cln.exe utility in the system32 directory, for those that are in need of disk space.

  • ~1GB hibernation support is necessary in order to prevent data loss when a machine has been in standby for many hours. This can be removed via the Disk Cleanup wizard or via an elevated command prompt (powercfg /h off).

  • ~315mb of Fonts. Windows users speak many different languages, often on the same PC, and wish Windows to “speak” to them. Windows Vista contains native font support to allow users with systems defaulted to one language to be able to read documents, or websites in another. As we know, however, fonts are east to delete should you desire.

  • ~52MB of log files. Whether it is the event log, servicing logs, or device installation logs (or more) this space is consumed and becomes critical when trying to diagnose a failure. These logs are often used by our support personnel or corporate helpdesks to diagnose a specific failure.

Engineering Windows 7


Windows disk space consumption has trended larger over time. While not desirable, the degree to which it’s been allowed is due in large part to ever-increasing hard drive capacity, combined with a customer need and engineering focus that focused heavily on recoverability, data protection, increasing breadth of device support, and demand for innovative new features. However, the proliferation of Solid State Drives (SSDs) has challenged this trend, and is pushing us to consider disk footprint in a much more thoughtful way and take that into account for Windows 7.


This doesn’t mean that we’re going to stop adding great features or make Windows less reliable or recoverable. As we look to the future, it’s critical that as we innovate, we do so treating the disk space consumed by our work as a valuable resource, and have a clearer design for how Windows uses it. We want to make sure that we are making smart choices for the vast majority of customers and for those desiring more control providing places to fine tune these choices as appropriate. This design goal isn’t about a type of machine, or specific design, all Windows editions benefit from efforts that focus on a reduction of the overall footprint.


For example, as we consider the driver support discussed above, Windows Vista with SP1 installs almost 1GB of drivers on the system to support plug and play of devices. This local cache can get out of date as IHVs release updates to their drivers, and as a result, users are pushed to Windows update to get the latest version once the device is installed.


Why not extend the PnP user experience to include (or only use) the Windows Update cache of drivers and save some disk space? This has several benefits:



  1. Because MobilePCs rarely lack a network connection, they can simply get the new driver from the web.

  2. People don’t have to install the driver twice on updated devices because they do the round trip to the web anyways.

With this example it’s easy to see how engineering for a minimal footprint might actually deliver a better experience for people when attaching new devices to their systems. At the same time, we want to be careful about going too far too soon. We get a tremendous amount of feedback regarding the “plug and play” experience or feedback about costly download times (if download is at all possible). For Windows 7 we are going to continue to be deliberate in what we include based on the telemetry of real world devices and reducing the inbox set to cover the most popular devices around the world. At the same time we will continue a very significant effort around having the best available Windows Update site for all devices we can possibly support.


Windows features installed by default make sense in most cases to support many scenarios. We should consider how we make some features/components (such as Media Center) optional when they are not required rather than installing them by default on every system. We’re committed to make more features of Windows optionally installed. As you might notice today in Windows, when you choose to add a feature that was not installed Windows does not require a source (a DVD or network location). This is because the feature is stashed away as part of a complete Windows install—this is itself a feature. We will always keep features available and will always service them even when components are not installed—that way if you add a component later you do not risk adding a piece of code that might have been exploited earlier. This is another important way we keep Windows up to date and secure, even for optional features.


System growth over time is an area where we need to provide more “transparency”. For instance, Windows will archive previous versions of updated system components to allow robust rollback. A new system will install patches as Windows Update makes them available, just as expected by design. As a Service Pack or other large update is installed that contains or supersedes any of the previous patches; we can simply recover the space used by the old updates sometime after the update is successfully installed.


Windows writes logs in many places to aid in troubleshooting and these logs can grow very large. For instance, when an application crashes, Windows will archive a very large dump file to support analysis of the failure. There are many good reasons for this behavior, but as we change our mindset towards footprint, we need to extend our scenarios to include discussions of how to manage the growth, and recover the disk space consumed whenever possible. Other areas where we are considering the default disk space reserved include System restore and hibernation. On a disk constrained system, the 1GB or more reserved to support hibernation is costly and there may be ways to shrink the size of hiberfil.sys. System restore should be configurable, and default in all cases to the minimally useful number of snapshots vs. a blanket 15% of the system disk.


At WinHEC we had several machines on display with 16GB drives/partitions and on those you could see there was plenty of free disk space. Like all the benchmarks, measuring disk space on the pre-beta is not something we’re encouraging at this time.


In conclusion, as we develop Windows 7 it’s likely that the system footprint will be smaller than Windows Vista with the engineering efforts across the team which should allow for greater flexibility in system designs by PC manufacturers. We will do so with more attention to defaults, more control available to OEMs, end-users and IT pros, and will do so without compromising the reliability and robustness of Windows overall.


-Michael Beck

Comments (108)

  1. domenico says:

    This means that the OEM Manufacturers can’t add software"crapware"?

  2. steven_sinofsky says:

    @Domenico — The numbers provided represent the installation footprint based on a typical (in hardware) 1GB machine if you were to run setup on a new partition from the Windows 7 Vista DVD.

  3. domenico says:

    @Steven Sinofsky

    OK , many thank’s MR Steven.

  4. RotoSequence says:

    With 805 megabytes reserved for printers, one would think it’s time to revise policies for them; that’s an awful lot of footprint spent on something most users will only go through one or two over the course of a PC’s usable lifespan, or less.

    Some systems are in a position where it is preferable to not have every driver for every possible device ready to be called upon at any time. An option to restrict the number of drivers that are installed would be a nice consideration.

  5. thebitguru says:

    Thanks for explaining the WinSxS folder.  I have read a lot about it, but this verifies what really is going on.  One thing that I am still not sure about, does the OS accounts for this folder as mostly containing hard links when it computes the disk usage?  Also, will Windows 7 behave any differently in regards to this folder?  I guess, given how hard links are supposed to work, is there really anything wrong with the way Vista reports it?

  6. hami1car says:

    "As we know, however, fonts are east to delete should you desire."

    Have you ever tried uninstalling some of the Arabic, etc. fonts? I’ve found them FAR from easy to delete. I don’t care about the size, but as a designer, I’d like control of what fonts show up on my system, because I don’t want to wade through fonts I’ll never use.

    That said, it seems like Windows 7 has found a good middle ground in allowing you to hide fonts (at least screenshots I see imply this). I don’t have the preview build, but if this truly hides fonts from apps like Photoshop, Illustrator, that would basically solve the issue for me.

  7. d_e says:

    Can anyone explain why the games use 100MB? I bet you could that get down to 10MB easily. Or even to 1MB if you really wanted to (procedural generation of textures, etc.). I believe most of the "Windows Components" could be shrunken easily as well.

    And what about code compression? UPX?

    But it’s great to hear that you pay attention to this. When you get the system down to some megabytes booting should be faster as well. At least on my notebook with the slow 4200 RPM drive…

  8. adcworks says:

    certainly for PCs, and in particular laptops, that are bought pre-configured, why would you want to preload so many drivers?

    if i think back to all the PCs and laptops i’ve had since 1994, i can’t think of a time i relied on window’s cached drivers, simply because the device always comes with its own driver.

    nor have i ever used the rollback mechanism. you may call me lucky that i’ve never needed to which is fair, but then i do backup my data regularly.

    i guess it’s horses for courses and you need to allow all these decisions to be made configurable in the control panel. then i can choose to turn off all this data bloat for a lighter, less active system which in my case is what i want.

  9. As an owner of an ASUS eee, very expensive SSD Disks and manager of an infrastructure with a lot of virtual disks (Hyper-V) this is a topic very close to my heart.

    You make a number of valid points about moving too fast too soon, but as an end user I want to be in control.

    Some comments that I am sure you have already considered, but I am going to bother you with anyway:

    1. Why not give me the option (via an advanced install) to skip the massive local driver database and always look on-line (Except for network drivers ;-). ‘Regular’ users who don’t specify this option get the local driver db.

    2. Give me the option to specify that my native language is English and that I have no interest whatsoever in all those massive Asian / Arabic font files.

    3. Give me the option to automatically (or time delayed) clear out the contents of C:WindowsSoftwareDistribution. If I am not rolling back an update within a few days believe me, I will never roll it back.

    4. Have a good look at what ccleaner offers (www.ccleaner.com) and ’embrace and extend’ their ideas and integrate it in the disk cleanup wizard.

    5. Educate your software partners to not leave all those massive MSI files around after installation (including but not limited to the contents of C:WindowsInstaller). They are probably there for a servicing purpose, but there must be a better way to deal with this. I just did  a search for MSI files on my system and found 20 copies of Quicktime.msi. I have no desire whatsoever to roll back to a 2 year old version.

    I know you don’t have an easy job. You need to please regular users, power users such as myself as well as IT departments. So good luck, any improvements you can make in this area will be much appreciated.

  10. ignitedfirestarter says:

    RotoSequence makes a very good point about printer driver space. I for one always go on-line and download printer drivers anyway; they are not core to the operating system so I don’t expect them to be there. Wouldn’t it be great if there was some kind of de facto standard for basic printing?!

    On a separate note, if we are going to start lopping drivers from out of the system, can we have a guarantee from Microsoft now that they won’t remove (indeed that they will add) (wireless) networking drivers. The ammount of times I have had to search for these from another machine, just to get a computer on-line for windows update to work.

  11. kanno41 says:

    There was mention in a post quite some time ago about how almost everyone uses a piece of software specific to that user.  This is quite applicable to hardware as well.

    You can not plan for every type of device that may be plugged in.  7/10 times that I plug in a device and rely on Windows to get the driver, it rarely finds it.  On a clean install for example, I should not have to install the Ethernet driver.  Network adapter driver support should be a top priority over all others.

    Drivers for about any piece of hardware can now be found on the internet if they do not have an installation disk.

    When people get a new printer, the instructions in the box intently say "INSTALL OUR SOFTWARE/DRIVER FIRST", even if Windows would already have a driver to support it. Including 800MBs worth of drivers for printers in unnecessary.

  12. TNowell says:

    Its great you want to rely on windows update for drivers more, but before you do that, windows update needs to become reliable.

    Many times I ahve installed network/sound cards and been offered an update by windows, and rebooted only to find my sound/network card has stopped working.

    I still get offered a buggy nvidia driver from June of this year for my 8800GTS despite having installed that driver at the time and then upgraded. Infact, it had already been made out of date by nvidia when it was first offered to me!

    Sometimes windows update works for drivers, but common consensus is that windows update drivers break things that already work.

  13. kudraw says:

    Hi folks, Hi steven, I would ask you about the Windows Setup.

    At this moment Windows have a good setup, that make ready the system in about 15 minutes, I’ve tried Windows 7 pre-beta on a Dell XPS 1330, and is very good that all (except finger-printer reader) works, wireless included!

    But, with this consideration about windows disk footprint, have you considered the option of a "very custom install" or "dynamic install"?

    Actually the users know if they have (a good) internet connection or not. So the setup can check first if all components has newer drivers on Windows Update and install only these? A sort of "Dynamic install" of drivers.

    I think that must be a little set of drivers to make working usb, chipset, network, most common devices… but some user want to choose about others devices.

    Generally I have 1-2 printers at home or work, not 1 million :D.

    Thanks!

  14. soukyuu says:

    Good to see you are working to reduce the footprint, that’s one of the points people don’t like Vista – because it eats free space.

    I have to agree with what was said above about printer drivers. Usually you only have 1-2 printers you need drivers for, and since manufacter drivers have more features, i usually install them, so the pre-installed windows drivers are not really useful to me.

    I think making the driver DB optional (or splitting it into categories) + allowing the user to select WHERE to put it would be best.

    Same for fonts and other features. I understand that it might be more comfortable to not having to insert the DVD every time you install a new feature for many people, but i prefer to have the possibility to be able to decide whether i want that or not.

  15. Typhoon87 says:

    I agree with above about the network drivers being important, have installed the 64 bit version of Windows 7 and I had multiple missing drivers but the biggest one was the network driver. I can’t check Windows update or Microsoft update for drivers without an internet connection.

    Also I have an Asus K8V deluxe motherboard and finding a 64 bit driver is a pain in the but. It has a marvall lom card but I had to the use 64 bit 3com driver to make it work.

    Also the detection logic must be flawless. I know this involes getting hardware and drivers that properly repot all plug and play information. For example, I have an ATI remote wonder. It worked fine in XP, one day a driver update popped up on windows update, I donwloaded it hardware stops working. Upon investigation it was for the X10 remote wonder not the regular one. This was in the Microsoft update beta. I bugged it in Connect and to ATI. It was marked as fixed on Connect to this day two years later it shows the X10 version Driver on XP SP 2 and 3, Vista and SP 1 and Windows 7.

  16. spivonious says:

    Would you say that drivers are the biggest "space hog" on a fresh Windows install?

    An easy solution would be to check if the computer is connected to the Internet while installing, and if so offer the user the option to install the drivers or not.  I’d be willing to bet that most computers that are connected to the Internet while installing will always be connected to the Internet.

  17. afrazier@victorptg.com says:

    As an English only user that’s not at all interested in other languages, being able to remove things like IME components, various fonts, and Lang Pack Resources would save quite a bit of space, nearly as much as the Printer Drivers.

    I haven’t used Windows Update to grab drivers in Vista yet, but is it improved over XP?  When a driver is large (or one’s connection is slow), there’s no way of knowing whether or not WU is working, or how much it’s downloading unless you do something to watch the network traffic.

    And there’s a very easy way of timing when to clean out superseded files: When the user decides they no longer want to uninstall a service pack by running vsp1cln or some other built-in tool.  Extending that to encompass individual patches wouldn’t hurt either.

    And while I’m a fan of having patches for components that aren’t active already in place so I don’t have to visit Windows Update after adding one, it’d be nice if the unpatched portions of those components weren’t sitting on my hard drive anyway.  Does Microsoft have a way of tracking metrics on component addition and removal?  For desktops I’d expect that if it’s not added shortly after setup, it’s unlikely to be added at all.  Maybe Windows could cache all the components on the hard drive during OS install, as it does now, but use some kind of heuristic (Hours of use?  Just a wild guess.) to determine a point in time that a user isn’t likely to be adding any more components and that it’s a good time to purge that cache.  If you wanted to be really tricky, you could try to gauge "most related" components so that if a user does add something later and needs the DVD, Windows would also cache some of those components for a while.  Some way for power users and administrators to override this behavior would also be welcome, be it a GUI, CLI command, or registry change.  It’d allow either fine tuning those timing parameters, an "always cache" and "never cache" list, and/or a "purge cache" option.

    Just some ideas…

  18. Jalf says:

    Ooo, disk space. The thing I absolutely hate about Windows in this respect isn’t that it uses lots of disk space. I can live with that. 15GB is nothing when I’ve got 500GB harddrives.

    The problem is that Windows decides that all of this must pretty much be one atomic blob. It’s 15GB on *one* disk on *one* partition.

    This causes problems in several ways. First, for those of us who prefer to keep Windows on a separate partition so we can easily reinstall it, it’s hard to predict how much disk space to put on that partition. And later on, when you inevitably run out of disk space *anyway*, being able to move parts of Windows to a separate partition would be a lifesaver.

    Of course this would be simpler to do for some components than others. I’m not suggesting that the System32 folder should be able to be relocated, but all the rollback/uninstaller stuff could easily be relocated, both when installing Windows and later on, when the folder already exists. It seems like half the folders under Windows don’t need to be there at all. "Offline Web Pages"? Isn’t that something my browser needs to keep track of, rather than the OS? The log files from each and every installation? I don’t mind them existing, but why under Windows? The place is crowded enough as it is. This is pretty much the same reason why I don’t use the many folders you create by default under my user account folder. I don’t want my many gigabytes of music stuffed into *that* folder on *that* partition. That’s where I want to keep the data I work with and change on a regular basis. My music is much more static, I just need to listen to it. That can easily be somewhere else, even in a folder with no write access, I don’t care, just not there.

    And Program Files? Great, *one* folder for all programs, which quickly, especially once you install a few games, end up taking hundreds of gigabytes. The idea that all of a user’s data can fit into two folders (User folder and Program Files) is just ridiculous.

    I could (and do) use hardlinks and junction points to try to split this up, but this brings us to another important point. Pretty much nothing, except the core NTFS filesystem takes these into account. As you showed, disk space usage is computed wrong because Explorer doesn’t understand the various kinds of symlinks. Installers *always* fail to understand them as well. If I install something to D:GamesSomeGame, the installer will check how much disk space is free on D:, whether or not Games or SomeGame are junction points, which leads to applications refusing to install when there are plenty of disk space, or installers running out of disk space after they’ve passed the disk space check (Which, coincidentally causes the VS2008 installer to hang so it has to be killed from Task Manager).

    Please, if the necessary API’s don’t yet exist, add them so installers can compute *correct* disk space requirements, and for heavens sake, make your *own* software (like Explorer) aware of the feature you added to the filesystem almost a decade ago.

    I already mentioned that I’d like to be able to relocate the folders containing uninstall/rollback information, which really has no business being hidden in Windows, but another question is, why is it there at all? Yes, it’s a valuable *option*, but is it something that all users need for everything they install, forever and ever?

    Once a piece of software has turned out to install correctly, and work as expected, I don’t really need the original installer any longer, do I? I can’t imagine why Id would ever uninstall a Windows service pack or or other update. So why do I have dozens and dozens of $NtUninstall folders under Windows?

    Yes, for the paranoid sysadmin, that might be a useful option. But *option* is the keyword then, isn’t it? The rest of us have no intention of ever uninstalling KB954211, whatever it is, so why do I need a $NtUninstallKB954211$ folder?

    Finally, relying on Windows Update to install missing drivers is… interesting. I’ve never ever managed to find the correct driver there. Occasionally, it suggests I install some 6 month old driver, or more often, one with no version number or date at all.

    Of course keeping it up to date with new drivers is a pretty big task, and I don’t blame you for not offering the latest version of every driver. But failing to tell me which version you’re offering to install is unacceptable, and makes Windows Update completely useless for drivers. I need to know which *version* of the driver you’re installing, the date at which it was released, and if you’re feeling friendly, detection of the currently installed driver version would be handy too. And of course, a link to the manufacturer so I can manually grab the latest driver in case you’re offering a very old one.

    Instead, what I see now is pretty much "New ethernet driver. See this link for more information", and then one of the infamous links Microsoft does so well, linking to a generic and totally useless help message saying I should contact my system administrator for more information.

  19. LDragon says:

    It would be nice if there was an option to just include the most basic drivers: keyboard, mouse, monitor, basic video card functionality, IDE/SATA/RAID, and as many NIC/Wireless options as possible.  As long as the system can install and boot with the most basic UI and ‘net connection, everything else can be grabbed online.  There are still some people who have a slow or nonexistent connection – give them the option for the full mess o’ drivers.  This may not be as important immediately after Windows is released, but a year down the road most expansion cards/motherboards/etc. are going to have updated drivers anyway, so there’s no point in recognizing "advanced" functionality over "basic" functionality (in a video card, for instance) if it’s just going to get replaced immediately anyway.

    For the non-tech-savvy user, this would require an improvement in the relevance/quality of the Windows Update drivers…I’ve been offered various versions of a Dell printer driver for almost a year and it either never installs (though it never errors out) or it never picks up that it IS installed.  That makes me skeptical of trusting any drivers from Windows Update, I just go straight to the manufacturer.

  20. afrazier@victorptg.com says:

    @Jalf: One of the reasons for leaving the option of uninstalling a patch or service pack available is, as you know, to afford for the case when a patch causes an issue.  My question for you is: "When do you know that everything’s working?"  Some bugs are subtle and may not show up for some users for quite some time.

    Also, isn’t it up to the hardware vendors to supply Microsoft with drivers for Windows Update?  If that’s the case, blaming on MS for driver revisions is misdirected.  If I’m incorrect I apologize.  I agree with you on the install experience though — too many install failures and they should be revoked.  Which brings us back to having older drivers on WU.

  21. Typhoon87 says:

    Yes for most hardware the drivers are provided by the hardware company such as ATI, Nvidia, Logitech ect. But there are many drivers that are not offered though Windows Update. I am not saying that every driver should be but we need to have a higher amount that currently do. Also what happens when a Windows update driver install goes bad. The driver does not fail to install so MS does not find out because Windows Update says it installed corretly which it did but upon reboot the system fails to boot or causes some other issue?

    Also the user expirence is vastly diffrent. If you can get a vista sp1 machine and a newer logitech webcam. Plug in the webcam without installing the driver first as the manual states you should. Allow windows to find the driver. It installs, then it says hey you dont have the logitech quickcam software do you want to download it click yes, wait. It walks throught the installer for the latest version of the software for your cam, then has you do one reboot. This is the best end user hardware install expirece I have ever had. Why cant more work like this.

    Steven: Could we get a post from the Windows update driver team or whoever maintates that to know what is being done to improve accuracy of Drivers from Windows Update?

  22. hollamon says:

    Michael, another note.  Please be careful about using obscure Microsoft internal lingo in a post like this.  

    It took me most of the way through the post to figure out that when you were using the word ‘inbox’, that was internal lingo for ‘the set of things that ship in-the-box with windows’.

    I think that will cause unnecessary confusion.  Even just hyphenating it to in-box as in ‘in the box’ makes it more understandable.

  23. smartpatrol says:

    Larger drives is a pretty poor reason to increase the footprint of any OS. Why can’t i have a basic streamlined Windows OS without all the useless fluff pre-installed? All features,extra drivers, eye candy shoud be optional installation. Example: windows Aero adds absolutely no value to my gaming system(my primary use of windows) I have it disabled completely but it still occupies space on my hard drive along with tons of other features i have never used in Windows(like the narrator). The future success of Windows is dependent on a minimalist approach.

  24. Tihiy says:

    Uh-oh, post I was eager to see!

    WinSxS and all that ‘servicing stack’: it’s just plain wrong. It’s an extremely ugly technology. It’s non-any-human-friendly set of files (and btw, what is HKLMCOMPONENTS?), and actually, no one cares if they’re not real disk space – they are the enormous bottleneck of perfomance and compatibility (it seems that way for me).

    Old programs used to scan hard drive choke opening it. Explorer hangs browsing it (although there is no reason to open it – it’s non human-readable anyway). TrustedInstaller eating all CPU – what it exactly does? I’m afraid scanning through this huge directory and NTFS clot associated with it.

    That’s the one of the biggest things which makes me clench my teeth working with Vista.

    Every time is see it, i think – who, and why implemented such an ugly thing? Who made OS a slave for itself?

    In W7 you guys overcome UAC which was killing UX for technology sake (and to teach developers). Can you fix that ugly WinSxS stick? I don’t believe everyone is okay with it!

    I would use Windows 7 – XP time ran out, but please – please – one small requaest: if you can’t make servicing stack okay, can you make WindowsWinSxS super-hidden? Pre-Vista Explorer could mask folders with ‘barricades’, like %SystemDrive% or %ProgramFiles%.

  25. caywen says:

    How compressible is hiberfil.sys? I would think that it would compress very well. Most apps store their in-memory data in non-compressed format (like a C string, or arrays of structures that contain much repetitive data).

    If it compresses well, why not use Zlib and put more burden on the CPU and less burden on the disk? I think most systems, when hibernating and waking up, have the CPU at <5% utilization, but have the disk at 100%. Supposing hiberfil.sys can compress down to 100MB, you’re reading 100MB over slow disk instead of 1GB. In fact, if the disk is fast enough and the compression good enough, you could get rid of sleep altogether if the de-hibernation only takes 3-4 seconds.

  26. JediJorgie says:

    I just wanted to put in another vote for the option to do an install where all but ‘needed-to-boot-and-get-on-the-network’ drivers are retrieved from Windows Update an external-to-windows folder that we can update.

    For a great example, look at the System Center Configuration Manager installer. It allows you to run setup explicitly to download updates and put then in a folder to be used during a later install.

    One thing that this would require is giving much more information to the user while the system is checking for drivers on Windows Update. Right now, when you plug in a piece of hardware and tell Windows to find check WU, you are presented with a static dialog for a LONG time with no infomation. It always looks like the system has hung and it can take a LONG time.

  27. Laith says:

    I still don’t quite get why the folder size calculations are not accurate. Can this not be improved?

    My main issue with Vista and XP (and infact even versions before XP) is that Windows seems to slow down quite a lot after a few months of using it and you can never get the "new PC" feel without formatting. It would be great to understand why that is and why there isn’t a way (a tool or method) or restoring the speed of the OS originally.

  28. d_e says:

    @caywen: I believe it’s already compressed. But this fact doesn’t save any diskspace because Windows has to prepare for the worst case situation: uncompressible ram content.

  29. caywen says:

    @d_e: Ah, I didn’t know, thanks for correcting me. I made the assumption that it is not since it is the same size as physical RAM. I suppose it’s the full size anyways for a reason.

  30. poundsmack says:

    ok I have a quick question. I dont even own a printer. I dont want any of the print drivers at all. This pretains to XP and Vista. is there a way to remove them? I just dont need them and with my SSD being only 16 gig it would really be ncie to have that extra space. please let me know

  31. marcinw says:

    What can I say ?

    I have published here comment hour ago. It wasn’t aggressive, inpolite and didn’t break any other rule on this forum and had some questions to e7blog and some ideas about device drivers tool.

    Why was it deleted ? (maybe sending short email with explanation would be good idea ?)

    Shortly:

    drivers – why can’t we have tool, which will have only one window: on the left tree with devices names and on the right their versions. It will be possible to delete or add driver to system using it.

    why system "is slowing down" after months of usage – it’s going, because we have more and more garbage inside. It happens, because we have shared Registry, opened system directory for applications and other design decisions…

    WinSxS – it criticized many times. Why Microsoft can’t give to customers what they want and prepare something else instead of it ? and why Explorer can’t display additionally real size of these links on hdd ? (in other words: when directory X contains link and file, there will be displayed size of file + number of bytes used by link on hdd)

  32. steven_sinofsky says:

    @marcinw — there is no human involved in comment moderation.  The filtering that takes placed is algorithmic and determined by the third party code that runs this site.  From what I understand many elements including length, quoting, language, # comments by any one person, frequency, etc. all are weighted in terms of “spam detection”.  I am subject to the same rules.

    However, since you asked I might suggest that you avoid repeating yourself and let you know that your point of view is well known and so sticking to new topics is probably polite for all of us.

    –Steven

  33. swwhittle@gmail.com says:

    I am adding my voice to those who you like more options on content when installing W7. I appreciate having the full installation option on some machines, but when I want a small footprint and have the exact drivers then I want to be able to have the option to not install extra drivers, fonts, …

  34. faramond says:

    I absolutely much echo the statement, "I don’t care about the size, but as a designer, I’d like control of what fonts show up on my system, because I don’t want to wade through fonts I’ll never use." The font list has gotten out of hand with all the international, system (e.g. widget-drawing), and math fonts that most people never use (at least directly)!

    Also, if you are going to cut down on drivers, please don’t give network drivers the ax. There’s nothing worse than installing Windows on a computer whose network card is not supported out of the box! (What am I supposed to do? Download the driver?!) Perhaps more standardization in network drivers would help–think of basic VGA-style functionality, only for network cards.

  35. Leeoniya says:

    Steven, or anyone else on the windows team:

    1. I do agree that you own explorer MUST be able to identify hardlinks/junction points and exclude them from any diskspace calculations, i know Windows has been able to do this for a long time, you can get the attributes from cmd prompt and it does list the types correctly. If anything, this deficiency in Explorer is in fact a bug, not a feature.

    2. The biggest turnoff for me is Microsoft’s continued refusal to externalize settings that interest much of the IT community and professional users. Registry tweaks are a godsend, but a terrible way to give pro users access to detailed settings. PLEASE make some kind of tool that externalizes a lot of these registry tweaks and gives users more control over features, rather than less – which seems to be a pattern in Windows development.

    3. I am further confused by decisions made by the UI team for Vista. Why would you cripple control (what little there was) that has exisited in previous versions of window, like toolbar positioning, button selection, panel locations, panel visibility. Why not create an XML based theming system that would allow you to control every aspect of the UI – if desired. Why do i have to put up with gigantic margins on everything in my UI? Why can i not turn off visibility of things i never use? And why does it suddenly take 3x the number of pixels to display the same amount of info that XP used to display. A lot of UI space is wated on eye candy and there is little control over this. Please rethink the CONTROL you allow to advanced users. I am fine with terrible defaults, and i do find them terrible, but give the ability to control them.

    thanks,

    Leon

  36. Mantvydas says:

    Oh, those hard links in Windows Vista… I doubleclick on my C:Documents And Settings, and why do I get that nasty "Access Denied", why can’t I simply be brought to C:Users, or to C:Vartotojai instead, as that’s what C:Users is named in my language.

    Just show a different icon, that it’s Hardlink, and that’s it.

  37. marcinw says:

    @steven_sinofsky,

    Thank you for explanation about removing posts. I will suggest something – this filtering should check everything during adding post, not after longer time (currently it’s done this way and there is feeling, that this is work from human)

    I’m sorry, that few times (two or three) some posts were sent double.

    I’m not sure, if you wanted to write "it is polite" or "it isn’t polite". If second, I’m sorry for that.

  38. Juan Antonio says:

    I’d never understood why it’s needed to save all the memory for hibernation. I think that segments of memory with code only should save a reference to fragments of files where that code its saved.

  39. DarkUltra says:

    Leeoniya,

    I see myself in you, but you don’t mention vistas breadcrumb system. are you not annoyed by the way it prevents you from "breadcrumbing" all the way to the desktop, and long foldernames forces you to click that small arrow to access previous crumbs?

    If I had easy access to the desktop I wouldn’t need to waste space for a left column with links to my computer and network and recycle bin. Vista really is not very effective for me, or am i doing something wrong?

  40. Jalf says:

    afrazier@victorptg.com:

    When do I know a patch is working properly? For almost all patches and almost all users, almost all of the time, a patch can be considered to be working if I haven’t uninstalled it within a day or two. If I leave it beyond that time, it must be because it works well enough, and so it can stay on my system until another patch fixes whatever subtle bugs existed in it. Yes, I’m aware that in rare cases, you may want to remove KB85373 two months after it was installed, and after you’ve installed two dozen other KB fixes on top of it. But that is a pretty rare case, and I think the *default* behavior in Windows should target the most common use scenario. Which is that once a hotfix has been installed, it stays there. (And further, why does Windows need to save the entire original installer, just to be able to uninstall later?) Obviously, the alternative should be supported, because *occasionally* that is what you want. Sysadmins who want absolute control and the ability to reinstall or roll back anything any time will want to store all possible installers and uninstall/rollback data, I’m just saying that for the common user, it just serves to bloat up Windows.

    As for keeping MS Update up to date with drivers, I honestly have no clue. I assume vendors submit drivers to MS Update, which are then certified or go through some internal MS process before they’re added. In any case, I wasn’t really blaming anyone, just pointing out that for this to be useful, MS Update *must* have up-to-date drivers, regardless of whose responsibility this is.

  41. lyesmith says:

    Come on! 1 Gig for printer drivers? Remove them all! Drivers can stay on the system DVD and at the same time on a MS managed online driver storage. Why do you have Windows Updates at all if you cannot fetch the required driver on demand? Any given user will only use 1-2 printer in the lifetime of the OS. Also Language packs? How many language will be used an OS? Max 3 at the same time one would think. Why can’t you prompt the user if he wants to keep the rest of the languages. And make available online for further changes. You need a nice font manager (Win 7 is nice) to disable and remove fonts. Also just make them available online.

    Handwriting and ink, Speech recognition, wallpapers etc these are all modules that should be easily deactivated/removed maybe, during install or after.

    See you are already 2 Gig leaner.

  42. manicmarc says:

    The first commenter made a really good point. OEM Crapware!

    It doesn’t matter how fast a car can go, and how lightweight and stylish it is, if the garage you buy it from insists on attaching a caravan to it before you drive it away.

    McAfee and Norton slow PCs down. They show lots of annoying alerts and advertisements, and make the desktop look horrible. I know it brings it a lot of money to OEMs and retailers (who try and sell you up from the 60 day trials) but users should come first. I am glad Microsoft are releasing their own AntiVirus software for free. It’s a shame they won’t be bundling it with Windows 7. I just don’t want to see all this thought and effort put in by the Windows 7 team wasted because some badly coded piece of bloatware gets bundled on every new PC.

    We need an option to choose where and how long we keep Windows installer packages for. On a solid state drive with 16GB of disk space, I may decide my 250GB pocket hard drive is a better place for this sort of thing. Yes it could be annoying if Word pops up saying it needs to install something while I am out, but since I always do a complete install anyway it wouldn’t.

  43. steve30x says:

    I still ask where is the new file system that you guys were working on for Vista. I think it was called WinFS. We need a better file system to reduce fragmentation (maybe get rid of it) and speed up file access.

  44. Leeoniya says:

    WinFS had a lot of good things in it – tha main one being able to index and query your filesystem through some standard SQL like you would any database…which would have been sweet, because your filesystem performance can be tweaked immensely through indexes alone based on the typical type of work a user does.

    Looking forward, however, fragmentation will be much less of an issue as everything will start to move towards SSD-based storage, which is 100% random access and does not suffer from fragmentation whatsoever, there should be more pressure on motherboard and SSD manufacturers to move away from ATA controllers in favor of NVMHCI controllers that are optimized for random access storage devices, and windows 7 appears to have support for this: http://windows7center.com/windows-7-feature/windows-7-to-improve-on-solid-state-drive-ssd-performance/

    Leon

  45. Leeoniya says:

    ..i should correct myself, the article says Windows 7 won’t support NVMHCI :(. regardless, they’re making optimizations to how existing controllers access SSD devices, so the point about fragmentation insignificance is still valid.

    Personally, in XP Pro SP3 – the performance difference is HUGE on my Lenovo T400 with a Super Talent Masterdrive OX 64GB vs the stock 7200 Hitachi. I dont know what people are talking about when they say there is little improvement – i do know, however, that some cheaper SSD drives shipped with crappy JMICRON controllers, so that might have been the cause.

    Leon

  46. Eriwik says:

    I would like to joint the others who have expressed the desire to have more control over what gets installed and when. Especially I would like to point out that for most users the hardware present during installation will not change much, and if it does it is so seldom the the user can live with having to use the installation disc or downloading drivers from the net. Also, when new hardware is installed it is usually newer than the Windows installation and there are no drivers for it on disc. In short, for the majority of drivers if the driver is not needed during installation if probably will not be needed later either (printers are a prime example), of course there are exceptions such as USB memory sticks etc. but they should be easy to find. (Don’t you get information about what drivers are installed from the Customer Experience Improvement Program?)

    As others have pointed out I don’t particularly like the idea of spending lost of disc space on features (and updates to those features) I do not use and often will not use, ever.

    And while vsp1cln.exe is a great tool I guess that most users does not know that it exists, why not make it easier for the users by simply asking the user if they want to keep uninstall information when the installation is completed? And once again, do you have any statistics on how often users do uninstall a service-pack?

    Now a few answers to comments from other users

    faramond:

    Yes, it is possible to standardise network drivers. You actually don’t need more than a few drivers per network type and chip maker. This is how it works in the open source world where one driver is enough to support all wireless cards that uses the Ralink network chip. The reason it’s not done like this in Windows is probably a combination of tradition and politics. And don’t somebody come tell me that the device manufacturer’s drivers provides more features and configurability, the open source drivers usually have better support than the proprietary once (except for the proprietary features which you won’t be using anyway).

    Leeoniya:

    Fragmentation is still a problem on SSD since it will require access to more locations in the disc and thus more than one DMA transfer, i.e. to read a file in four fragments you need to do four requests to the disc. Fragmentation will probably also result in suboptimal usage a disc space.

    Regarding the hibernation-file:

    It is true that you usually do not need to save the full size of the RAM since you usually don’t use more than perhaps half of it, much of it is buffers that don’t have to be saved, and you could use compression. But to prevent catastrophic failure when i.e. the battery runs out you must be sure that you have enough disk space to store everything that has to be saved. The problem is to determine how much space is required, since it changes depending on what applications you have open, and the compression ratio depends on what’s in that memory. In short, reserving space for all RAM is the safest option.

    A few words on hardlinks:

    A file on disc consists of three things, a name/path, the file data, and metadata (there is metadata associated with both the name and the data). A hardlink is the connection between the filename and the file data. What causes the confusion is when there are two (or more) names that links to the same data. Since they link to the same data they both have the same size, thus it is not wrong to report the size of the SxS folder the way explorer does. Mr. Beck claimed that the files in the SxS folder points to files in the System32 folder, but it it just as correct to say that files in the System32 folder points to files in the SxS folder. Generally speaking it is not possible to find the other names that points to some data (unless you search through all files), all you know is that it will be in the same filesystem. This makes it very hard to calculate the actual space used since any user can create additional hardlinks.

  47. consumer4beta@hotmail.com says:

    Very happy to know it’s only ~ 400 MB and not several GBs. Still I feel MS can allow users to see the free and used space more effectively in Windows 7 (WinSxS as well as the space taken by Volume Shadow Copies). And what about the performance impact of WinSxS??? "Please wait while Windows configures updates". This is *NOT* what I want to see in Windows 7, nor did I see it in Windows XP.

    Regarding hibernate, I would like to know how the Windows 9x family (98 and especially Windows Me) required only half the amount of disk space of installed RAM for hibernation. And make installing language components optional (MUI resources and IMEs), I just don’t want any other language other than English, say for example.

    As for the %Windir%system32Driverstore folder, like the innumberable comments here, I want MS to get it loud and clear that I would want to save that disk space or at least I most certainly want to be able to decide as a user. Didn’t XP support a large number of devices as well (more in fact than Vista including very very old ones). Then why does Vista create a DriverStore folder? To make driver reinstallation/rollback easier? I don’t want that.  I welcome the Windows Update only decision in this regard. For driver installation, I *want to have* "Have Disk" functionality during the initial wizard (which Vista removed).

    And MS does need to do something about the ‘footprint’ of Windows Installer and cache MSIs as well. I can find several MSIs of apps like QuickTime and Windows Live Messenger (even MSN Messenger) on my PC.

    For patches, I would prefer to have the /nobackup switch back. Remember, you need to let the user decide. The default option can be to keep backups for those won’t don’t know/aren’t aware. During/after service pack installation, a checkbox can make more users aware instead of vsp1cln.exe.

    Lastly, I know Explorer is sort of symbolic link aware starting with Vista, but it should be completely aware of all NTFS attributes (hardlinks, sparse files etc everything) and be able to manage them (have to GUI for that feature).

  48. kaiyao says:

    Since one of the main reasons to reduce the footprint of Windows is SSDs, is it possible to have the OS files been configured into a more speed-critical and more-writes part, and another part that is less-used and mostly read-only?

    With such a separation, it would be possible to have the more-used part on an actual SSD while the other part on a slower but cheaper flash-based drive, like the hardware in some eeePCs.

    Looking at the above table it would seem that some things like the printer drivers can be placed in the slower drive.

  49. burgesjl says:

    MS, plese take a good look at the post by ritmeijer@hotmail.com because it contains everything you want to know about how to manage this.

    If allowed, I would specify I want some installable elements to be local and some remote. If I specify remote then I will definitely need the ability to re-install any network drivers – they are critical to get what I need. I’m never going to need Arabic fonts, get them off my system!!

    The amount of space taken up by printer drivers is ridiculous. Really, how different are all those HP printer drivers? There are thousands of them and highly duplicative I’m sure. Further though, why not expand the same idea to local devices as network ones, and get the drivers directly from the device itself? On a network, you can download the driver fromt he node acting as the spooler. If you incorporate a sensible driver model, you could have a miniature disk image and have the drivers needed for the device on the device itself, with a simple protocol to grab it and install it. You can use tools to flash a new driver image on the device itself too.

    Windows should be able to boot from a device with less than 4Gb RAM. This RAM/memory should be on the motherboard of the PC itself, like the BIOS is. Windows should flash its minimal image into this area. Anything which is ‘optional’ can be on the primary disk, but the machine need not boot from disk.

  50. travisk says:

    According to a post on the Core Team blog, the WinSxS directory works in the exact opposite fashion as described in this post. Instead of files being linked into WinSxS from everywhere else, they claim the actual files exist in the WinSxS and are hardlinked out to wherever they are needed.

    http://blogs.technet.com/askcore/archive/2008/09/17/what-is-the-winsxs-directory-in-windows-2008-and-windows-vista-and-why-is-it-so-large.aspx

  51. chojrak11 says:

    PLEASE don’t forget c:windowsinstaller which is also almost 10GBs if you use SQL, VS, Office and some other stuff.

  52. adir1 says:

    I feel that this post didn’t touch on most important aspects — The Versioning that started with Vista and happens "behind the scenes". I find it utterly impossible to use on partitions where very large media files are involved and being edited. It creating "shadow versions" of files, is causing the disk space to "magically disappear".

    Will this be reviewed? Why can’t I control to tell it (also for PERFORMANCE benefits) not to VERSION certain files?! (Think Media, Gaming, etc!)

  53. Erik A. [MSFT] says:

    travisk–

    As far as the file system is concerned, they are the same file with two different references pointing to the same data on disk. The actual data on the disk isn’t removed until all references (hard links) to it are removed.

    So, in reality, neither is an "owner" of the file, so it’s not really correct to say that the "actual files" exist in one location or the other. They are both just references to the same data on disk. If another hardlink is created to the same file, it’s just another reference.

    Both this article and the one you linked to explain the concept in the way they do in an attempt to simplify it. In reality, neither are technically 100% true (deleting one of the locations but not the other will never remove the actaul data), but for all intents and purposes both explanations are close enough.

  54. phschmidt says:

    Sorry for not being active but I didn’t want to repeat myself that much (not to mention those cosmetic posts in which I am not interested), however I must repeat myself again now. Do it as modularly as possible:

    Firstly and foremost, the simplest and most obvious way to keep a small footprint is to NOT install what is not needed (wide concept, includes everything from drivers, passing by "fancyware", to architectural optimizations).

    Secondly, all the info one should need to uninstall anything is a plain text list of what was installed/changed (compressed preferably since if it is going to be used at all it will be once), there is no need to keep all those installer/uninstaller packages. As for upgrades, there is no need to uninstall them, if something goes wrong, as the version and what the problem is are known, then simply fix it, again (or there is that system restore thing eating space for some reason, by the way, if the user knows how to disable it then he also has maturity enough to handle some bugs). Also a proper system for external backups, or in another partition where you would want to temporarily keep such backups (system restore data included, if you like), until they are not needed anymore (too old/deprecated) or they are committed to an external medium, is not a bad idea, specially if there is a selective restore option.

    Thirdly, it is to be expected that conscious users (minority unfortunately) are going to use several partitions or drivers or both, I would go even as far as suggesting that you, by default, isolated the system folder in a independent dedicated partition. I myself have six, four in one disk for the system, the games, other programs (unable to express how much of a PAIN that default "c:program files" is, noticeably those "common files" that some use more than the main install folder, not to mention, how is it that you change the internet explorer add-ons installation path again… pandasoft activescan for instance eats up 150MB alone) and miscellaneous. The two others in my secondary drive are, one for my personal files and the other for swap (page file if thats how you call it).

    As for links, call it nostalgia from the linux hard/soft links but it is a very good concept. I mean, if the administrator decides that it is a good idea to change one folder from a program or the system to another partition without breaking it, then a hard link wold do the trick flawlessly (move the folder to where you want and replace it by the hard link, I know that there is already some functionality on this regard that can be done with dynamic drivers and ntfs, but not good enough yet, too much prerequisites and limitations).

    Lastly, maybe a bit unrelated, do not auto-run anything automatically (I am including, but it is not necessarily the case, those reads that decide which program to launch like the movie player if there is video or the audio player if audio, and yes I know you can tell it to do nothing but I am talking about the "read", the brilliancy of reading even a portable HDD for such a purpose is beyound me, I myself disable the service that does it, the result is sooooo much better… seriously, it should not even exist, much less by deafault), removable storage (pendrives in particular) are such a pain to deal with due to that lazy autorun.inf that all sort of viruses seems to use nowadays.

  55. Keris says:

    About the drivers …  I’m of two minds on this.  One tells me that yes, it is good to plug something in and have it Just Work.  The other mind is staring at this 1GB glob of stuff, 98% of which will never be used in the lifetime of my computer, and thinking “Why keep this around all the time?”  I’d be more in favor of going the Windows Update route, but that has been horribly hit or miss for me.  The most egregious of misses would be when I plug in something made after Vista shipped, thus not inbuilt drivers to autoload.  I say “Sure, look online for drivers!  Should be newer than the ones in the box.”  Only instead of finding anything, it spends a veritable age searching only to tell me it hasn’t found anything.  So I back up and toss in the driver CD that came with said device and install the drivers from there.  Suddenly Windows Update is yelling at me, “Hey!  Hey!  I have a newer version of that thing you just installed!”  Why it couldn’t manage to find it the first time around I cannot say.

    One thing, though, can be used to help cut down on this “wasted” space: NTFS file compression.  Driver cache?  Installer cache?  Unused Windows components in winsxs?  All of them should be compressed.  While it isn’t very powerful, NTFS compression is almost free on modern CPUs.  Just compressing whatever was not in use while in Safe Mode inside the winsxs folder slimmed mine from 9.6GB to 6.2GB of actually used disk space.  Even greater savings could be had if unused versions were CABed or ZIPed (although that would add more steps and complications, whereas NTFS compression is totally transparant).

    @caywen (and anyone else asking about why the hibernation file acts as it does)

    Eriwik mentioned much of the reasoning behind why compression or only saving out what’s used isn’t done: it’s more complex, and thus has more points of failure.  Another reason is the way in which NT boots up.  After the BIOS (or EFI) hands over boot control to NT, the bootloader fires up and loads basic hardware support.  It then reads the boot information to know where the OS is.  It’s at this point that, if a hibernation file is present and “turned active” that it will load it into memory by simply copying it byte for byte.  This is all before the kernel is loaded, before any complex file system drivers are present.  Thus to support compression or partial sizes or anything else fancy, more logic would have to be pushed down to that layer.  Or, alternatively, load the hibernation data after loading the kernel and all the associated drivers and memory management.  The first option would involve making the system more complex (and thus more prone to failures) while the second option would cause boot times to be even longer.

    @DarkUltra

    Yes, you are “doing something wrong.”  Or, more correctly, you’re overlooking something.  Just click the far left arrow on the breadcrumb bar.  You can now breadcrumb all the way back to the Desktop, as well as hit anything FROM the Desktop in one go.

    @Laith, Leeoniya, and anyone else asking about Explorer’s behavior in regard to hardlinks

    The reason that Explorer can’t tell you the correct amount of actual disk space taken up by files is because of the way it calculates the information.  The code is most likely left over from the ancient days when FAT32 ruled the desktop.  On a FAT32 partition, you’d never find yourself in a situation where what the directory structure presented was not what was actually on the disk [in situations when the disk is healthy].  Thus it could afford to be stupid and just keep adding file sizes to the total as it recursively went down the chain.  And, like a lot of code from this age, it has probably not changed much; it isn’t causing system crashes and reworking it would take time away from doing new things.

    Now, even given that, I do believe this is erroneous behavior.  Much like the path length limitations Explorer imposes that NTFS doesn’t have, it is something that needs to be fixed.  The Size on Disk part SHOULD report the actual size on disk, taking into account hardlinks.  (The Size column can probably report the doubles as counting as two.)  Since there are already APIs in place to check reference counts (and under Vista, even APIs to enumerate where all the hardlinks actually are), Explorer could actually be modified to take them into account.  One way is to store the unique file ID along with the reference count, and then decrement one from the count when it adds the file size to the heap.  If the count goes to zero, remove it from the list.  Then compare all new file IDs to what is in the list.  If it is new, repeat the same process.  If it matches one in the list, decrement the counter and do not add to the heap.  This will be a bit slower, but the process of accumulating file size info is already a slow process.

  56. alanjrobertson says:

    I wholeheartedly agree with Jalf’s comments – the key thing required ‘in the box’ is working ethernet/mouse/touchpad/keyboard/basic video drivers/USB mass storage.  Users can then pick whether further updates should come from Windows Update (hopefully with some slighty more updated drivers) or from the installation DVD.  800MB of printer drivers really seems excessive, especially as all new printers come with a installation CD anyway or you can download them from the manufacturer’s website.

    Let’s get the basic installation footprint down 🙂

    Alan

    PS – loving these blogs, roll on public beta of Windows 7!

  57. Prixsel says:

    We need less backup files!

    We need different editions for SSD and normal HDD!

    We need expert version so we could choose what we want to install!

    We want different editions and more choices for install for beta, everyone dosen’t need accessibility or tablet or media center!!! <- these take 1,5GB and slow down installation!

    Xp was like 600-800mb , having more cohices then we could also have 900mb installation or 800mb what fits on CD!!!

    We want that programs wont great junk files and leftover files! <- that’s why I use portable program versions so it wont touch my computer space so much and can be used delete not uninstall what is badly developed and wont be needing to worry about useless startup entry programs when we already have PREFETCH enabled , why programs still create their own startup prefetchers???

    Why is codec pack taking 60mb and WMV win7 also like 60mb? <- can’t it be improved? and why can’t it prefetch videos and pictures so it wont need to load them so slow for previews?

    Test on older systems and compare with XP not VISTA ,we know XP is faster than WIN7 but we wanna know how is development going compared to old XP , make more startup devices and services to manual so that when programs need it then OS can open them! <- doesn’t seem hard to fix it! <- I had 15 services running on XP , atleast make 16-26services not 40 on WIN7!!!! <- during startups

  58. DrizztVD says:

    I really like the fact that I can plug a device into my pc and Vista automatically finds the driver and installs it from the local driver collection. To decrease disk footprint, it certainly is an option to remove the drivers. But not everyone has fast a internet connection with a large cap. (over here you’re lucky if you have anything more than dialup) I’d actually like a larger collection of drivers, so more devices install instantly. To decrease footprint – have an option to copy the drivers or not at installation.

    Speaking of SSDs, why not have an option to configure the Windows OS to accommodate running on a smaller-capacity SSD? Simply selecting whether the OS must run SSD-style or HDD-style. With the former going wild with restore checkpoints and the like while the latter has the minimum of it. That way you can make full use of a 1TB hard drive or a 80GB SSD if that is from where your computer boots. Come to think of it, someone who can afford a high performance SSD will most certainly have a fast internet connection – and consequently won’t need the driver collection.

  59. paarden says:

    DrizztVD, the internet connection is going to break a lot of people up..

  60. aterphasma says:

    I actually want to pick on one thing Michael mentioned in this post and that is the system protection/restore/copy-on-write incremental backups feature that is included with Windows. The Volume Shadow Copy Service, VSS, was presumably written by Microsoft. So was the NTFS file system. Why, then, is VSS unable to determine if data is moved via defragmentation as opposed to an actual change in the file on an NTFS drive formatted with <16KB clusters? See KB312067, yes it says it’s for Server 2003, but "previous versions" are shadow copies and System Restore uses the same, as far as I know. Since most defragmentation programs these days–Windows’s own defragger, PerfectDisk, Diskeeper, O&O Defrag, etc.–use the system’s own defrag API, surely VSS should be able to recognize these calls and largely ignore them.

    I know this is a somewhat petty complaint, but when a system tool, Windows’s defrag, is automatically set to run by default and that tool invalidates Vista’s vaunted recovery ability there is something wrong. Is there any chance this limitation will be addressed some day?

  61. locolorenzo says:

    After this last install of 6801 I had a total of 12 gb of update backup files after running microsoft update, I exclusively use MS products for programming and general computing.

    Please include an option in Windows 7 update to "Do Not Backup this Update…" and an easy way of purging the system of unwanted files.

    Also consider the fact that all do not use new units, allow the installation of drivers at the end of the Windows install process.

    Also at the beginning of the installation you should have a dialog as to whether the computer is a Laptop or a Desktop, this way only the drivers that are needed are installed, I do not need a mess of drivers that have no application sitting there taking up space, being indexed and generally messing things up.

    Wow as I examine the Registry I find a convoluted pile of…no word to discribe the mess.

    Make it simple make it clean and you will have happy consumers…

    (Slight Deviation from Disk Space)

    And Also throw in some graphics and sound drivers for old machine’s that the consumer can install and not be locked out of features that are needed because you have raised the graphical fence…at least have a base score of 1 for all performance tuning.

    I think that your team has done a wonderful job to get it this far in such a short time, but there is a lot more work to do even before it is released.

  62. Debrixx says:

    > In practice, nearly every file in the WinSxS

    > directory is a “hard link” to the physical

    > files…

    According to wiki the Hard link is "…a directory reference, or pointer, to a file on a storage volume. The name associated with the file is a label stored in a directory structure that refers the operating system to the file data. As such, more than one name can be associated with the same file. When accessed through different names, any changes made will affect the same file data."

    I.e. if I have one 1GB file named "file.tst" and one hard-link to this file named "hl.to.file.tst" I’ll have two files 1GB each (2GB total). But the real data size is just 1GB.

    > While it’s true that WinSxS does consume

    > some disk space by simply existing, and

    > there are a number of metadata files,

    > folders, manifests, and catalogs in it, it’s

    > significantly smaller than reported. The

    > actual amount of storage consumed varies,

    > but on a typical system it is about 400MB.

    Ok. And how I can see this? On my system I can see 10GB for my winsxs folder and there is no way to see that its size is  much smaller. I understand that all the hardlinked files under the winsxs folder counted as many times as hardlinks exist in this folder. But… If we have 5 hardlinks for one 500KB file it’s absolutely clear that only 500KB for this file and all the hardlinks is allocated on hard drive. And if we want to back up our system only 500KB have to be backed up, but not 5 times by 500KB.

    For example if I have one file in Linux with 5 hardlinks and I try to back up these files I can simply tar them and then gzip. And I will have one archive with only one file inside and some info about hardlinks to original data.

    And it’s wrong for Vista :(.  Vista can back up all hardlinks only as separate files.

    Does anyone tried to back up system partition using some backing up software like Acronis True Image? In my system I have 100GB disk C with 65GB free space. All my system is 35GB. My winsxs folder’s size is 15GB. So I have 15GB for winsxs and 20GB for the rest files. When I try to back up my system partition I’m usualy get 15GB archive where all the hardlinks backed up as separate files in spite of being backed up as data and file names for this data :(.

  63. NT Man says:

    It would be great if I could on release version Windows 7 install only core component’s without IME Components, Internet Explorer and Speech components. My installed Windows would be smaller and faster.

  64. Chris Bering says:

    Hi,

    I’ve written a batch file to clear the winsxs folder in Vista, of redundancies.

    I would like to know if it works on Win7 too, but I don’t have access to it.

    So, is there anyone with a spare Win7 install they wouldn’t mind testing it out on ?

    If so, download the batch from here:

    http://rapidshare.com/users/6HHIJB

  65. Chris Bering says:

    New version, WinsxsLite v1.80 is now up.

    Added functionality to relocate folders.

    Enjoy,

    Chris

  66. Joachim Marder says:

    Keris wrote:

    > The reason that Explorer can’t tell you the

    > correct amount of actual disk space taken up

    > by files is because of the way it calculates

    > the information [..] I do believe this is

    > erroneous behavior.  Much like the path length

    > limitations Explorer imposes that NTFS doesn’t

    > have, it is something that needs to be fixed.  

    > The Size on Disk part SHOULD report the actual

    > size on disk, taking into account hardlinks.

    Calculating the used disk space accurately is indeed not very easy. The only graphical tool I know that is capable of doing this is TreeSize Professional from http://www.jam-software.com. It is aware of NTFS compression, sparse files, hrdlinks and Alternate Data streams (ADS), for the last two an option needs to be activated as it slows down a scan.

    In case of hardlinks there is a special problem: If you have two hardlinks in two different folders pointing to the same file, for which of the folders do you count the file if you don’t want to count it twice?

    Eriwik wrote:

    > Generally speaking it is not possible to find

    > the other names that points to some data

    > (unless you search through all files), all you

    > know is that it will be in the same filesystem.

    That means if we see a file having more than one hardlink, we do not know if we already counted it elsewhere. TreeSize solves this problem by counting 1/n of the file’s size which has n hardlinks. That way you get pretty exact statistics foe a Windows Vista system. But the WinSxS folder will never show up with 500KB!

  67. Dilip Naik says:

    Please check out the hard link aware Sizesxs utility posted at http://www.msftmvp.com – love to get feedback and suggestions. This utility requires no admin privileges and scans the winsxs directory in hard link aware manner, summarizing the total disk space used. In verbose mode, it lists every file under winsxs and reports whether it is a hard link or not

    Should it include any other directory besides windowswinsxs?

  68. mousky says:

    Dilip: Your utility does not work. I get a "not a Valid Win32 application" error.

    Vista Home Premium SP1.

    Michael Beck: Why does WinSxS contain copies of WMVs, JPGs, Media Centre recordings and other "non-sytem" files?

  69. unimatter says:

    "But in reality it doesn’t actually consume as much disk space as it appears when using the built-in tools (DIR and Explorer) to measure disk space used….The actual amount of storage consumed varies, but on a typical system it is about 400MB"

    On my system, Explorer and other tools reports 7GB.  If it was the case that the disk space used is much smaller, then space used for all of C: as reported by Explorer subtracted from my partition size would be much smaller than the actual free space reported by the system, but in fact they match.  What gives?

  70. Ob1982 says:

    Has the WinSxs problem been adressed in the current Windows 7 RC?

    I can think of a couple of possible solutions :

    – make explorer report the actual size of the WinSxS folder

    – build a system tool that can remove usless files/links, either automatically and/or manually

    Anyway, having just installed the W7 RC on my home PC, it looks like WinSxS works exactly the same as in Vista.

  71. storecrowd says:

    Just out of interest, what happens when your winsxs file becomes as big as the partition you’ve assigned for System?

    I’m about 2GB away from this happening.

  72. Chilly says:

    I think giving advanced install options to not only drop driver files but also font files as well is a good idea. What about specifying your storage location away from the specific drive windows will be installed on then have the install move all the folders that store backup, history install user etc to that drive.

  73. Phil Brotz says:

    Why is your explaination of the winsxs folder exactly the opposite of the explaination posted at: http://blogs.technet.com/askcore/archive/2008/09/17/what-is-the-winsxs-directory-in-windows-2008-and-windows-vista-and-why-is-it-so-large.aspx ??

    Your explaintion: "In practice, nearly every file in the WinSxS directory is a “hard link” to the physical files elsewhere on the system—meaning that the files are not actually in this directory."

    Their explaination: "The WinSxS folder is the only location that the component is found on the system, all other instances of the files that you see on the system are “projected” by hard linking from the component store.  Let me repeat that last point – there is only one instance (or full data copy) of each version of each file in the OS, and that instance is located in the WinSxS folder."

  74. Terry says:

    Thanks for all the posting and information.  Here is what it should come down to: Great programming, which I think most Microsoft developers are driving toward, must have attitude of being nimble, precise and clean.  Like being green and conservative, or getting the rovers to Mars, or being stranded on a deserted island, every new technological advance, every single line of new or old codes, we should always think about how we can be more efficient and do our best to maximize the output giving the limited resources in long term.  I am not asking for a miracle, it is just a common sense.  Clearly in the case of WinSxS directory for Vista or Windows 7, Microsoft Windows R&D has not been at their best.  I hope they can change that old attitude someday soon.  

  75. christy says:

    Too many compromises.

    About a year ago I just got sick of waiting eternities for things to happen in Vista – whether booting – or loading a file. I became paranoid all the time watching the little green lights flashing so hard you’d think the system would melt down, but no indication anywhere about what the computer was doing. Anyway, at last I downloaded a Mint Linux iso, installed it for dual boot. Linux is still snappy after a year and its been dead reliable the whole time (I never got anything like a year out of a Windows installation before). Since then, I’ve almost never been back to Windows. After reading up on Win7 I still can’t see what it offers.  For comparo, linux loads in a snap, uses just about 2 gig of hard disk with all applications installed (office, multimedia, media studio, graphics etc etc) while the naked Vista partition – with no apps installed – consumes 29gb. That’s not windows reporting on itself. That’s "offline" reporting by a diagnostic boot CD looking at the hdd while it is asleep.

    I think there’s a lot more to the MS problems than they’re letting on about.

  76. riew says:

    There would be possibility to chose to uninstall what I don’t want or to install with default installation fewer things and if I want other I find the installation CD

  77. riew says:

    At the bottom line of message before I would say that a lot of feature should only be included on the DVD of Windows 7 and only if i want i install them. For example driver

  78. Alex says:

    Windows 7 did not change much, as we have gotten used to from MS. As linux has gotten better (and other OS’s) windows has not really improved . even though 7 is a bit better than Vista, is a far cry from even XP….. and the winsxs folder is a major problem even for me (and I have about 4 tb OF SPACE) but …. a 10 gig folder for winsxs compared to 50 mb on XP ( and yes the rest of the system folders on XP are still smaller than my win 7 partition)…just doesn’t cut it….Make windows free for everybody and maybe all these hassles would be worth…..but else……MS is just a pain that costs you money, and makes me money for repairing all these problems …..that take forever to fix, come again…..so I guess thank you MS for all this bussiness I’m getting, thank god that Linux is not so popular, or other systems for that matter.

    Just my 2 cents….

    I am forced to use Windows because of the abundance of software and work that it provides….but …. I would rather do without it…..

  79. John says:

    With the prevalence of small SSDs being used for boot drives (I have a 40g X25 V which is great) I would surely love to see options of moving the user files, the hibernation files, and some of the other files that consume huge amounts of the boot drive to the hard drive.  It would seem that it shouldn’t be hard to make these options possible..

  80. seagal s kone says:

    please i need your help to cleanup some unwanted program on disk place thanks

  81. LS says:

    What about the Wear Levelling of SSDs? The rule says that you need about 20% free space in order to maintain a long lifetime of your SSD. Let’s say Windows Explorer shows me that there is only 1GB of 40GB free = 2,5%, but WinSXS takes about 10GB displayed by Explorer. Following your Information there should so be actually about 10-11GB (WinSXS=400MB) free space on my SSD, that’s 25%.

    But which of both percentages do I have to take into consideration if I want to maintain 20% free space?

  82. Aries says:

    Disk Space Fan is perfect for you to manage your disk.

    http://www.diskspacefan.com

  83. auklet2k_at_yahoo_com_cn says:

    Since everyone is complaining about this bad WinSxS design, I am here to report a flaw of WinSxS.

    I noticed that WinSxS use hard link for DLL to an existing object(e.g. explorer.exe). I had "Program Files" moved to other partition, which causes hard link won't work when WinSxS tried to link iexlore.exe different partition to "Program FilesInternet Explorer". As consequences, My Windows 7 won't install IE8, WMP or any Windows Component which located in "Program Files".

    Will you guys make a change to WinSxS on next releases? As far as I know, Linux uses symbolic link in /usr/lib and it works fine. Also, I found WinSxS keeps various copies of explorer.exe, and only 2 of them is the same file.

    My reason to move "Program Files" to another partition is the same as everyone: Windows takes two much disk space!

  84. COOLYOU says:

    I OWN WIN 7 ULTIMATE .. I INSTALLED IT ON A 50 GB DRIVE…I HAVE 35 GB FREE SPACE. IS THERE ANY USE IN LEAVING THIS SPACE . DOES IT HELP IN FASTER BOOTING ? OR CAN I FILL UP THOSE SPACE. I DONT WANT TO DO IT AT COST OF MY PC PERFOMENCE  .

    ANY ADVICE ?

  85. TurtleShroom says:

    So… if I delete WINSXS, will my computer die?

  86. Hibernation (hyberfil.sys) Symbolic Link? says:

    When you talk about footprint, could you explain if there are any ways to use the Windows 7 Symbolic links to resolve issues for the footprint?  As an example, would it be possible to create a Symbolic Link for the hyberfil.sys to have it stored on a CLASS 10 FLASH drive?

    Thanks!

  87. Robert Carnegie says:

    I like to keep a small Windows partition that I can conveniently back up as a complete image.  I guess that this means I don't need restore points so much.

    I expect you to do interesting things when hard disk GUID Partition Table becomes commonly supported for the system volume, which apparently requires EFI/UEFI.  I already put the pagefile.sys on previous systems off the Windows partition so I don't have to back it up.  When partition IDs aren't a scarce resource, it seems feasible to assign a separate partition for hiberfil.sys as well.  In fact, it should be possible now, darn it.  What I can do is disable the hibernation function so that the file isn't there, at least until I finished backing up.

    For that matter, I read that the start of a hard disk is the fastest access location.  If that's true, and if it's also where the "system partition" is, then the page file should be in there, I guess.

  88. Ivy Summers says:

    This is what I think about win 7 – 64 bit.

    I am a professional graphic designer. I have run and operated many different systems in my 27 years of working as a graphic designer and in my opinion; win 7 – 64 bit is a pig.  It uses tons of space that no one in Microsoft can seem to give a straight answer too,  why they made it that way your guess is as good as mine.. the best answer they have is hard drives are cheap just buiy another HDD.. let me tell you a 60 gig SSD drive is not cheap in my book. At $180 a pop, unless your Bill Gates.

    I currently have a desk top Intel i7- 980 extreme, with 12 gigs of ram and a 2 gig GTX Nvida graphic card. Running windows 7 professional 64 bit

    I set it up to have a 55 gig corsair SSD 20x gig speed drive especially dedicated just for the OS.  

    I have a 1TB HDD drive for my program’s such as Adobe creative suite CS4 & CS5  and my 3D animation programs. Like Daz and 3D max and poser I use for rendering movie animation, along with a few other programs.. I also have a 2 TB HDD drive for storage for my business & graphic design files etc. which I also had to use also now for my system back up. Because I had to disable the system restore in the OS because it was taking up to much space… which I feel is not a good thing to do but I had to have the space.

    I got this computer January 27 2011 to replace my XP pro 64 bit and as of today Feb 26 2011 My SSD drive is completely full.. Mind you I have nothing on it but OS system on it..

    Now before I installed anything on my new system when I got it.  I shut off the system restore and the hibernating features page-fiiling and indexing all the other features I would not use.  I over clocked the system by 10% to give me a extra boost during long renders

    Now today feb 26 2011 windows went to update today and couldn’t because my SSD drive is completely full.  GUESS WHAT?  I don’t care. I refuse to let windows use any other of my other drives and I’m not buying anymore for the OS.

    Hard drives to me are not cheap, and plus I have 3 hard drive now so why do I need more just for a pig of an operating system which should only use a ¼ of the 55 gig drive its on now.  I am very very disappointed with Windows 7 64 bit. And I will not recommend it to any of my clients. Because Microsoft doesn’t seem to really care about addressing issues with this fat pig of a system eating up a lot of space.  In Double files and double file naming.  Not to mention the x986) program file for win 32 programs.  And a lot of software companies are not supporting win7 64 bit.

    . So I refuse to let windows use any of my other drive for their OS . I think 55 gig is way more than enough.  So if any of you want a screaming machine at this point that you will need to buy hard drives about every month for to satisfy the operating system.  I will gladly sell you my computer for $2800  that is $300 less than I paid for it to be built. so I can get  a different machine and operating system

  89. Ivy Summers says:

    This is what I think about win 7 – 64 bit.

    I am a professional graphic designer. I have run and operated many different systems in my 27 years of working as a graphic designer and in my opinion; win 7 – 64 bit is a pig.  It uses tons of space that no one in Microsoft can seem to give a straight answer too,  why they made it that way your guess is as good as mine.. the best answer they have is hard drives are cheap just buiy another HDD.. let me tell you a 60 gig SSD drive is not cheap in my book. At $180 a pop, unless your Bill Gates.

    I currently have a desk top Intel i7- 980 extreme, with 12 gigs of ram and a 2 gig GTX Nvida graphic card. Running windows 7 professional 64 bit

    I set it up to have a 55 gig corsair SSD 20x gig speed drive especially dedicated just for the OS.  

    I have a 1TB HDD drive for my program’s such as Adobe creative suite CS4 & CS5  and my 3D animation programs. Like Daz and 3D max and poser I use for rendering movie animation, along with a few other programs.. I also have a 2 TB HDD drive for storage for my business & graphic design files etc. which I also had to use also now for my system back up. Because I had to disable the system restore in the OS because it was taking up to much space… which I feel is not a good thing to do but I had to have the space.

    I got this computer January 27 2011 to replace my XP pro 64 bit and as of today Feb 26 2011 My SSD drive is completely full.. Mind you I have nothing on it but OS system on it..

    Now before I installed anything on my new system when I got it.  I shut off the system restore and the hibernating features page-fiiling and indexing all the other features I would not use.  I over clocked the system by 10% to give me a extra boost during long renders

    Now today feb 26 2011 windows went to update today and couldn’t because my SSD drive is completely full.  GUESS WHAT?  I don’t care. I refuse to let windows use any other of my other drives and I’m not buying anymore for the OS.

    Hard drives to me are not cheap, and plus I have 3 hard drive now so why do I need more just for a pig of an operating system which should only use a ¼ of the 55 gig drive its on now.  I am very very disappointed with Windows 7 64 bit. And I will not recommend it to any of my clients. Because Microsoft doesn’t seem to really care about addressing issues with this fat pig of a system eating up a lot of space.  In Double files and double file naming.  Not to mention the x986) program file for win 32 programs.  And a lot of software companies are not supporting win7 64 bit.

    . So I refuse to let windows use any of my other drive for their OS . I think 55 gig is way more than enough.  So if any of you want a screaming machine at this point that you will need to buy hard drives about every month for to satisfy the operating system.  I will gladly sell you my computer for $2800  that is $300 less than I paid for it to be built. so I can get  a different machine and operating system

  90. Chris Quirke says:

    The problem I have with OS disk use, is that it is chained to C: and can't be relocated elsewhere.

    Some material needs to be rapidly accessible, such as System Restore info, pagefile and temp; the Hibernate file also needs to be on C: so the "small" code that restores it can find it.  But "cold" material, such as drivers store, Installer, update rollback material etc. should be relocatable to a local hard drive volume other than C: – for three reasons…

    1)  Performance

    When you wait for the PC, you usually wait for the hard drive, or the Internet.  When the hard drive heads are moving (and slowly, by electronic standards), data does not flow.  So it is desirable to reduce head travel, and one way to do this is to use a deliberately small C:, concentrating 90% of activity within a small range of head travel, no matter how full or fragmented the drive may be.

    But for every 1 active OS code file, there may be 1 to 3 inactive junk files that are seldom if ever accessed, yet over which the heads must travel – the update as it arrives, the backed-up file the update replaces, the logging and wrapper that describes it, etc.

    Now you'd never leave seldom-accessed junk locked in RAM, forcing other material to be paged out; nor would you have the CPU doing nothing.  So why is it considered acceptable to leave cold junk in the engine room, i.e. "dead" material locked into C:?

    2)  Reliability

    Aside from physical surface failure, data corruption happens during disk writes.  So the less write traffic, the safer it is for material that has to be kept safe.  This applies particularly to cold "reference" material such as driver stores, Installer and the material used by SFC to replace damaged files (on that, do AutoChk and ChkDsk report to the SFC system when protected code files are destructively "fixed", e.g. crosslinks, truncations etc.?).  That's another good reason to keep these off C:, as long as the alternate location is always present (e.g. logical volume on the same physical hard drive)

    3)  Smaller C: makes imaging easier

    I know ImageX can leave out bulky material that isn't required, but MS advises us not to use this tool to do "system backups".  Unlike Win9x, NT is too fragile to back up as loose files, even if these are copied outside the running OS and include all hidden files etc., so one is obliged to image the C: partition to preserve the OS installation.  Using tools such as BING or DriveImage to do this works well, but doesn't exclude material as ImageX might have done.

    So a smaller C: makes partition backups faster and more practical, in terms of target space requirements.

    What I wish Microsoft would do, is define a shell folder to hold "cold storage" material, i.e. that which has to be available "just in case" but is seldom ever accessed, so that reliability is more important than speed.  Specific "special folder" behaviours could also harden it against malware access etc.

  91. David Walker says:

    Of course, drivers for the network card/Ethernet adapter/wireless network adapter can't generally be obtained from Windows Update (if there is no network connection).  I am glad that there are so many network adapter drivers built in, but I still run across some motherboards where I have to download the network adapter driver on another computer and transfer the driver using a USB flash drive.  Luckily, the drivers necessary to recognize the Flash drive have always been present.  🙂

  92. tam says:

    Very interesting article.

    I'm an IT of about 1000 windows computers, and I have no idea what Winsxs is for.  But I don't use imagex or dism.

    Winsxs isn't just hard links anymore.  I've checked it with special utilities in the past, and there's plenty of singly-linked files in there.

    'powercfg /h off' is a great tip.

  93. tinker says:

    all that thoughtfull discussion to disguise the fact that a tool to show the real place consumption was not made.

    forgotten?

    I mean i have a 50 GB C Partition that shows 48 GB used space. 32 GB in Winsxs and there is nothing installed on the box as of now.

  94. isidro says:

    winsxs is a disaster design, as the folder names redirection, or long named system files back in 95, all basic ms design errors

  95. Dave L` says:

    Sorry but none of the arguements compute. On a 30Gb partition for Server 2008 with no other program files installed (all done on a seperate partition), the WINsxs folder takes up 12Gb!! Why?? "At WinHEC we had several machines on display with 16GB drives/partitions and on those you could see there was plenty of free disk space." Not a chance!!

  96. I don't mean to be rude... says:

    … But there's a remarkable number of idiots here that either didn't read, or completely failed to understand, the article.

  97. Ferh says:

    The thing is why saying on the box, system requiers 20-25Go of free disk space when at the end you have a folder with 15go in it… I have a SSD of 64go, i have windows and my 3d-2D software on it (3dsmax and Adobe Suite) and i have less than 10go of free space now…… and its a always a battle when i want to install software to work and not having 5go free….

    I work with PSD files of 1Go size and its a struggle to work now….

  98. namrak luap says:

    NO NO NO!

    52 Mb on logfiles. The number is just so insignificant between all those other numbers that we would easily forget what a HUGE MASSIVE AMOUNT of reading material that is. All other thing like the 1 GB for all those drivers are nicely explained and although one or two people believe we should be offered a choice of some sort we seem to forget what an utter nonsense is said. The thing is that those drivers are just not a few kb a piece. You could write a god-damn complex multifunctional basic program in only 32kb but a driver that should be written in very efficient assembler or C and has very limited functionality is vastly larger then that inefficient but superior Basic program! All those "binaries" (I can hardly get the word for this junk out of my mouth) are just too big and not by a little. Multiply that by a gazillion to cover all hardware vendors and there is your disk space problem for sure. With that blobware comes higher memory usage which of course needs lots of virtual memory and a large hibernate file. That fat creaps and seeps through to everything and it is all explainable if you go back to that programmer that is absolutely positively not happy with his work either but… deadlines eh?  Are you one of them?  Are you an idealist too?  Maybe only on Sunday I gather. If so, just suck it up and upgrade your hardware.

    It was interesting to learn a bit about what statistics Microsoft gathers. I am mostly living in a happy blur knowing that companies like MS collect data about me while at the same thinking it can never be much, practically nothing probably. Now I learn that collecting data about every device connected to your PC is very useful and consequently happening. What mouse does he use, how many years do we see this keyboard connected to the system? When does a user get unhappy about the lifetime cycle of his peripherals?

  99. Winsx folder says:

    Hello Thanks for your detailed explanations.W7 is for me a monster with many things not necessary.I m 80years old and I d my selfmade PC in the first 80ty years.My first OS was DOS and after Win 3.1 Win with Bill Gate was very good and well explained So I must lefte onthe HD all the horribles footprints of W7

  100. Joshua says:

    WinSxS grows over time as accumulated updates pile up in there and cannot be cleaned until W8. MS was finally forced to deal with the problem in W8 due to the very small drive space in phones, but who will fix all the systems deployed where people relied on the lie?

  101. paco says:

    dude I only want to know one thing:

    how do I recover the most of those 17 GB that folder is taking off my SSD 128GB ?!?!?

  102. Pissed Admin says:

    The whole thing is BS. It's just plain lazy development. Like the ever increasing debt-ceiling Microsoft, like our Government, chooses not to deal with any cleanup or downsizing leaving the problem for us to deal with.

  103. Brian says:

    I see comments that the winsxs doesn't really take up space.  Except I have a full 30 gig drive on a virtual instance.  22 gigs is in the Windows folder and 13 of that is winsxs.  The size may be getting misreported because the files aren't really there, but windows still thinks my drive is full.  Or maybe they are taking up an extra 13 gigs and I need a tool to clean it up.

  104. LaTanyia Jackson-Williams says:

    None of these posts seem to answer my question: How do I know which of the older Windows updates can be safely deleted from my Windows 7, so all these updates don't keep taking up increasing amounts of space on my hard drive?

  105. Rahul Palshikar says:

    Is this applicable for Windows server 2008 SP2 also?

  106. Mookane says:

    my pendingdeletes and pendingrename folders are empty but the WinSxS folder is full. what can I do to empty the WinSxS folder when the temp folder is empty? Please Help

  107. Steve Lundin says:

    Here in 2015 Windows 7 Pro IMHO the winsxs size problem is severe. It doesn't matter to me that many of the entries in the winsxs folder are junctions. What is important is what is 'reported' as free space on the disk. And my free space after a factory reset/restore is too low to install five applications and a game. My winsxs folder had grown to 45GB out of the 128GB disk. Whether that is true or a reporting error the numbers all added up to within about 10% saying that the winsxs folder had the vast majority of the disk space tied up. There are folders in my winsxs with labels "AMD_64…" and I wonder what AMD devices there are in my box since I can't find any in the spec sheet. To be clear, there are in those folders alone, 25,115 files consuming 6.93GB of disk space. I don't believe that these are necessary. I also don't think that the winsxs folder's function is actually helping or protecting me. One of the first thing I had to do to reclaim space after just 6 months of ownership was to disable the system restore point functionality. It sounds from the blog like this huge disk hog is there to help us and make our system safer. That goal has failed.  Please offer me a choice to totally disable all the great functionality of the winsxs folder. I don't want it.

  108. Charles Peter Sanderson says:

    One of the most interesting articles I have ever read in a long time, clear and precise. thank you.