I just installed service pack 2 for my Windows XP Home Edition. Can I remove the service pack files folder in my windows folder?
Yes, but you probably don’t really want to.
Let me explain why.
Become a Patron of Ask Leo! and go ad-free!
The short answer is that if you remove it, you may at some future date be asked to insert the Windows installation CD if Windows believes it needs to install or repair an operating system file. The problem is that your CD probably only has SP1 on it, if that. Windows will insist on you inserting the SP2 disk – which you likely don’t have.
If you leave the folder, usually C:\WINDOWS\ServicePackFiles, and its contents in place, then Windows can simply pick up what it needs, when it needs it from there without ever bothering you.
It’s very much like the I386 folder that I’ve discussed before. In fact, on my machine at least, there’s an I386 folder within C:\WINDOWS\ServicePackFiles that actually contains all the files updated by service pack 2. So the best way to think of that ServicePackFiles is as an SP2 update to the I386 folder that may be elsewhere on your machine.
•
In a sense the I386 folder (and the ServicePackFiles\I386 folder) are conveniences. They’re really just there because the disk space to hold them is small these days compare to drive sizes, and they allow Windows to silently and quickly grab files it needs. The best example is when you install a new device. Normally Windows would ask you for the installation CD in order to get the drivers needed for that device. With the I386 folders already on your machine, Windows can simply get what it needs from there. Presumably it first checks the ServicePackFiles\I386 folder for updated files and if none are found it looks in the original I386 folder.
You can delete it, just be prepared to need to insert your original installation CD if Windows ever needs it, as well as an SP2 CD if you have one.
The good news is that like the I386 folder, you can move your ServicePackFiles instead of deleting it. You just need to change a registry setting to do so.
Using Registry Editor, locate the key HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Setup\SourcePath.
Here’s mine right now:
Here you can see that I’ve altered the SourcePath setting to control where my I386 folder lives (I’ve placed it on a server named “freenas” on my network in a shared “notenmax”, and in a folder “\machine_specific\leo\i386” – note that the i386 portion isn’t specified in the registry).
We can make a similar change for the ServicePackFiles by changing the ServicePackCachePath and ServicePackSourcePath entries. Here’s mine after making that change:
Here you can see that I’ve told Windows to find the service pack files out on that other server on my network. After copying the contents of the folder to that location on that server, I can now safely delete ServicePackFiles on my machine.
I noticed in your registry path to source the folder called machine_specific does this mean that I need a seprate folder for each of my Windows 2003 servers or can I create one and point all of my servers to the the same source path?
—–BEGIN PGP SIGNED MESSAGE—–
Hash: SHA1
I happen to have various versions of things, so I definitely need
machine-specific instances.
If the contents of the I386 directories on your various machines are identical,
then yes, you can point them all to the same location. My guess, though, is
that they may often be slightly different, in which case to be safe I’d keep
separate copies.
Leo
—–BEGIN PGP SIGNATURE—–
Version: GnuPG v1.4.7 (MingW32)
iD8DBQFHSFL8CMEe9B/8oqERAkpQAJ9uP6gSqKuyJh3buDd/IcCVkP+KFACfUFST
bNjHnYNoR9S7smpQte/r264=
=Z3/r
—–END PGP SIGNATURE—–
Thanks Leo. I have a win32 partition that’s dead out of space and I can’t specify directory for a particular setup.exe. Now I can have both ServicePackFiles on an external and this gynormous phone application coexisting. Woohoo!
Just FYI, If you make this registry change, you may need to point the location in all the Windows Side-By-Side Assemblies to the same location. Once an assembly is installed, it retains the full path to the old service pack files folder. Notice about 80 entries of the following under codebases… so be preparred to actually edit each assembly’s location in the registry, because you still may wind up with the insert cd issue otherwise.
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionSideBySideInstallationsx86_Microsoft.Tools.VisualCPlusPlus.Runtime-Libraries_6595b64144ccf1df_6.0.9792.0_x-ww_08A6620ACodebasesU_KB924667]
“Prompt”=”Windows Server 2003 KB924667 Source Files”
“URL”=”D:\Support\ServicePackFiles\i386/vcrtl.man”