kb2852386:Windows C盘空间清理建议

1.  分析

1.1  C盘空间占用分析

使用FolderSize查看C盘空间占用,如下所示。

占用空间最大的目录为Windows,占用空间最大的文件为pagefile.sys(约16G)与hiberfil.sys(约12G)。

Snap8

在Windows目录中,占用空间最大的目录为winsxs与Installer。

Snap9

1.2  占用空间大的文件与目录分析

1.2.1  pagefile.sys文件

pagefile.sys文件是Windows系统虚拟内存使用的文件。

默认情况下,页面文件由操作系统管理,在Windows 7操作系统中,页面文件的最小大小与总物理内存大小相同。

Windows 7操作系统默认的虚拟内存设置如下图所示。

本机操作系统为Windows 7,总物理内存约16G,因此pagefile.sys文件大小约16G。

1.2.2  hiberfil.sys文件

hiberfil.sys为Windows休眠使用的文件。

在Windows 7操作系统中,hiberfil.sys文件的默认大小为总物理内存大小的75%。

本机操作系统为Windows 7,总物理内存约16G,因此hiberfil.sys文件大小约12G。

1.2.3  C:\Windows\winsxs目录

winsxs目录用于支持Windows自定义和更新所需的功能。

Windows借助称为硬链接的技术从Windows组件库(winsxs目录)之外的目录使用了许多文件。在此情况下,来自某个组件版本的文件将同时显示在winsxs目录和其他目录中。通过使用硬链接,Windows可以将同一版本文件的多个副本存储在操作系统上的多个位置中,但通常只有一个文件副本是需要占用实际空间的,其余的副本仅通过硬链接从winsxs目录“投影”。

硬链接是文件系统对象,允许两个文件引用磁盘上的同一位置,实际上无需占用多个副本所需的额外空间。某些工具(例如资源管理器)可确定目录大小,但不考虑包含的文件可能是硬链接的。这可能导致用户认为winsxs文件夹占用的磁盘空间比实际占用的要多。

在Windows 8及更高版本的操作系统可以通过dism命令分析winsxs目录的真实大小。

1.2.4  C:\Windows\Installer目录

Installer目录中包含Windows Installer安装应用程序的配置信息。

Installer目录的内容不建议自行进行删除,若删除可能导致很多程序无法运行。

Windows曾经提供过Microsoft Installer Cleanup Utility用于清理,后来已不再提供,因为可能对系统文件造成损害。

2.  清理方法

2.1.1  pagefile.sys文件

减小或关闭Windows虚拟内存可以减少或清除pagefile.sys文件,操作如下。

打开计算机属性,点击“高级系统设置”;或执行命令“systempropertiesadvanced”;

打开系统属性界面,切换到“高级”标签页,点击“性能”区域的“设置”按钮;

打开性能选项界面,切换到“高级”标签页,点击“更改”按钮。

打开虚拟内存设置界面,取消钩选“自动管理所有驱动器的分页文件大小”,选择“自定义大小”,根据实际需要选择页面文件的初始大小与最大大小,例如2048至4096(MB),点击“设置”按钮,再点击“确定”按钮。不建议关闭虚拟内存。

以上修改需要重启操作系统后生效。

2.1.2  hiberfil.sys文件

关闭Windows系统的休眠功能,可以删除hiberfil.sys文件(若笔记本需要使用休眠功能,则不建议关闭)。

使用管理员权限执行“powercfg /hibernate off”或“powercfg -h off”命令,关闭Windows休眠功能。执行后立即生效,不需要重启操作系统。

若需要开启Windows休眠功能,执行“powercfg /hibernate on”或“powercfg -h on”命令。

如果不关闭Windows休眠功能,但需要降低hiberfil.sys文件大小占总物理内存的比例,可执行“powercfg -h -size [比例]”命令,例如“powercfg -h -size 70”。若将该比例调得过低会导致Windows无法进入休眠。

2.1.3  C:\Windows\winsxs目录

2.1.3.1     安装KB2852386补丁

Windows 7 SP1操作系统安装KB2852386补丁后,可以通过Windows磁盘清理工具的“Windows 更新清理”选项来删除不再需要的Windows 更新。

64位操作系统的补丁安装包为“Windows6.1-KB2852386-x64.msu”,32位操作的补丁安装包为“Windows6.1-KB2852386-x86.msu”。

以上补丁可从附件中获取,或从微软官方网站下载。

可使用“systeminfo|findstr KB2852386”命令确认补丁是否已安装,若命令执行后有显示“KB2852386”则说明补丁已安装。

