For my new system I have 2 drives:
C: Intel X25-M 80 "GB" (really 74) (system drive)
E: Seagate 1TB
I didn't like the amount of space taken on the C: drive almost immediately after Windows install. I figure having more space free on C: is probably a lot better for wear leveling, especially after TRIM gets added.
With a lot of registry & permissions hacking I managed to relocate all C:\Users subfolders (including the shared ones for all users), the Program Files & Program Files (x86) folders, and the ProgramData folder to the E: drive, with Junctions so that the files can still be accessed as if they are on the C: drive.
Then Windows Updates started failing with error 80070011. After searching around on the net I figured out this error code is ERROR_NOT_SAVE_DEVICE. Apparently, what Windows Update likes to do in order to replace files that are in use is it this:
1. Every version of every file from every patch that has been applied to your system are in subdirectories of C:\Windows\WinSxS. In my case this was 12.3GB!!!!
2. A hard link is created from something link C:\Program Files\Stupid M$ App\destfilename.LINK to the new file in C:\Windows\WinSxS
3. Steps are added to Pending.XML to delete C:\Program Files\Stupid M$ App\destfilename and move C:\Program Files\Stupid M$ App\destfilename.LINK to destfilename on the next boot.
Step 2 fails because you can't have a hard link between different physical drives. I managed to get the most recent IE8 update to work by copying C:\Windows\WinSxS to the E: drive and creating a new junction point to make it still visible as C:\Windows\WinSxS. But this means patches trying to do the same nonsense but with files in C:\Windows instead of C:\Program Files will fail now. And what if a patch wants to do both? What a mess!
From searching on the net I see there are many others who have run into this same problem because old versions of files are never removed from the WinSxS directory, and you eventually run out of drive space (especially if you upgraded an old XP system or are using an SSD), so people move the WinSxS directory and run into these problems.
Out of the 12.3 GB in WinSxS copied to the E: drive, when I tried deleting the renamed old WinSxS (not the junction), there were only about 300MB of files that could not be removed because they are still "in use" (if something is using the hard link through the other path to it, it won't let you delete it even though you would basically just be removing the hard link not really removing the file).
Net effect of moving stuff to E: is I went from 42 or 43GB used on the SSD to only 15GB. Biggest downside is windows update is a lot slower because it is now effectively looking at E:\WinSxS instead of C:\Windows\WinSxS to get the list of updates you have applied. But I am afraid that I am going to have to move WinSxS back to the C: drive, and also create a C:\Microsoft Program Files containings apps from E:\Program Files (x86) and E:\ProgramData that I move back to C: and junction them from E: in order to get the stupid updates working sanely, especially with SP2 coming up.
If MS is really serious about Windows 7 being better for SSDs, this better be addressed. Does anyone know if the 12GB or so of outdated files in WinSxS can be deleted safely?
C: Intel X25-M 80 "GB" (really 74) (system drive)
E: Seagate 1TB
I didn't like the amount of space taken on the C: drive almost immediately after Windows install. I figure having more space free on C: is probably a lot better for wear leveling, especially after TRIM gets added.
With a lot of registry & permissions hacking I managed to relocate all C:\Users subfolders (including the shared ones for all users), the Program Files & Program Files (x86) folders, and the ProgramData folder to the E: drive, with Junctions so that the files can still be accessed as if they are on the C: drive.
Then Windows Updates started failing with error 80070011. After searching around on the net I figured out this error code is ERROR_NOT_SAVE_DEVICE. Apparently, what Windows Update likes to do in order to replace files that are in use is it this:
1. Every version of every file from every patch that has been applied to your system are in subdirectories of C:\Windows\WinSxS. In my case this was 12.3GB!!!!
2. A hard link is created from something link C:\Program Files\Stupid M$ App\destfilename.LINK to the new file in C:\Windows\WinSxS
3. Steps are added to Pending.XML to delete C:\Program Files\Stupid M$ App\destfilename and move C:\Program Files\Stupid M$ App\destfilename.LINK to destfilename on the next boot.
Step 2 fails because you can't have a hard link between different physical drives. I managed to get the most recent IE8 update to work by copying C:\Windows\WinSxS to the E: drive and creating a new junction point to make it still visible as C:\Windows\WinSxS. But this means patches trying to do the same nonsense but with files in C:\Windows instead of C:\Program Files will fail now. And what if a patch wants to do both? What a mess!
From searching on the net I see there are many others who have run into this same problem because old versions of files are never removed from the WinSxS directory, and you eventually run out of drive space (especially if you upgraded an old XP system or are using an SSD), so people move the WinSxS directory and run into these problems.
Out of the 12.3 GB in WinSxS copied to the E: drive, when I tried deleting the renamed old WinSxS (not the junction), there were only about 300MB of files that could not be removed because they are still "in use" (if something is using the hard link through the other path to it, it won't let you delete it even though you would basically just be removing the hard link not really removing the file).
Net effect of moving stuff to E: is I went from 42 or 43GB used on the SSD to only 15GB. Biggest downside is windows update is a lot slower because it is now effectively looking at E:\WinSxS instead of C:\Windows\WinSxS to get the list of updates you have applied. But I am afraid that I am going to have to move WinSxS back to the C: drive, and also create a C:\Microsoft Program Files containings apps from E:\Program Files (x86) and E:\ProgramData that I move back to C: and junction them from E: in order to get the stupid updates working sanely, especially with SP2 coming up.
If MS is really serious about Windows 7 being better for SSDs, this better be addressed. Does anyone know if the 12GB or so of outdated files in WinSxS can be deleted safely?
