如何缩小 Windows 10 分区?

kdb*_*man 105 windows hard-drive partitioning mirroring

我在装有 Windows 10 的 1TB 盘片驱动器上使用一个大分区。我想缩小分区,以便我可以将驱动器镜像到更小但速度更快的 256GB SSD。

我没有计划太多就买了驱动器。(糟糕。)我看到我只使用了 195GB 并想,“该死的,我为什么不加快这个速度?”

在此处输入图片说明

但是在使用 Windows 10 工具“优化驱动器”进行(非常耗时)碎片整理/优化之后,我似乎只能缩小到 ~488GB。

在此处输入图片说明

据我所知,我需要让源分区小于目标分区才能镜像。但是除了我已经完成的碎片整理之外,我不知道该怎么做。我可以剔除一堆程序并减少我使用的空间,但我使用的空间已经远远小于“收缩后的总大小”。

如何减少分区的最小大小?(即“收缩后的总大小”?)

san*_*lio 121

似乎完全不需要任何第三方软件

我已按照此处的说明操作,并在大约 10 分钟内成功缩小了我的操作系统分区。在 Windows 10 下运行,但我怀疑它在这里有什么不同。

步骤是:

  1. 禁用休眠。

    在提升的(管理员)命令提示符下,运行命令

    powercfg /h off
    
    Run Code Online (Sandbox Code Playgroud)
  2. 禁用页面文件。

    在控制面板中打开系统页面(从“这台电脑”/“我的电脑”,打开属性)。单击“高级系统设置”,然后在“系统属性”对话框的“高级”选项卡中,打开“性能”设置,进入“高级”选项卡,单击“虚拟内存”下的“更改...”,取消勾选“自动管理所有驱动器的分页文件大小”,选择要缩小的驱动器,选择“无分页文件”,然后单击“设置”按钮。

  3. 禁用系统保护。

    在如上的“系统属性”对话框中,转到“系统保护”选项卡,单击“配置...”并选择“禁用系统保护”。

  4. 重新开始。

现在阻止分区减少的三个文件消失了。减小分区大小,然后恢复三个项目。

如果磁盘管理抱怨“磁盘上没有足够的可用空间来完成此操作。” 即使您输入的大小应该根据磁盘管理自己的数字工作,请参阅无法缩小 C: 分区:空间不足

