
先说我遇到最多的一个求助场景D 盘总共 242G实际文件可能连 60G 都不到剩余空间 150G 以上。你想把这 150G 里分出 100G 给 C 盘或其他用途于是右键 D 盘点“压缩卷”结果弹出来的窗口写着“可用压缩空间20G”。很多人第一反应是 Windows 算错了或者磁盘是不是出了什么问题。其实 Windows 没毛病这是“压缩卷”这个功能本身的局限性导致的。这篇文章就把“可用压缩空间远小于剩余空间”的原因拆开讲清楚然后给出一套从零开始的实操流程怎么关闭休眠、迁移虚拟内存、清理还原点、整理碎片再到用 DiskGenius 做无损收缩最后把压缩出来的空间真正送到你想扩展的分区去。无论你只是想把 242G 的 D 盘拆成 D 盘 100G E 盘 142G还是 C 盘告急想借 D 盘的空间都可以直接对照着操作。1. 压缩卷为什么“撒谎”先看懂 Windows 压缩分区的底层逻辑1.1 压缩卷只收尾不收头你要先建立一个观念压缩卷不是把分区上所有空闲空间汇总起来而是只从分区的“尾部”往回收。分区在磁盘上就是一段连续的扇区区域从起始扇区到结束扇区。压缩卷做的事本质上就是把“结束扇区”往前挪把末尾的一段连续空间释放成未分配区域。而你右键分区看到的“剩余空间”是所有未使用扇区的总和。这两者天然就不一样一个是总量一个是“尾部连续可用量”。用书架来类比可能更好懂。你把 D 盘想象成一排书架压缩卷相当于要从最右边腾出空隙用来给旁边的书柜腾位置。如果书从最左边一直排到了最右边中间没有空当那你就得把靠近右边的书往左挪。挪得动当然可以但有些书被死死钉在书架上——Windows 里这些文件叫“不可移动文件”。它们一旦占住尾部哪怕书架中间还有很多空位你也只能在最右边留出很小的空隙。这就是为什么你看到 150G 剩余可压缩空间却只有 20G。不是 Windows 在撒谎而是它只承诺“能安全从尾部释放出来的连续空间”。1.2 三类“钉子户”偷走可用压缩空间哪些文件会在压缩时捣乱我总结成三类处理起来思路也完全不同。第一类是系统专用文件pagefile.sys虚拟内存页面文件和hiberfil.sys休眠文件。只要它们存在于 D 盘就会被当成不可移动的块。尤其是 pagefile.sys它被系统进程锁定普通的重排操作根本碰不到它。如果你以前看到“C 盘不够用把虚拟内存挪到 D 盘”的文章照做了那现在压缩 D 盘时它就成了最大的拦路虎。第二类是NTFS 元数据区域比如 $MFT 主文件表等系统记录文件。这部分 Windows 不会在压缩卷时重新安置如果它恰好落在分区中部偏后的位置可用压缩空间会直接缩水。这类情况最麻烦因为不是你删几个文件就能解决的它跟分区历史和使用方式有关。第三类是卷影副本也就是系统还原点、早期版本文件的存储区域。只要你给 D 盘开过系统保护D 盘上就可能存在大块连续存储区域。它平时藏在系统保护设置里很多人根本不知道它占了多少空间。压缩前如果不清掉Windows 计算可压缩空间时也会把它们排除在外。除了这三类还有一个隐藏影响因素碎片。如果 D 盘是机械硬盘常年下载、删除、写缓存文件会碎得满地都是。压缩卷在计算“可移动文件”时对碎片文件非常保守因为把碎片从中间搬到前面需要额外空间系统宁可不挪也不冒险。所以你会看到一些极端情况数据明明只占三分之一文件分布却铺满了整块盘可压缩空间小得可怜。2. 压前清障把休眠文件、页面文件和还原点全部移走2.1 关闭休眠和系统保护清理卷影副本先说最立竿见影的一步关掉休眠文件。在管理员命令行窗口里执行这一条命令powercfg /h off这行命令会直接删除 C 盘根目录下的 hiberfil.sys同时关闭休眠和快速启动功能。如果你的 D 盘上恰好也配置了休眠相关数据这一步会把不可移动的占用释放出来。对于很多电脑来说这一步就能让可用压缩空间多出几个 GB甚至十几个 GB。接下来处理系统保护。右键“此电脑” → 属性 → 系统保护选中 D 盘点“配置”选择禁用系统保护然后把已有的还原点删掉。这一步是为了清掉卷影副本。如果你不确定 D 盘上有没有卷影副本可以用管理员权限执行vssadmin list shadowstorage看到有 Storage 指向 D 盘的记录就说明卷影副本确实占了 D 盘空间。系统保护关掉后这些空间才会真正变成普通空闲区域。2.2 把虚拟内存从 D 盘挪走但别挪完就懵网上经常有人教“C 盘满了把虚拟内存迁到 D 盘”这确实能缓解 C 盘压力。但你现在要做的是压缩 D 盘pagefile.sys 放在 D 盘就是死结必须先把它挪走。操作路径是右键“此电脑” → 属性 → 高级系统设置 → 高级选项卡 → 性能区域的“设置” → 高级选项卡 → 虚拟内存区域的“更改”。在虚拟内存设置窗口里按这个顺序操作取消勾选“自动管理所有驱动器的分页文件大小”。选中 C 盘或其他 D 盘之外的分区选择“系统管理的大小”点“设置”。回到驱动器列表选中 D 盘选择“无分页文件”点“设置”。点“确定”然后重启电脑。顺序很重要。如果你直接就把 D 盘设成“无分页文件”然后不设置其他盘的分页Windows 会警告你“没有分页文件Windows 可能会出现问题”重启后还可能偷偷在 C 盘生成临时 pagefile导致你之前的设置白做。所以一定先把 C 盘或其他盘的分页设置好再移除 D 盘的。如果你担心 C 盘空间也紧张可以在 C 盘上设一个固定大小比如初始 2048MB、最大 4096MB 这种保守值或者干脆把分页文件放到 E 盘、移动硬盘之外的稳定分区。物理内存 16G 以上、日常没有跑大型软件的话固定一个 2G 到 4G 的分页文件就够用了。重启之后再打开 D 盘根目录确认 pagefile.sys 是否消失。如果还在多半是系统还没完全释放旧设置再重启一次看看。这一步做完压缩卷能看到的可用空间会明显变大。2.3 清理临时文件和大块缓存给尾部腾出更多空间关闭休眠、迁移虚拟内存解决了“不可移动文件”问题但还不够。D 盘上如果有一堆普通大文件它们虽然可以移动但会让整个分区尾部没有连续空闲压缩量依然上不去。先用系统自带的磁盘清理在 D 盘右键属性里点“磁盘清理”或者管理员运行cleanmgr /d D:把临时文件、回收站文件、缩略图缓存等都清掉。这一步通常能释放几个 GB 到几十个 GB取决于你平时的使用习惯。接下来检查那些超大文件。比如 iPhone 备份、Docker Desktop 的虚拟磁盘、WSL 的 vhdx、虚拟机镜像、Ollama 模型库、视频素材等这些动辄几十上百 GB 的文件如果它们在 D 盘中部或尾部形成连续占用压缩卷基本就别想动它们了。处理方式很简单先移到移动硬盘或其他分区压缩完再拷回来。然后是碎片整理。机械硬盘强烈建议做一次在开始菜单搜“碎片整理和优化驱动器”选中 D 盘点“优化”。这一步会把分散的文件尽量集中到分区前部让尾部出现连续空闲。我自己的经验是有次 D 盘剩余空间 200G、可压缩空间只有 8G跑完 defrag 之后再打开压缩卷可用空间直接涨到 150G 以上效果非常明显。要注意的是SSD 不需要像机械硬盘那样频繁做传统碎片整理在“优化驱动器”里点“优化”跑一次 Trim 就够了。SSD 的物理寻道时间短压缩卷的瓶颈更多在元数据和不可移动文件上所以第 2.1 和 2.2 节对 SSD 的收益反而更大。3. 实战压缩从系统自带压缩卷到 DiskGenius 无损收缩3.1 Windows 自带压缩卷的完整步骤做完前面的清理工作现在可以正式压缩了。如果你只是想简单分一个新分区出来比如把 242G 的 D 盘拆成 D 盘 100G E 盘 142G系统自带功能就够用。具体步骤右键开始菜单选“磁盘管理”。确认 D 盘文件系统是NTFS。FAT32、exFAT 都不支持压缩卷。右键 D 盘选“压缩卷”等待系统扫描完成。在“输入要压缩的空间量”里填你需要释放的 MB 数。比如想留出 142G大约填 145000 左右。点“压缩”等待进度条走完。如果第 4 步里你能填入的最大值还是很小说明第 2 节的清理工作还有遗漏。别硬填超过上限的数字系统不让填填了也会报错。这里有个容易忽略的小细节压缩时别把 D 盘压得太狠。有些人为了极限利用空间压缩到只剩 5G、10G当时舒服了后面装软件、跑缓存、系统更新全都遭殃。我见过好几台机器D 盘剩余空间常年红条Windows 更新一下载就提示空间不足最后还得回头找空间。留 30G 以上余量比较稳妥。3.2 DiskGenius 无损收缩把文件重排后挤出的空间更可观如果系统自带压缩卷的可用空间仍然上不去或者你想一步到位把 D 盘缩得比较小就该上 DiskGenius 了。DiskGenius 的处理方式和 Windows 自带的有本质区别它能对分区内的文件做完整重排把分散在分区各处的文件尽量推到分区前部甚至把那些系统认为不可移动的 NTFS 元数据区域也做整理然后在分区尾部集中释放空闲空间。Windows 自带压缩卷只会挑能移动的文件做有限挪动DiskGenius 等于把整个书架的书全部重新摆一遍。操作流程大致是以管理员身份运行 DiskGenius。选中 D 盘右键选“调整分区大小”。在弹出的窗口里拖动分区右边界向左收缩或者直接输入新的分区大小。勾选“整理分区文件”或类似选项让软件对 D 盘做完整重排。点“开始”软件可能提示需要重启到 WinPE 环境执行按提示操作。等待进度条走完。文件越多、碎片越多耗时越长可能几十分钟到几个小时。我用 DiskGenius 把一个 1T 的 D 盘从占用 70% 压缩到 40% 左右比 Windows 自带压缩卷多释放了整整 300G 空间效果确实明显但全程跑了接近三个小时。磁盘整理过程会大量读写笔记本一定插上电源中间别断。3.3 第三方操作的风险控制与备份策略动分区表的操作再怎么叫“无损”都是有风险的。DiskGenius 会把分区内文件整体搬移一旦中途断电、蓝屏轻则分区表错乱重则 D 盘变 RAW数据直接消失。所以我的铁律是动手前必须做备份至少把照片、文档、项目代码这些珍贵数据复制到移动硬盘或别的分区。备份之外操作前还要做到几点关掉杀毒软件和安全软件的磁盘防护防止它们干扰底层读写。如果 D 盘开了 BitLocker先解密或暂停保护。用chkdsk D: /f提前检查文件系统有没有错误。在 DiskGenius 里先执行“检查分区错误”确认无误后再调整大小。还有一个更笨但更稳的备选方案如果 D 盘里数据不多干脆走“删分区重建”的路子。数据全部拷走右键删除 D 盘分区然后在未分配空间上新建 D 盘和 E 盘再把数据拷回去。没有中间过程不会出现整理到一半断电的问题。很多人嫌麻烦但真遇到数据丢失时才知道这一步有多值。4. 压缩完 C 盘还是扩不了把未分配空间送到 C 盘旁边4.1 扩展卷为什么是灰的未分配空间必须“贴脸”C 盘这是压缩卷问题里最常见的一个后续坑D 盘压缩出了几百 GB 未分配空间回到磁盘管理却发现 C 盘的“扩展卷”选项是灰的点不了。很多人以为 Windows 又出 bug 了其实不是。Windows 自带的“扩展卷”功能只能合并紧贴在目标分区右侧的未分配空间。C 盘右边是 D 盘开头你压缩 D 盘得到的未分配空间在 D 盘尾部跟 C 盘中间隔着一整个 D 盘分区。哪怕这段未分配空间和 D 盘紧紧挨着Windows 也不会把它“跨过”D 盘塞给 C 盘。所以判断能不能扩展就一句话想扩哪个盘未分配空间就必须紧挨在那个盘右侧。不够相邻自带工具就是无解。4.2 两个迁法删 D 重建或者把 D 盘整个往右挪如果你确实想把压缩出来的空间给 C 盘有两个路径。路径一备份 D 盘数据 → 在磁盘管理里删除 D 盘卷 → 此时 C 盘右侧出现一整段未分配空间 → 右键 C 盘选“扩展卷”把想要的大小并入 C → 剩下的未分配空间新建 D 盘或 E 盘 → 把数据拷回来。这个路径会短暂清空 D 盘但最干净、最稳定没有第三方工具参与也不太容易出风险。只要你有地方备份数据我优先推荐这个。路径二数据不想搬用 DiskGenius 或傲梅分区助手。在“调整分区大小”里把 D 盘分区整体向右拖动让 D 盘的左边界往后退这样 C 盘右侧就会空出一段未分配空间。这个操作的难度和风险比普通压缩高因为 D 盘上所有数据都要物理搬移位置耗时很长而且有个前提D 盘右侧必须有足够空间容纳整个 D 盘。如果 D 盘后面紧挨着 E 盘或者已经顶到磁盘边界那 D 盘根本没地方挪方法二直接失效。我的建议是纯小白或者数据特别重要的用户别纠结“无损移动”这几个字老老实实备份再删分区重建。折腾分区表省下的时间远不够你抢救数据花的时间。4.3 中间隔着 D 盘想给 E 盘扩容的变通思路热搜里有个类似的问题C 盘右边依次是 D、E现在想给 E 盘扩容中间隔了 D怎么办。判断方法还是一样看未分配空间有没有紧贴在 E 盘右侧。如果你是从 D 盘压缩出的空间它夹在 D 和 E 之间对 E 盘来说它在左侧自带“扩展卷”不认。这时候要么把 E 盘数据备份后删除重建要么用第三方工具把 E 盘整个往右挪再把左侧的未分配空间并入 E。注意第三方工具往右挪 E 的方式同样要求 E 盘右侧有空位否则无解。还有一个很多人都忽略的思路如果你只是觉得 C 盘空间不够不一定非要压缩 D 盘去给 C 扩容。反过来把 C 盘上的东西搬到 D 盘风险要小得多。比如把虚拟内存迁到 D 盘、把用户目录下的下载文件夹改到 D 盘、把 Docker Desktop 的>