win11提示“磁盘已满”但c盘显示有剩余空间,实为efi系统分区或恢复分区耗尽所致;需用diskpart分配盘符清理efi中旧版启动文件(如10.0.22621等文件夹),并可修改registry.pol绕过安装检测。

Win11 提示“磁盘已满”但资源管理器显示C盘仍有10GB以上可用空间,这通常不是误报,而是系统在关键分区(如EFI系统分区、恢复分区)或隐藏保留空间上真实耗尽容量,导致安装、更新或写入操作被强制拦截。此时单纯清空回收站或临时文件无法解决问题。
检查并清理EFI系统分区
EFI分区默认仅100–500MB,Windows更新会持续向其中写入旧版启动文件,一旦填满,系统就判定“整体磁盘不可用”,哪怕C盘剩50GB也会报错。
第一步:以管理员身份运行命令提示符,依次执行:
diskpart → list disk → select disk 0 → list partition
第二步:找到类型为【System】的分区,记下其编号(通常是分区1或分区2),执行 select partition X(X替换为实际编号)→ assign letter=Z → exit
第三步:打开文件资源管理器,进入 Z:\EFI\Microsoft\Boot,只保留 bootmgrfw.efi 和 fwbootmgr.efi 两个文件;其余所有以数字命名的子文件夹(如 10.0.22621、10.0.22000)全部删除——这些是旧版Windows启动残留,留着毫无作用,且占满EFI分区后会导致安装程序直接退出。
跳过安装程序的空间检测
当EFI已清理仍报错,说明安装介质自身校验逻辑过于严格,尤其在GPT磁盘或多启动环境下容易误判。此时可修改注册表策略强制绕过检测。
方法一:挂载Windows 11 ISO镜像,进入 sources 文件夹
方法二:将原 ppraiserres.dll 重命名为 appraiserres.dll.bak(若存在)
方法三:新建文本文件,命名为 registry.pol,内容严格按以下格式输入(注意无空格、无换行错误):
machine
software\microsoft\windows\currentversion\setup\odbc
DWORD UseWimBoot 0
DWORD BypassTPMCheck 1
DWORD BypassSecureBootCheck 1
DWORD BypassRAMCheck 1
DWORD BypassStorageCheck 1
DWORD BypassCPUCheck 1
保存后,直接双击运行 setup.exe 启动安装程序,空间不足警告将不再弹出。
释放休眠与页面文件空间
hiberfil.sys 占用空间等于物理内存大小(如32GB内存即占32GB),pagefile.sys 默认设为自动管理,两者常被忽略却合计吞噬数十GB。
① 以管理员身份运行PowerShell,输入:
powercfg /h off
② 立即生效,无需重启,hiberfil.sys 被彻底删除
③ 右键“此电脑”→“属性”→“高级系统设置”→“性能”→“设置”→“高级”→“虚拟内存”→“更改”,取消勾选“自动管理所有驱动器的分页文件大小”,选中C盘→选择“无分页文件”→点击“设置”→确认重启
⚠️ 注意:禁用分页文件后若内存不足可能触发应用崩溃,仅建议在内存≥32GB且确定不运行大型虚拟机/编译任务时启用。
清空SoftwareDistribution缓存
Windows Update服务中断后,C:\Windows\SoftwareDistribution\Download 会堆积大量未完成下载包,磁盘清理工具从不扫描该路径,但它能轻易吃掉15GB以上空间。
停止Windows Update服务 → 打开 C:\Windows\SoftwareDistribution\Download → Ctrl+A 全选 → Shift+Delete 永久删除 → 重启Windows Update服务
这一步操作起来很简单,直接把文件拖进去就行。











