Freeing space in Windows

29 min. read

Oh, heya! This is a post about "Things I learned trying to gain some space in Windows"

I'm a happy Linux user, specially Ubuntu, which I love. But for some stuff I'm stuck with Windows-only applications. Those are:

  • Photoshop: I use it heavily for photo-edition as well as for my illustrations and design in general. Gimp is cool and great, but some of the things I do in PS can not be done yet in Gimp, sadly. I keep checking often, though. The moment these capabilities appear in Gimp, this is one app. less I'll need Windows for. Somebody told me once that I could do a Pull Request to Gimp as it is open-source. If only I had that much available extra free time...
  • Almost all the other image editing software I use is Windows-only or Windows and Mac only. That includes ViewNX 2, the program I use to pre-process the RAW images from my Nikon D60 and produce something that Photoshop can understand, since the PS RAW plugin doesn't interpret Nikon colors very well. Comic Studio, which I use mainly for comic edition, HyperCam, a simple and lightweight program to record myself drawing, LiveStream Procaster, which I use to stream my screen while drawing, and MovieMaker, a very silly MS software I use to cut and paste the screenings I record with HyperCam and to produce videos that are ready to be uploaded to YouTube. I probably could find Ubuntu alternatives for HyperCam, Procaster and MovieMaker, but the problem is that I use them to record my art as I work on it, and I do all my art stuff with Photoshop and Comic Studio anyway, so I have to do it on Windows. If I find an equivalent of PS for Ubuntu, and Comic Studio launches a Linux version, I would probably move all these programs and workflow to Ubuntu.
  • Skype: Sadly again, the Linux version of Skype sucks a bit (of course, since Skype was bought by Microsoft :-P ). I use it not only for personal stuff but for podcast recording and interviewing my guests.
  • MS Office: We all know how Open Office doesn't really interpret MS Office documents quite well, to the point of sometimes breaking documents completely. I don't have problems to use it to produce new documents, but if I have to open MSWord documents, I'm stuck with Microsoft.
  • Visual Studio: That app. that takes like 4 Gb of space in my computer. To be fair I'm more into Android development at this moment, though, and for that I use Eclipse in Ubuntu (waiting for Android Studio to be stable). But I still enjoy building WPF apps, so I'm stuck again. I'm looking forward to learning more about MonoDevelop, though, and they have a Linux version. If I can develop my C# apps there, then this would be another app. less in my Windows-only list.

If it wasn't for these apps, I think I probably wouldn't use Windows at all. In the meanwhile, I use a dual-boot Win/Linux in a 120Gb SSD, where each O.S lives in a 60Gb partition. I use this disk to store the O.S and programs, while my data files live in an HDD.

I have a test computer where I go crazy installing things, but I only install the crucial apps. in my workstation, to keep it clean and tidy and performant. You would think that 60Gb is more than enough for an O.S and its programs to live happily ever after, specially when you are so conservative with what you install. But that's not the case :-(. After only 1 year of use and only the very-needed programs, all of them installed just after I bought my laptop, Windows went from 16Gb to 57Gb, while Ubuntu is just 34Gb with loads of garbage in it. How did that happen?

Searching for the culprit

Using Baobab (a disk analyzer that comes installed with Ubuntu) to analyze my disk space, this is what I found:

  • Windows/winsxs: 7.9Gb. When I'm on Windows it tells me it's 12Gb, because it's mainly full of hard links and Windows counts those files twice.
  • Windows/System32: 7.5Gb, with DriverStore taking 4.7Gb. This folder contains all of your drivers.
  • Windows/Installer: 4.0Gb, contains information of the programs you installed.
  • Program Files (x86): 9.1Gb, with MS Visual Studio taking a good piece of the cake.
  • Program Files: 5.9Gb. Here, my graphic card software takes 3.2Gb, followed by my antivirus (you don't need antivirus in Linux, by the way, mwe hehe he)
  • ProgramData: 6.3Gb. The Microsoft and Package cache (Visual Studio) folders take more than half of the space (3.8Gb).
  • System Volume Information: 7.2Gb. These 7Gb come from a single file with a weird name that is full of zeros. I suspect this is my first restore point. Since I disabled restore points and a bunch of other things to avoid bloating my SSD, I think I can move this to another place.

The first thing I see people recommend as a solution is "uninstall your programs! Make space for Windows!" or even "install your programs in another drive!". Not only the idea of letting everything out of your disk so that your O.S. can fit is ridiculous, but more importantly, the stuff that uses the most space in my program folders is either basic software for my hardware or Microsoft stuff.

I have all my programs configured to move their default working directories, cache directories, temporary files, etc. to a folder of my data disk, so that I don't add more garbage to my real SSD. I also have the system configured to avoid creating hibernation files, restore points, virtual memory dumps, etc. The other reason I do this is to increase my SSD life by protecting it from a lot of writing/erasing. Even by taking these steps, I still have these fat folders here.

What's your situation? Are you in a similar picture? Let's go through all these one by one.

Winsxs folder

A long-time hated folder, by users from all around the world, for loads and loads of years. The reason? It grows fast with every Windows update, and it can not be deleted, moved, compressed, or have its folders selectively erased. If you decide to disable Windows updates, then you are exposed to vulnerabilities. There is no solution for this folder, sorry. It was created to avoid DLL hell. It's a core Windows folder. I would almost say, "this folder IS your Windows installation" (I do think it's an example of bad design, though). But if you search heavily, there are a zrillion posts of users complaining about it since the beginning of times. The answers are always the same:

  • Buy a larger disk: But then, that one will be filled again, and you'll have to buy a larger one again.
  • Delete something else: I can't, since I'm already using the minimal. Also, what's the point of having a personal computer if you can't install apps.? And as the previous point, there will be a moment where it's all Windows and no programs at all, because "this disk is too small for the two of us".
  • There is an update that, after installed, allows you to open the disk cleaner and delete some of the folders in there. Don't be too happy though, it only gets rid of 1-2Gb (I went from 7.9Gb to 7Gb). And anyway, you will recover that in the next Windows update, mwahwahwahahaha....
  • There is also a console command, dism. Check it out, because there are several options you can add to it depending on your Windows version. It also opens the cleaner with some extra check boxes (or the same as in the previous point, I don't remember). Anyway, again, just 1-2Gb.
  • Looks like, if you decide to format the partition and make a clean install of Windows from zero, the moment the first update is installed, you will recover those Gigas again, so you will be exactly where you were before.

To be honest: I know what this folder is for, I now it contains Windows core files. But if your O.S. core files are going to start growing and suddenly taking 30Gb of your disk, that's not an O.S. I would like to use: that's a cancer.

I'm telling you. It's a conspiracy to keep you buying hardware :-D.
OR... to keep you buying the next version of Windows.

UPDATE: Looks like you can move the folder to another drive and create a filesystem junction with the mlink command. To your system, a filesystem junction looks like the folder you are referencing. But you have to move the files on startup before Windows is loaded, to be sure that the system is not using them. The instructions are here.

However, use this as a desperate measure, since some of the contents of the winsxs folder are hardlinks, which, as opposed to symlinks, you can not move around and hope that they will keep working. So if you move the winsxs folder and make the junction, the symlinks will still work, but you will break the hardlinks.

DriverStore folder

You have to be careful with this one. In a nutshell, the folder contains all the drivers that came with your laptop, plus the drivers for stuff you installed later. For example, USBs of your friends that you're not going to use any more.

When you go to your device manager, and click on View > Show hidden devices, it won't really show you the hidden devices. For that, you have to set a system variable called DEVMGR_SHOW_NONPRESENT_DEVICES to 1 (or true). You can do that on the command prompt by typing:

> SET DEVMGR_SHOW_NONPRESENT_DEVICES=1

followed by:

> devmgmt.msc

on the same command prompt, to open the device manager.

Or, if you want to set it forever, right-click My Computer, and choose Properties > Advanced > Environment Variables, and then click "New..." in System variables. Then type DEVMGR_SHOW_NONPRESENT_DEVICES in the name field and 1 in the value field.

Now you will be able to see the hidden devices by clicking View > Show hidden devices. Right-click on the "ghost" devices and click Uninstall. Be careful though, and don't uninstall anything that is not-plug-and-play, or anything you are not sure about. It's a good idea to connect all your mice, USB drivers, etc, before starting to uninstall things, so that their controllers don't appear as "ghost" and you don't uninstall them by mistake.

Installer folder

This is where the uninstall files from some of your installed applications are stored (not all, though). Everybody will tell you "don't delete this files or you won't be able to uninstall your applications". This is true. But you can: 1) Install your programs in a folder on your data disk instead of the Program files folder (too late for me), or, 2) Move these files to another location and put them back whenever you want to uninstall something. If you do this, Some applications will uninstall correctly, some won't.

There was an application called msizap.exe, offered by Microsoft to check for and delete orphan files in this folder, reducing its size. But you can no longer download it and instead they provide a "fix" utility. All this utility does is to ask you which program you want to uninstall. Thank you Microsoft, but I can manage.

The only way to reduce this folder's size is to uninstall your applications.

UPDATE: There seems to be a solution: compressing the folder:

  • Enable "Show system files" in Explorer options (your folder properties in the Control Panel).
  • Right-click the Windows/Installer folder and click on Properties.
  • Click the advanced options in the General tab.
  • Tick the compress check-box and click OK.
  • Apply for all files and folders.