经测试,该补丁安装后不需要重启操作系统即可生效。若安装后未生效,请重启操作系统后再试。

2.1.3.2     运行磁盘清理

使用管理员权限执行“cleanmgr”命令,打开磁盘清理工具,选择系统盘C盘,点击“确定”按钮。

或打开C盘的属性界面,点击“常规”标签页的“磁盘清理”按钮,打开磁盘清理工具。

打开磁盘清理工具后,等待扫描结束,查看可以清理的内容,可以看到“Windows 更新清理”选项,钩选该选项,点击“确定”按钮,等待清理工作完成。

Snap9

仅当磁盘清理工具成功检测到存在不需要的Windows更新时,“Windows 更新清理”选项才可用。

为了能够回滚至先前的更新,所有的更新内容会存储在winsxs目录中,即使某些更新已由后续更新所取代。因此,运行磁盘清理工具后,可能无法将系统回滚至被取代的更新。如果要将系统回滚至被磁盘清理工具删除的旧版更新,可以手动安装对应的更新。

2.1.4  其他文件

使用磁盘清理工具清理,钩选需要清理的其他文件,说明略。

2.1.5  使用第三方工具清理

稳定性未知,略。

3.  清理对比

3.1  pagefile.sys文件

3.1.1  清理前

3.1.2  清理后

3.2  hiberfil.sys文件

3.2.1  清理前

3.2.2  清理后

同pagefile.sys文件清理后截图。

3.3  C:\Windows\winsxs目录

略。

4.  其他说明

4.1  C:\Windows\winsxs目录

4.1.1  安装KB2852386补丁前后对比

Windows 7 SP1系统,安装KB2852386补丁前使用磁盘清理显示的可清除内容如下:

Snap5

Snap6

Windows 7 SP1系统,安装KB2852386补丁后使用磁盘清理显示的可清除内容如下:

Snap9

4.1.2  磁盘清理工具查找Windows更新失败的情况说明

使用磁盘清理工具对C盘进行清理时,若查找Windows更新失败,则不会在可清除内容中显示“Windows 更新清理”。

使用磁盘清理工具对C盘进行清理,查找Windows更新产生的日志文件为“C:\Windows\Logs\CBS\DeepClean.log”。

当磁盘清理工具查找Windows更新成功时,DeepClean.log日志示例如下。

...

2017-11-27 22:17:03, Info                  CBS    Skipping: Microsoft-Windows-CodecPack-Basic-Package~31bf3856ad364e35~amd64~~6.1.7601.17514 due to applicability

...

2017-11-27 22:17:03, Info                  CBS    Adding: Microsoft-Windows-IE-Troubleshooters-Package~31bf3856ad364e35~amd64~~6.1.7601.17514

...

2017-11-27 22:17:51, Info                  CBS    DC: tree root as a root relative path: \Windows\winsxs\amd64_microsoft-windows-inetres-adm_31bf3856ad364e35_8.0.7601.18969_none_673e89a5259916a2

2017-11-27 22:17:51, Info                  CBS    DC: Package_for_KB3087038~31bf3856ad364e35~amd64~~6.1.1.3: unique components: 228 Size: 160.80 MB (168,611,925 bytes)

2017-11-27 22:17:51, Info                  CBS    Total size of superseded packages: 517.92 MB (543,078,664 bytes)

当磁盘清理工具查找Windows更新失败时,DeepClean.log日志示例如下。

...

2017-11-27 21:04:12, Info                  CBS    Failed opening package [HRESULT = 0x800b0100 - TRUST_E_NOSIGNATURE]

2017-11-27 21:04:12, Info                  CBS    Failed opening package [HRESULT = 0x800b0100 - TRUST_E_NOSIGNATURE]

2017-11-27 21:04:12, Info                  CBS    Failed getting superseded packages [HRESULT = 0x800b0100 - TRUST_E_NOSIGNATURE]

2017-11-27 21:04:12, Info                  CBS    Failed getting list of superseded packages [HRESULT = 0x800b0100 - TRUST_E_NOSIGNATURE]

2017-11-27 21:04:12, Info                  CBS    GetDeepCleanableSize failed. [HRESULT = 0x800b0100 - TRUST_E_NOSIGNATURE]

如何解决以上失败情况未分析。

4.2  减少C盘空间占用的其他方法

尽量避免将软件安装在C盘;

将桌面目录移至其他磁盘;

使用mklink命令,将其他磁盘的文件或目录软链接至C盘(不同软件能否正常使用未知);

...

相关推荐

相关文章