Holmesian Blog

让你的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系统盘不再随着安装软件以及使用时间而日益臃肿.

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »