我安装了两个操作系统(Windows 8 和 Mint),我正在尝试缩小原始 Windows 分区,但 swapfile.sys 永久文件挡住了路。所以我想知道,是否可以登录 Linux 端,然后在 swapfile.sys 未打开时访问它并移动它?
答案1
您可以swapfile.sys
通过禁用页面文件然后在C:\swapfile.sys
(假设 C: 是您的系统驱动器) 创建符号链接来移动。整个过程可以在 Windows 环境中执行。
以下步骤将禁用swapfile.sys
(在 Windows 8 和 Windows 8.1 Preview 上测试):
- 禁用页面文件全部驱动器(通过控制面板->系统和安全->系统->高级系统设置 ->先进的->性能选项->先进的->虚拟内存)。
- 重启你的电脑。
swapfile.sys
现在应该已经消失了。如果仍然存在,可能需要手动删除。
然后在命令行中输入以下命令(需要管理权限):
mklink C:\swapfile.sys "<NEW LOCATION>:\swapfile.sys"
如果新位置路径不包含空格,则可以省略引号。请注意,在 Windows PowerShell(在 Windows 8.1 中推广)中mklink
无法访问命令。您应该通过键入来调用常规命令行cmd
,然后在同一窗口中继续。
之后,您可以启用页面文件,新创建的页面文件swapfile.sys
将位于符号链接指向的任何位置。符号链接本身占用的磁盘空间尽可能小。
答案2
这是“Windows Store Apps”的新页面文件。我曾寻找过移动它的方法,但一直没找到。只有完全禁用页面文件才能停止创建。
答案3
还有一个未记录的注册表值,它控制swapfile.sys
存储位置:
- 注册表项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
- 值名称:
SwapFile
- 类型:
REG_MULTI_SZ
其值应为具有以下格式的单个字符串:<path> <min_size> <max_size>
。例如,要将交换文件移动到d:\swapfile.sys
最小大小为 100 MB、最大大小为 600 MB,可以将条目设置为d:\swapfile.sys 100 600
:
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v "SwapFile" /t REG_MULTI_SZ /d "d:\swapfile.sys 100 600"
PagingFiles
语法与控制文件位置和大小的同一注册表项中的值相同pagefile.sys
。理论上,将最小和最大大小都设置为 0 应该可以让 Windowsswapfile.sys
自动管理文件的大小,就像文件的情况一样pagefile.sys
。但这似乎不起作用,因此您必须在注册表值中手动设置大小。将两个大小都设置为 0 实际上会阻止创建文件。
默认情况下,最小大小设置为 256 MB,最大大小设置为总 RAM 的 150% 或硬盘总空间的 10%(以最小者为准)。对于小型驱动器,最小大小设置为 16 MB,如果磁盘大小小于或等于 16 GB,则最大大小设置为相同值,如果磁盘大小小于或等于 32 GB,则最大大小设置为 256 MB。
与该mklink
方法相比,更改注册表中的值应该能够保留 Windows(10)主要更新之间的设置。