让你的Windows系统盘保持苗条
很多TX经常抱怨C盘空间过小带来的一系列的问题,其实对于Windows7来说,系统盘(一般为C盘)只需10G就足够,当然是执行完接下来说的操作之后的情况下,并且系统盘会一直保持有3G左右的空闲空间。让Windows系统盘保持苗条,最可靠的办法是稳定地移动系统盘中ProgramFiles、Users(Win7)、ProgramData(Win7)等Usercreate内容目录到非系统盘,使得Windows系统盘不再随着安装软件以及使用时间而日益臃肿。
NTFS分区中有一项非常值得推荐而基本上已经被人遗忘的的特性是junction——类似于Linux/Unix下通过ln命令创建的软链接/硬链接。
具体操作可参考这里,以下是精简版步骤(假设将Win7系统盘C中的Program Files、Users、ProgramData移动到D盘):
复制 Program Files 目录
不能直接用资源管理器复制,我们需要用xcopy命令来保留此目录的所有权限设置:
xcopy "C:\Program Files" "D:\Program Files" /E /H /K /X /Y /C
(从 C 盘移动到 D 盘,具体意义参照xcopy /?)
修改注册表
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersion]
"ProgramFilesDir"="D:\Program Files"
"CommonFilesDir"="D:\Program Files\Common Files"
重启后关闭 iphlpsvc 服务
因为它使用了 sqmapi.dll
net stop iphlpsvc
删除"C:Program Files" 目录或者将其暂时改名,例如改成"C:Program Filesold"
(要先取得所有权,添加改写权限后才可以删除或者改名,建议直接用XT实现目的)
创建 Junction 文件夹映射
mklink /J "C:\Program Files" "D:\Program Files"
同样可以用mklink /?看具体意义
复制 ProgramData 目录
xcopy C:\ProgramData D:\ProgramData /E /H /K /X /Y /B /C
修改注册表
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerShell Folders]
"Common Desktop"="D:\Users\Public\Desktop"
"Common Start Menu"="D:\ProgramData\Microsoft\Windows\Start Menu"
"CommonVideo"="D:\Users\Public\Videos"
"CommonPictures"="D:\Users\Public\Pictures"
"Common Programs"="D:\ProgramData\Microsoft\Windows\Start Menu\Programs"
"CommonMusic"="D:\Users\Public\Music"
"Common Administrative Tools"="D:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools"
"Common Startup"="D:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup"
"Common Documents"="D:\Users\Public\Documents"
"OEM Links"="D:\ProgramData\OEM Links"
"Common Templates"="D:\ProgramData\Microsoft\Windows\Templates"
"Common AppData"="D:\ProgramData"
重启后删除 C:ProgramData 目录或者将其暂时改名。
(要先取得所有权,添加改写权限后才可以删除或者改名,建议直接用XT实现目的)
创建 Junction文件夹映射
mklink /J C:\ProgramData D:\ProgramData
修改注册表
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList] 下的 Default、ProfilesDirectory、Public 三个值的数据改一下,把盘符都改为 D:。
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileListS-1-5-21-3843801140-3458922274-3296897442-500] 下的 ProfileImagePath 数据改为 D:UsersAdministrator。
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders] 下有关C的改为D
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders] 下的值看到数据中有 C:\Users 的都改为 D:\Users。
复制文件
xcopy C:\Users D:\Users /E /H /K /X /Y /B /C
注销,重新登录,删除 "D:UsersDefault User" 目录
创建Junction并解决权限错误
mklink /J "D:\UsersDefault User" D:\UsersDefault
cacls "D:\UsersDefault User" /S:" D:PAI(D;;CC;;;WD)(A;;0x1200a9;;;WD)(A;;FA;;;SY)(A;;FA;;;BA
删除 C:Users 目录,创建Junction
rm /s /q C:\Users
mklink /J C:\Users D:\Users
这样做完之后 Windows系统盘不再随着安装软件以及使用时间而日益臃肿.