Helping people with computers... one answer at a time.
You can move the I386 folder, but in order to keep Windows File Protection happy, you'll need to update a registry key as well.
The folder c:\i386 takes up a lot of space on my hard disk, so I moved it to a drive on another machine on my network where I have more room. I'm now getting Windows File Protection errors, and there's no option to tell it where the files are. What do I do?
I actually get variations of this question on a regular basis. Recently as I was cleaning up the hard disk on my primary machine I found myself asking the same question.
The answer is that you can move I386, if you then also make another change deep in the Windows registry.
If it exists C:\I386 (the folder "I386" at the root of your "C:" drive) most likely contains an image of the installation copy of Windows. It's often placed on your hard drive as a way to avoid having to ask for a CD when Windows decides it needs some file that hasn't yet been installed.
It's also used as one of the repositories for the original files used by System File Protection and the System File Checker. If Windows determines that one of its files has been replaced with an unrecognized copy, perhaps due to a virus, then the System File Checker will restore the file to its original version from C:\I386. (It actually uses additional repositories as well, in case service packs and other updates have legitimately updated the file.)
In an attempt to answer the question "I wonder what happens if ...", I carefully backed up the contents of my C:\I386 folder, and then deleted it.
The next morning I woke up to this error message:
Windows File Protection had attempted to check my system files. I'm fairly certain that the error message it technically incorrect. No files had been replaced by unrecognized versions. Rather, the error was simply that the reference copy it expected in C:\I386 was no longer there.
I restored the copy of my machine's C:\I386 folder to another machine, on a folder that had been shared and that was visible on my local network.
The "trick" to telling Windows where to look turns out to be a simple registry setting. Specifically the key HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Setup\SourcePath.
Firing up regedit, locate that key:
Note how it's set to "C:\" by default. The folder must be named I386, and this setting tells Windows where to find that folder. Double clicking on SourcePath, you can then change it to be the full path to the I386 folder:
Note that it doesn't include the "I386", it just points to where I386 can be found. In my case it's \\freenas\notenmax\machine_specific\leo\i386, but the registry setting is \\freenas\notenmax\machine_specific\leo. (In my case "freenas" is the server, "notenmax" is the share, and then "machine_specific" and "leo" are just folders within that share. I386 does not have to be at the root of the share.)
Once updated, the setting does not take effect until you reboot.
After rebooting I opened up a command prompt window and forced Windows File Protection to check all my files by running the System File Checker (SFC /scannow):
It completed normally, indicating that all files were good, and that the I386 folder had been accessed successfully from its new location.
The bottom line: you can move your I386 folder to wherever you like, as long as it remains visible to your machine and you make the registry update to let Windows know where it is.
Comments on this entry are closed.
If you have a question, start by using the search box up at the top of the page - there's a very good chance that your question has already been answered on Ask Leo!.
If you don't find your answer, head out to http://askleo.com/ask to ask your question.