Holmesian Blog

让你的Windows系统盘保持苗条

很多TX经常抱怨C盘空间过小带来的一系列的问题,其实对于Windows7来说,系统盘(一般为C盘)只需10G就足够,当然是执行完接下来说的操作之后的情况下,并且系统盘会一直保持有3G左右的空闲空间。让Windows系统盘保持苗条,最可靠的办法是稳定地移动系统盘中ProgramFiles、Users(Win7)、ProgramData(Win7)等Usercreate内容目录到非系统盘,使得Windows系统盘不再随着安装软件以及使用时间而日益臃肿。

在 NTFS 分区中,有一项非常值得推荐但基本上已被人们遗忘的特性——junction,它类似于 Linux/Unix 系统下通过 ln 命令创建的软链接或硬链接。

以下是具体操作的精简版步骤(假设将 Windows 7 系统盘 C 中的 Program FilesUsersProgramData 移动到 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 Files_old"。但在此之前,需要先取得所有权并添加改写权限,建议使用 XT 工具来实现此目的。

五、创建 Junction 文件夹映射

使用以下命令创建链接:

mklink /J "C:\Program Files" "D:\Program Files"

可通过 mklink /? 查看具体参数含义。

六、复制 ProgramData 目录

使用 xcopy 复制 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 目录

重启后,可将 C:\ProgramData 目录删除或暂时重命名。同样,需要先取得所有权并添加改写权限,建议使用 XT 工具。

九、创建 ProgramDataJunction 文件夹映射

使用以下命令创建链接:

mklink /J C:\ProgramData D:\ProgramData

十、修改其他注册表项

修改以下注册表项,将涉及到的盘符从 C 改为 D:

十一、复制 Users 目录

使用 xcopy 复制 Users 目录:

xcopy C:\Users D:\Users /E /H /K /X /Y /B /C

十二、注销并重新登录

注销并重新登录系统,然后删除 D:\Users\Default User 目录。

十三、创建 Junction 并解决权限错误

创建链接并解决权限问题:

mklink /J "D:\Users\Default User" D:\Users\Default
cacls "D:\Users\Default User" /S:" D:PAI(D;;CC;;;WD)(A;;0x1200a9;;;WD)(A;;FA;;;SY)(A;;FA;;;BA

十四、删除原 C:\Users 目录并创建 Junction

删除 C:\Users 目录,并创建链接:

rm /s /q C:\Users
mklink /J C:\Users D:\Users

完成上述操作后,Windows 系统盘将不再随着软件的安装和使用时间的增长而变得越来越臃肿。

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