When a Windows tip becomes popular, it spreads through the community like wildfire. Unfortunately, there's usually only a random relationship between the speed of transmission, the quality of the advice, and its relevance to you.
Case in point: I've seen at least 10 sites this week echo a tip that shows how to use an obscure command-line tool to trim the amount of disk space Windows Vista sets aside for System Restore. But is this good advice? Before you start chopping, make sure you understand the facts and the alternatives.
The stated reason for making this tweak is that, by default, Windows Vista allocates 15% of your hard drive to storing System Restore points and doesn't provide an easy way to shrink that space, as Windows XP does. Lifehacker (a generally excellent site that I read regularly) put it this way:
By default Windows Vista allocates 15% of your hard drive to storing System Restore points - which turns out to be a couple dozen gigabytes on a large drive. The user-friendly Windows XP slider bar which sets System Restore space has disappeared on Vista; instead a little command line action's required to reset this percentage.
There are three problems with that statement:
1. The comparison between Windows XP and Windows Vista is incomplete. System Restore in XP has a very limited function, tracking changes and additions to drivers, system files such as DLLs, registry settings, and executable files. (Gina Trapani of Lifehacker published an excellent tutorial on the XP version of System Restore last year.) Restore points are created automatically and allow you to undo system-level changes that go wrong. Vista includes this feature, but it also has a much more wide-ranging set of protections that use the Volume Shadow Copy service to do their work. This set of features includes the built-in Vista backup tools. The result is that Vista's shadow copies are larger than XP restore points.
2. You can enable or disable the creation of restore points for each volume on your system. If you have your system files on drive C: and your data on drive E:, you can turn this feature on for one drive, both drives, or neither. By default, Windows Vista allocates 15% of the drive's size OR 30% of available free space, whichever is smaller. That's an important distinction, as I'll explain shortly.
3. The vssadmin command-line tool in Windows Vista can be used to shrink the amount of space available for shadow copies. When you do this, you restrict the amount of space available for System Restore points, but you also restrict the way that Vista's backup tools work. In Vista, the shadow copy storage area includes restore points and shadow copies used by backup tools.
OK, so I have a notebook PC with a 106GB hard drive. On a clean installation of Windows Vista, 15% of that drive is set aside for shadow copy storage, which includes restore points. That means 15.9 GB is unavailable for me to use as data file storage. Sounds like a lot, doesn't it?
I can use the vssadmin command with the Resize ShadowStorage switch to change that amount. But is that a good idea? And are there other alternatives? Here are the questions you should ask before you make such a drastic change.
Are there consequences to shrinking the Volume Shadow Copy Storage area?
If you use Vista Business or Ultimate edition, yes. This area is where backup copies of deleted or changed files are stored and made available through the Previous Versions feature. If you shrink the available storage space, Vista will kick out backups on a first-in, first-out basis. That could result in an unpleasant surprise if you discover that you really need to recover a file you changed by accident.
Do I really need that disk space?
Open the Computer window and look at the stats for the drive in question. (For more details, right-click the drive icon and click Properties.) In this example, I have more than 65GB of free space available, over and above whatever space is currently being used by System Restore and Shadow Copies. I don't need to make a change.
Is there another way to reclaim that space?
Yes, indeed. The Disk Cleanup Manager can safely eliminate all but the most recent System Restore point. Click Start, type clean in the search box, and click Disk Cleanup from the search results list. Choose the Files from All Users on This Computer option and click OK. (You'll need to approve a UAC prompt to continue.) Choose a drive letter, and wait while Disk Cleanup performs some calculations. On the More Options tab, you'll find a button that allows you to completely clear out all but the most recent restore point from the space used by restore points and shadow copies.
What if I really am low on disk space?
You don't need to mess with command lines to change the amount of space used for volume shadow copies. You do, however, have to be willing to lose all previously saved restore points. If you disable and then re-enable System Protection for a volume, Vista recalculates the amount of space used. Click Control Panel, and then click System. In the Tasks pane on the left, choose System Protection. This opens the System Properties dialog box with the System Protection tab selected.
Clear the check box to the left of the drive letter. Click Turn System Restore Off in the warning dialog box, and then click Apply. Note that the date under the Most recent restore point heading vanishes.
Now click the check box to the left of the drive letter and click Apply again. If you manually create a restore point and then use the Vssadmin tool to check the amount of storage in use, you'll see that the amount of space has been reset to equal 30% of remaining free space on the disk. On the 106GB hard drive I used in the example above, what would happen if you discovered you had only 5GB of free space available? When you disable System Restore for that volume, the 15.9GB previously used is added to the free space, giving you approximately 21GB to work with. When you re-enable System Restore on that drive, Vista calculates 30% of that free space, determines that the resulting 6.3GB is less than 15% of the total drive space, and uses that value instead. You wind up with nearly 10GB of extra storage space and you didn't have to tinker with any command lines.