UPDATE: Yet another solution is what we mentioned for the winsxs folder but later discarded: a junction.

  • Copy Windows\Installer to another disk, e.g., D:\SSD\Windows\Installer using Windows explorer (note: Windows\Installer is a system folder, and thus invisible. You have to tweak your folder properties to make it visible so that you can use Explorer to make the copy).
  • Make a backup copy of Windows\Installer
  • Type the following commands in a command prompt running as Administrator:
    
    $ rmdir /s /q C:\Windows\Installer
    $ mklink /D C:\Windows\Installer D:\SSD\Windows\Installer
    

Program Files folders

I can't do anything in this section, but maybe you have programs that you don't use. Uninstall all those to get a bit of extra space.

ProgramData

There is a Visual Studio folder in there that grows as well, that's the Package cache. Fortunately, it can be moved to another place. In my case, I moved it to my SSD folder inside my HDD data drive. Then you can make a junction (remember, a link to the folder that every application in your system, and your O.S as well, can understand). Do it like this:

mklink /J oldpath newpath

If you use absolute paths, you will be able to move the folders around. The credit for this solution goes to superuser.

System Volume Information

For some reason, when I'm on Windows, this folder appears with 0 bytes, however Explorer is telling me that C has just 5 Gb free, so it is seeing those 7Gb coming from the file containing my restore point. I think it has to do with the fact that I have restore points disabled, or maybe it is an ownership problem (access denied because I don't have privileges).

While on Ubuntu, I had copied the folder to my SSD folder in my data drive (where I store all the Windows garbage so it doesn't bloat my actual SSD). You won't be able to do it in Windows due to permissions. The admin user can not access a system folder, only SYSTEM can. So either you log in as SYSTEM, or you do it in Ubuntu.

To delete the huge file (of which I have a copy in my HDD drive), I do it from Windows, following these steps:

  • Enable restore points again (My Computer > Properties > System Protection > click your disk > Configure...).
  • Delete all previous restore points from that window
  • Disable restore points again.

Remember to do it as Administrator, or it won't delete anything (right click on Window Explorer and choose "Open as Administrator"). After doing this, the huge file disappeared. However, a huge file will keep appearing from time to time (I still don't know why, since I have restore points disabled). So, if you find your available space shrinking again for no reason, check this folder. After cleaning, I found a file of 1.3Gb, and then one month later a 3Gb file appeared again, without me doing anything special on the system, installing new software or changing anything.

The graphic card

In my case, it's NVIDIA. And it amounts to up to four Gb or maybe more of space. The good news is that there are several related folders that you can get rid of here:

C:\Program Files\NVIDIA Corporation\Installer2

You can safely delete all the contents in this folder, but not the folder itself.

C:\ProgramData\NVIDIA Corporation\NetService

First you have to open the Services window and stop "NVIDIA Network Service". Then delete the contents of this folder and restart Windows.

C:\NVIDIA

If you have that one, delete it too. I didn't have it.

Also, check out this link from the NVIDIA help site.

The end

So, lets see how much I gained:

  • Windows/winsxs: From 7.9Gb to 7Gb.
  • Windows/System32: Stays in 7.5Gb.
  • Windows/Installer: Stays in 4.0Gb.
  • Program Files (x86): Stays in 9.1Gb.
  • Program Files: From 5.9Gb to 2.64Gb
  • ProgramData: From 6.3Gb to 5.41Gb.
  • System Volume Information: From 7.2Gb to 26.9Mb.

47.9 to 36.57, 11,33 Gb less. Not bad!

Now, don't forget to run the cleaner from time to time. Or even better, CCleaner.

Linux

Wonder what's the situation like for Linux? I'm not as conservative on my Ubuntu as I am on my Windows, so I have plenty of garbage. And yet, that partition is half empty. My biggest folder is Eclipse's sdk, because I downloaded a lot of stuff, to play with it and experiment in my Android applications. That folder is half of my occupied space. So Linux takes a quarter of the partition's capacity. The next super big folder is usr which is around 8Gb, followed by home (4Gb) and lib (3Gb). The rest of the system folders are just around megabytes. Now compare that to the other numbers.

Ubuntu also starts faster that Windows. Even after running msconfig and being very selective with the programs that run at startup. Which says a lot, because the disk is an SSD, so you wouldn't notice the difference unless it was huge. Also, the last version of Ubuntu runs in my old laptop, the one that I use for experiments. The same where the latest Windows version it can run is WinXP (that's how old it is, he he).

I think this is how it should be... non? Your O.S. keeping itself in the background, leaving you room for your stuff, letting you enough space to install your programs, libraries, do your experiments, BREATH? Is Windows too full of itself? Why does it act like a cancer replicating itself like that? Should we buy more hardware just "because we can"? Isn't it enough to have just what we need (or, as the Swedish would say, "Lagom", or "just enough")?

I guess I'm gonna be patient and wait until I find an equivalent in Ubuntu for all the programs I use on Windows. Meanwhile, I'll have to come to this post from time to time. I have some illustrations and comics to do, and some photos to edit :-) :-( :-) :-(

Comments