本质是VSS快照占用NTFS预留空间未释放,导致“磁盘空间不足”误报;需用fsutil验证真实可用字节、vssadmin清理旧阴影副本、禁用系统保护与休眠,并视情修复NTFS元数据。
这个问题本质是卷影复制(vss)机制在 windows 宿主机上造成的“磁盘已满”假象——空间明明还有,系统却频繁报“磁盘空间不足”,尤其常见于启用了系统保护、备份或某些虚拟化/容器管理工具(如 hyper-v、docker desktop、wsl2 后端)的环境。根本原因不是物理空间真没了,而是 vss 快照持续占用 ntfs 预留空间,且释放滞后、不自动收缩。
确认是否为 VSS 导致的虚高
别只看资源管理器的“可用空间”。执行以下两步验证:
- 以管理员身份运行命令提示符,输入:fsutil volume diskfree C: → 查看 Available Bytes 值(这是内核级真实空闲字节数);
- 再执行:vssadmin list shadows → 观察输出中是否有大量创建时间久远、大小异常的阴影副本(Shadow Copy)。
若 Available Bytes 明显小于资源管理器显示值,且 vssadmin 列出多个旧快照,基本可锁定为 VSS 占用未释放。
强制清理并禁用冗余卷影副本
VSS 不会自动删旧快照,尤其当系统保护被长期开启或第三方软件触发过备份后。必须手动干预:
- 清空所有现存快照:vssadmin delete shadows /all /quiet(执行后需等待数秒至数十秒,期间磁盘灯可能常亮);
- 禁用系统保护(推荐彻底关闭,除非你明确需要还原点):右键“此电脑”→“属性”→“系统保护”→选 C 盘→“配置”→勾选“禁用系统保护”→点击“删除”清除全部还原点;
- 重启一次,让 NTFS 元数据刷新,再运行 fsutil volume diskfree C: 对比前后数值。
防止后续再次虚高
光清一次不够。要切断源头:
- 关闭休眠(顺带释放 hiberfil.sys):powercfg -h off(管理员 CMD);
- 检查是否启用“文件历史记录”或第三方备份软件(如 Acronis、Macrium),它们默认依赖 VSS;若非必要,暂停或配置其仅保留最近 1–2 个快照;
- 对 WSL2 或 Docker Desktop 用户:确保其虚拟硬盘(如 ext4.vhdx)未被挂载为 Windows 可见卷;若需共享文件,改用
\wsl$或\localhost方式访问,避免触发 NTFS 层面的 VSS 捕获。
补充:NTFS 元数据修复(极少数情况)
如果清理后 Available Bytes 仍偏低,可能是 NTFS 自身元数据损坏或预留空间异常。此时可尝试:
- 在管理员 CMD 中运行:chkdsk C: /f(需重启后执行);
- 之后再运行:fsutil behavior set disablelastaccess 1(减少元数据写入压力);
- 最后执行:defrag C: /O /U /V(优化并强制整理空闲空间链表)。
完成后再次用 fsutil volume diskfree C: 验证,真实可用空间应与预期一致。

















