【硬核向】C盘清理后的占用极限(非精简系统并日常使用)
...大约 12 分钟
转载:【硬核向】9G!C盘清理后的占用极限(非精简系统并日常使用) - 哔哩哔哩
达成效果
- 在不刻意将软件装进C盘的情况下,可以常年实现可用空间大于90G
- 临时文件不会积攒至系统盘
- 系统稳定正常使用,不会因系统文件缺失而蓝屏
本文目的
- 展示通过清理和转移等方式实现的C盘最低占用(可继续压榨,但没必要,因为在此之前应该没人日常使用的非精简系统的C盘空间会比我的还低了吧?大概?)
- 通过实现方式的介绍,提供最(大概?)全面的C盘清理方法
- 分享对应的好用的磁盘工具
看完本文后的效果
- 如果你从来没有清理过C盘:通过清理的方式你可以清理至少20G的空间,通过转移的方式你的C盘将腾出无上限的空间
- 如果你之前清理过C盘但是其空间还是会随着日常使用而减少,循环往复:你可以了解通过何种方式可以避免C盘空间循环往复的减少
- 如果你是大C盘战士(只有一块硬盘并且C盘不分盘):转移的方法对你无效,但是可以进行比较详尽的清理
C盘清理思路
- 删除/调整(日常使用)无用文件包括但不限于:临时文件、休眠文件、虚拟内存、系统还原点、传递优化文件、****系统保留空间等
- 转移系统非必要文件至非系统盘 个人用户文件夹:文档、下载、桌面、图片等AppData文件夹:整体利用软链接原理实现迁移(具有风险性与高回报性)Program Files、Program Files(x86)、ProgramData文件:利用软链接原理迁移(低风险性)UWP类应用/WindowsApps:利用系统自带的移动转移至非系统盘临时文件:更改TEMP存储位置日志类型文件:利用软链接原理迁移
需要准备的工具
- Wiztree(磁盘扫描工具) :该工具主要目的在于对症下药,每个人的C盘使用情况不尽相同,分析哪些部分占用多并根据后述方法进行解决官方网站: https://diskanalyzer.com/download

- Dism++ (空间回收利器) 下载网址:

- Link Shell Extension(便捷的软链接建立工具)
- 官网:https://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html
工具集合:https://www.123pan.com/s/DWSDVv-gmUU3.html
接下来让我们开始吧
- **休眠文件(Hiberfil.sys)**Windows内的休眠文件(Hibernate File)是一种系统文件,用于将当前的系统状态保存到硬盘上,以便在计算机休眠时能够快速恢复到之前的状态。休眠文件的大小通常与系统的物理内存大小相关(本机测试环境下为物理内存的40%)如果根本不知道休眠功能的存在,可通过Win+X→命令提示符(管理员)后输入代码
powercfg /h off
如果有休眠功能的需求,可以通过以下代码减少Hiberfil.sys占用(最少至20%)
powercfg /h /type reduced
- 临时文件(及存储位置更改) Win+R输入
sysdm.cpl
→高级→环境变量与用户变量和系统变量中均可以看到TEMP与TMP



对应目录下的文件均可以直接删除,同时可在此处更改临时文件至非系统盘

- **虚拟内存(pagefile.sys)**同在系统属性的高级→性能栏“设置”→“高级”→更改

关闭“自动管理所有驱动器的分页文件大小”后将C设置为“无分页大小”选择D设置为“系统管理的大小”
PS:虚拟内存不能完全关闭,Windows一定要将一部分不常用的东西,放进分页文件。该步骤相当于将虚拟内存转移至D盘
- 系统保留空间随着系统迭代,系统会保留7G左右的空间用以(饱受诟病的)系统更新,这部分空间不会直接在分区内查看到,可以通过命令行进行关闭处理
# 查询系统保留空间是否启用
DISM.exe /Online /Get-ReservedStorageState
# 禁用系统保留空间释放7GB空间
DISM.exe /Online /Set-ReservedStorageState /State:Disabled
# 启用系统保留空间重启系统后将重新占据7GB空间
DISM.exe /Online /Set-ReservedStorageState /State:Enabled
- 关闭系统还原点众所周知,系统自带有系统保护功能,但其还原功能可谓十分鸡肋(还原成功率低,难以解决问题),并且会在C盘的隐藏文件夹“System Volume Information”内生成还原点占用空间。关于有效的系统备份与救急方法可根据反馈另出专栏。本文列出彻底关闭系统还原功能方法:若为家庭版系统,将以下代码写入.txt文档,更改后缀为.bat,以管理员身份运行
@echo off
pushd %~dp0
dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum List.txt
dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientTools-Package~3*.mum List.txt
for /f %%i in (findstr /i . List.txt 2^nul) do dism /online /norestart /add-package:C:\Windows\servicing\Packages\%%i
pause
若已开启组策略,则Win+R输入 gpedit.msc
→计算机配置→管理模块→系统→系统还原→关闭系统还原→启用

- 关闭系统传递优化传递优化使用的是点对点(P2P)技术,它允许Windows设备通过互相共享更新和应用程序,从而减轻微软服务器的负载和网络流量(讲人话就是利用闲置带宽,使你系统更新速度可以变快)关闭方法:Win+i→windows更新→高级选项→传递优化

- **Dism++全项清理(本篇不详细展开各项清理内容)**打开Dism++后,在选项栏→详细设置→启动专家模式→关闭重新打开Dism++→空间回收实现9G占用为全部内容均进行清理,不会对系统文件造成影响

