Win11 将虚拟内存从 C 盘迁移到 D 盘(避免重启后自动回 C 盘)

问题现象

我在系统里已经设置:

  • D:\pagefile.sys

但重启后仍出现:

  • C:\pagefile.sys

并且系统提示:

由于启动计算机时出现了页面文件配置问题,Windows 创建了一个临时页面文件。


最终有效步骤

1) 设置 D 盘分页文件

管理员 PowerShell 执行:

1
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v PagingFiles /t REG_MULTI_SZ /d "D:\pagefile.sys 16384 32768" /f

参数建议:

  • 初始大小:16384 MB(16GB)
  • 最大大小:32768 MB(32GB)

检查:

1
Get-CimInstance Win32_PageFileSetting

应显示类似:

1
2
3
Name         : D:\pagefile.sys
InitialSize : 16384
MaximumSize : 32768

2) 关闭“系统盘必须有分页文件”的要求(关键)

关键项是注册表值 PagefileOnOsVolume。

如果它是 1,Windows 会强制系统盘(C 盘)保留分页文件。
将其改为 0:

1
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v PagefileOnOsVolume /t REG_DWORD /d 0 /f

确认:

1
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v PagefileOnOsVolume

期望结果:

1
PagefileOnOsVolume    REG_DWORD    0x0

3) 清理临时分页文件残留(之前失败过时建议做)

查看:

1
Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management"

如果存在:

  • ExistingPageFiles
  • TempPageFile = 1

可尝试清理残留:

1
Remove-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" -Name ExistingPageFiles

4) 重启后验证

检查实际使用:

1
Get-CimInstance Win32_PageFileUsage

正确状态应为:

  • Caption/Name 指向 D:\pagefile.sys

5) 最终状态检查

1
2
Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" |
Select PagingFiles,PagefileOnOsVolume,TempPageFile,ExistingPageFiles

我的最终状态是:

  • PagingFiles: D:\pagefile.sys 16384 32768
  • PagefileOnOsVolume: 0
  • TempPageFile: 空
  • ExistingPageFiles: 指向 D:\pagefile.sys

核心原因总结

这次问题并不是 D 盘本身异常(硬盘、NTFS、权限、空间都正常)。
真正导致“重启后自动回 C 盘”的关键是:

  • PagefileOnOsVolume = 1

改为:

  • PagefileOnOsVolume = 0

后,系统就能稳定使用 D 盘分页文件。


一键回顾(下次可直接执行)

1
2
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v PagingFiles /t REG_MULTI_SZ /d "D:\pagefile.sys 16384 32768" /f
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v PagefileOnOsVolume /t REG_DWORD /d 0 /f

执行后重启即可。