如何在 Windows 10 上移动恢复分区?

pha*_*lvi 25 diskpart windows-10

我升级到 Windows 10,并在我的磁盘上创建了一个 450Mb 的恢复分区。我想扩展系统分区,但恢复分区妨碍了。

如何在不安装第三方软件的情况下将恢复分区移动到磁盘卷的末尾?

小智 49

我知道VainMain上面的答案可能更加仔细和彻底,但我已经能够通过简单地执行以下操作来成功移动分区:

  1. 在 Windows 10 中: reagentc /disable
  2. 在 Linux 启动 CD 中:根据需要调整相邻分区/移动恢复分区。
  3. 在 Windows 10 中 reagentc /enable

恢复环境会自动重新发现并启动 WinRE,所有恢复选项(重置/系统映像恢复/等)都很好。我只有 1 个 C: 分区,没有特殊分区/双启动/多个恢复分区/事先疯狂的 BCDEDIT 设置,这很有帮助。之前在虚拟机内进行了测试以确保这一点。现场执行后没有任何问题。

如果我没记错的话,跳过第一步(通过 reangetc 禁用)将导致恢复环境最终配置错误,无法正确重新启动,并且不容易修复。

  • 使用 Debian live ISO 和 Gparted 来调整我的 Windows 11 设置大小,过程出奇的顺利!谢谢你的提示! (5认同)
  • 可以确认,完美运行。使用 DiskGenius 在我的 NVMe 末尾创建一个新分区。将分区克隆到其中,删除旧分区,然后重新激活。如果您想变得更奇特,您甚至可以将其“文件系统”设置为 27:Microsoft 恢复分区。它只是一个隐藏的 NTFS(但您将能够从磁盘管理中删除,所以要小心!)。您可以前后使用 `reagentc /info` 来确认。 (3认同)
  • 使用linux移动和调整恢复分区大小,然后分配驱动器号并使用vainMan答案中的单行:reagentc /setreimage /path N:\Recovery\WindowsRE (2认同)

Vai*_*Man 26

根据 MS 的文档capture-and-apply-windows-system-and-recovery-partitions,可以捕获恢复分区并将其应用于新分区。我已经让它在我的 Windows 10 PC 上工作了。

警告 1:在执行以下命令之前,您必须知道它们的作用。检查上面的链接和 MS 的关于diskpartdismreactorc的文档。

警告2:执行命令前请仔细检查磁盘号、分区号和卷号。

  1. 使用diskpart查找当前恢复分区,并分配一个驱动器盘符(例如O它):
DISKPART> list disk
DISKPART> select disk <the-number-of-disk-where-current-recovery-partition-locate>
DISKPART> list partition
DISKPART> select partition <the-number-of-current-recovery-partition>
DISKPART> assign letter=O
Run Code Online (Sandbox Code Playgroud)
  1. 从当前恢复分区创建映像文件:
Dism /Capture-Image /ImageFile:C:\recovery-partition.wim /CaptureDir:O:\ /Name:"Recovery"
Run Code Online (Sandbox Code Playgroud)
  1. 将创建的映像文件应用到N将成为新恢复分区的另一个分区(例如):
Dism /Apply-Image /ImageFile:C:\recovery-partition.wim /Index:1 /ApplyDir:N:\
Run Code Online (Sandbox Code Playgroud)
  1. 注册恢复工具的位置:
reagentc /disable
reagentc /setreimage /path N:\Recovery\WindowsRE
reagentc /enable
Run Code Online (Sandbox Code Playgroud)
  1. 使用diskpart隐藏恢复分区:
    • 对于 UEFI:
    DISKPART> select volume N
    DISKPART> set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac"
    DISKPART> gpt attributes=0x8000000000000001
    DISKPART> remove
    
    Run Code Online (Sandbox Code Playgroud)
    • 对于 BIOS:
    DISKPART> select volume N
    DISKPART> set id=27
    DISKPART> remove
    
    Run Code Online (Sandbox Code Playgroud)
  2. 重新启动计算机,现在新的恢复分区应该可以工作了
  3. (可选)删除旧的恢复分区:
DISKPART> select volume O
DISKPART> delete partition override
Run Code Online (Sandbox Code Playgroud)
  1. (可选)检查恢复分区是否正常工作:
    1. 显示当前状态:
      reagentc /info
      
      Run Code Online (Sandbox Code Playgroud)
    2. 指定 Windows RE 在系统下次启动时自动启动:
      reagentc /boottore
      
      Run Code Online (Sandbox Code Playgroud)
    3. 重新启动计算机并在 Windows RE 中执行操作(例如,输入 CMD 并运行一些工具)

  • 有一个微妙的问题,至少在 Windows 10 2004 中,这是我刚刚做的那个:当`reagentc /setreimage /path N:\Recovery\WindowsRE` 被执行时,它实际上*不会*改变` Windows RE 位置`。一旦原始分区 (O:\) 被删除,`reagentc` 报告`Disabled`。解决方法是在第 4 步之前运行“reagentc /disable”,或者在第 4 步之前执行第 7 步。 (3认同)
  • @JakeF 感谢您找到这个。在第 4 步之前添加了禁用步骤。 (3认同)
  • 我想发表很棒的评论,人们通常不关心这样的跟进,这让我很烦恼但是不鼓励 +1 和感谢,哈哈所以我想我可以添加一个建议 在第 2 步中,图像没有名称,如果没有名称,Windows 10 1904 会抱怨 很高兴看到有思想的人付出努力,记录世界! (2认同)
  • 很棒的指示!一条评论:按照上述说明操作后,尽管执行了“diskpart &gt; remove”步骤,但我的新恢复分区仍以驱动器“N”的形式出现在 Windows 资源管理器/此 PC 中。我发现有一个注册表项 `\DosDevices\N`: 在 `Computer\HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices` 下,这使得它回来了。删除该键修复了这个问题。YMMV; 注册表编辑注意事项适用。这在这里有详细说明:https://answers.microsoft.com/en-us/windows/forum/all/recovery-partition-came-up-and-i-want-to-hide-it/cf725a84-22da-4a6d -a8e5-df41263d3c49 (2认同)

小智 6

就像上面的人一样,我可以通过以下方式做到这一点

  1. 以管理员身份打开 Windows 命令提示符并运行 reagentc /info
  • 这显示恢复已启用,并给出了磁盘上的位置和 BCD 标识符。
  1. reagentc /disable
  • reagentc /info显示已禁用,没有位置且标识符为零
  1. 关闭并启动进入 Linux。使用 GParted 移动恢复分区(到左侧)。
  2. 关闭并重新启动进入 Windows。运行reagentc /enable(报告操作成功)
  • reagentc /info现在显示已启用、相同的位置和新的 BCD 标识符(一位数字不同)。

  • 请不要简单地重复别人给出的答案。每个答案只需给出一次。 (5认同)