PS:其中QQ临时数据项清理的话会导致wegame的账号记录消失,我当时排查好久才找到wegame需要重新登录的原因
本文章不详细展开各清理项具体内容,拟定后续单独一篇专栏介绍清理内容,以及C盘内文件夹的较为详细的介绍
接下来是“转移”的部分,也是针对清理无效的用户最有效的方法
- 个人用户文件夹转移:“桌面”、“文档”、“下载”、“图片”等users子文件夹在C:\users\用户名 的目录下默认有这几项文件夹,其默认位置在C盘。
- 而移动的话,原理类似于搬家,将该文件夹下的文件搬运至目标新家,然后将目的地设定为家的位置。

在D盘内创建名为“桌面”的文件夹(新家)后,将文件转移至此
移动的目录千万不要设置为根目录,例如D:\ 选中后直接移动,一定要建立子文件夹,不然就会出现逻辑错误


通常,QQ和微信的数据会存放于“文档”文件夹内,浏览器下载目录通常为“下载”文件夹,桌面存放的任何文件都在“桌面”文件夹内。它随我们日常使用数据的积累而变大。转移后不会因聊天内容激增而导致C盘空间逐步减少。
- AppData文件夹的转移(必须需要PE环境或非当前用户账户) 此部分操作之前参考于文章——《将C:\Users文件夹移至其他目录》https://kakkk.cc/archives/29 原文章将整个users文件夹进行了转移,但实际上AppData文件夹占据几乎全部的空间

- users文件夹内含有Local Settings、My Documents等等个人账户信息,在转移过程中具有更高的不确定性。(摸索期间就出现过转移成功后但是开始菜单与设置均打不开的情况)故本文优化为转移AppData文件夹。原文利用administrator账户(非用户账户)环境进行robocopy,接下来以PE环境为例
- 进入PE系统确保PE内系统盘符与原系统内盘符一致(C仍为系统盘,D为数据盘)
- 打开cmd,按照步骤分别输入以下代码
path C:\Windows\system32
#第一步的目的在于让pe系统能够找到robocopy.exe文件,防止出现"robocopy不是内部或外部指令"#
robocopy C:\Users\用户名\AppData D:\Users\用户名\AppData /E /COPYALL /XJ /XD Windowsapps
#第二步的目的在于将AppData文件夹复制至D盘同位置(理论上其他位置亦可,不过最好还是同位置)#
rmdir C:\Users\用户名\AppData /S /Q
#第三步目的为完全删除C盘内的AppData文件夹,在资源管理器内删除同效果#
mklink /j C:\Users\用户名\AppData D:\Users\用户名\AppData
#第四步目的为建立软链接

- 实现原理——软链接:打比方的话,相当于AppData文件夹已经搬到了D盘,但是在C盘的原位置处生成了一个影像(链接),让系统以为AppData还留在C盘,从而实现转移的效果。
- /E 表示拷贝文件时包含子目录(包括空目录)/COPYALL 表示拷贝所有文件信息/XJ 表示不包括Junction points(默认是包括的)/XD 表示不包括指定的目录
- 由于本方法仅针对AppData文件夹,故无需考虑原方法内administrator文件夹的情况
- 原方法在拷贝过程中会遇到windowsapps文件夹内文件复制错误的问题,原因是无法在目标路径创建该文件(和windowsapps相关的文件一般都会有很多问题,如证书问题,权限问题),出问题的文件目录于C:\Users\Default\AppData\Local\Microsoft\WindowsApps
- 由于WindowsApps文件夹没有复制,故本次测试后第一次开机对应的UWP应用没有正常的开机启动,设置归为默认(但是可以正常使用)
本方法具体结果分析
- 移动后AppData文件夹的容积负担完全转移给非系统盘,新增文件也会直接生成于D盘
- users文件夹内的AppData文件夹为日常数据生成的主要地址,包括应用数据,应用设置等等,通过软链接转移走后可以腾出大量的空间
- 性能方面几乎没有任何损失
- 软链接可逆,反向操作可以还原
- Windows大版本的更新(即会生成windows.old的版本更新)会强制将D盘的Users文件夹转回C盘,日常的补丁更新不会有影响,且后续可继续转
利用软链接特性转移非系统应用及对应的数据
- 软链接这个方法固然好,但是命令行的使用总归是不便的(在非PE环境下需要以管理员身份运行CMD)
- Link Shell Extension这款工具可以便捷的创建“符号链接”
- 安装后对目标文件夹右键→选择源链接点→在想要生成影像(软链接)的目录创建为符号链接

- 以此为基础,可以将C盘内Program Files、Program Files(x86)、ProgramData内众多占用空间大的文件进行转移
- 转移步骤为:剪切目标文件夹,粘贴至非系统盘→右键文件夹选择源链接点→在原位置创建为符号链接
- windows系统限制,剪切过程文件夹内不能有程序正在运行,若无法关闭则可以在PE内用命令行方式处理
- 该方法可以转移的文件包括但不限于Office、Adobe、Topaz全家桶等

- WindowsApps的移动其目录位于C:\Program Files\WindowsApps,经观察,其转移原理是类似于软链接的,不过利用系统自带的转移的功能步骤:Win+i→应用→安装的应用→筛选条件将驱动器改为C→找寻能够移动的UWP应用进行转移
- 前文指出,WindowsApps相关的文件是比较麻烦的,权限及证书相关内容均比较麻烦,因此该部分实际可转移的内容不多
- 如果转移至D盘的话,其实际上为将C:\Program Files\WindowsApps移动至D:\WindowsApps(根目录创建的文件夹下)猜测其实现原理也是软链接