后来我在其他地方找到了类似的说明,都只提到了这3个项目。

  • 使用风险自负——但我还必须[删除所有 VSS Shadows](http://backupchain.com/i/how-to-delete-all-vss-shadows-and-orphaned-shadows),因为事件日志说最后一个不可移动的文件是 C:\System Volume Information\{guid}{guid}::$data (2认同)
  • 我做了这些步骤,当我有大约 120000 个可用空间时,我的 C 驱动器仍然显示 5000 mb 可以缩小,在这种情况下还有其他步骤/建议吗? (2认同)
  • 仅添加此评论以保存单击上面的链接“无法缩小”。在上面尝试后它仍然失败,所以我只是以三个较小的增量缩小磁盘以达到我想要的大小。 (2认同)
  • 当有免费软件可以通过更少的点击来完成此操作时,我为什么要这样做?当然,除非我想了解 Windows 但我只想要自己的空间。 (2认同)

小智 41

一个有趣的事实是,在分区缩小后,最小大小也会减小(当然,如果您有可用空间、碎片整理、没有不可移动的文件等)。

我使用这种方法成功地将 Windows Server 2012R2 上的系统卷 (C:) 从 500GB(只有 50GB 的实际数据)缩小到 80GB。我第一次尝试调整它的大小时,最小大小约为 425GB。

提示:如果您的卷不是系统卷,您可能希望跳过初始步骤(重新启动之前)

  • 打开具有管理权限的 Powershell 提示符。

  • 首先,禁用可以保留不可移动文件的设置

    • 禁用页面文件

      wmic 计算机系统设置 AutomaticManagedPagefile=False
      wmic pagefileset where name="C:\\pagefile.sys" 删除
      
    • 禁用休眠(仅限桌面 Windows)

      powercfg /h 关闭
      
    • 禁用系统还原(仅限桌面 Windows)

      禁用-ComputerRestore -Drive C:
      
    • 重新启动计算机

  • 碎片整理(相当于defrag C: /L /D /K /G /H

    Optimize-Volume -DriveLetter C -ReTrim -Defrag -SlabConsolidate -TierOptimize -NormalPriority
    
  • 获取以 GB 为单位的剩余大小

    (Get-Volume C).SizeRemaining /1GB
    374,10312271118 # 示例结果!
    
  • 调整分区大小(使用以上值加2~3GB)

    $part = Get-Partition -DriveLetter C
    $部分 | 调整分区大小 - 大小 375GB
    
  • 再次获取剩余大小。Resize-Partition 减少了它。

    (Get-Volume C).SizeRemaining /1GB
    278,10312271118 # 魔术!
    
  • 冲洗并重复,直到达到所需的大小。

  • 最后,恢复电脑设置

    • 启用页面文件

      wmic pagefileset 创建名称="C:\\pagefile.sys"
      wmic 计算机系统设置 AutomaticManagedPagefile=True
      
    • 启用休眠(仅限桌面 Windows)

      powercfg /h 打开
      
    • 启用系统还原(仅限桌面 Windows)

      Enable-ComputerRestore -Drive C:
      
    • 重新启动计算机

  • 对于收到错误命令无法识别(或不可用)的每个人,请注意答案说:打开 **PowerShell** 提示 * 具有管理权限*(此处为 PowerShell 教程:http:// www.computerperformance.co.uk/powershell/index.htm)。这与常规的 cmd 提示*不*相同。只需在开始菜单上搜索“Windows PowerShell”,您就会找到它。我尚未测试这些命令,但请注意,PowerShell v.3+ 的某些命令不适用于 PowerShell v.2-。 (5认同)
  • 删除页面文件时,我收到“错误:描述=无效查询”。我必须像这样引用整个查询:`wmic pagefileset where 'name =“C:\\ pagefile.sys”'删除`。 (3认同)

kdb*_*man 7

The answer by @sancho.s works, but I'll leave this here in case anyone is looking for a quicker approach and is comfortable with third party tools.

As the comments point out, the problem was files that couldn't move during a partition shrink or defrag because they were locked by running applications and by windows. The simplest way to unlock those files is to stop the processes, and the simplest way to stop the processes is to not let them start! Hence, I started looking for a boot time defragment tool.

As recommended by @L?uV?nhPhúc, I used this (free) partition manager, so I didn't need to defragment after all. Just start the tool, queue a partition job, and restart your computer:

  1. Start the tool, click the partition to resize, and click Move/Resize:

    enter image description here

  2. Set the size and click OK:

    enter image description here

  3. Apply the changes!

    enter image description here

  4. 如果您像我一样缩小了很多,它会提示您在重新启动时进行。只需从对话框中重新启动计算机,然后喝一口咖啡即可。

    enter image description here


dxi*_*xiv 6

关键是您发布的信息消息的这一部分:

您不能将卷缩小到任何不可移动文件所在的位置之外。

来自 Microsoft 的Shrink a Basic Volume

其他注意事项

  • 缩小分区时,某些文件(例如,分页文件或卷影副本存储区)无法自动重新定位,并且您无法将分配的空间减少到不可移动文件所在的位置以外。如果收缩操作失败,请检查事件 259 的应用程序日志,这将识别不可移动的文件。如果您知道与阻止收缩操作的文件关联的一个或多个集群,您还可以在命令提示符下使用 fsutil 命令(键入 fsutil volume querycluster /? 以了解用法)。当您提供 querycluster 参数时,命令输出将标识阻止收缩操作成功的不可移动文件。

    在某些情况下,您可以临时重新定位文件。例如,如果不可移动的文件是页面文件,您可以使用控制面板将其移动到另一个磁盘,缩小卷,然后将页面文件移回磁盘。

  • 如果动态坏簇重映射检测到的坏簇数量过多,则无法缩小分区。如果发生这种情况,您应该考虑移动数据并更换磁盘。

    不要使用块级副本来传输数据。这也将复制坏扇区表,新磁盘会将相同的扇区视为坏扇区,即使它们是正常的。

  • 您可以缩小原始分区(没有文件系统的分区)或使用 NTFS 文件系统的分区上的主分区和逻辑驱动器。

您应该首先Application Log按照指示检查。如果不可移动文件是分页文件,您可以尝试(临时)将其重新定位到另一个驱动器,然后重试缩小。但是,如果有其他不可移动的文件阻止了您无法删除/重新定位的收缩,那么您将无法使用内置工具进行收缩。在这种情况下,您需要使用第 3 方分区/成像工具 - 此类工具既有免费也有付费。