修复 WinRE 环境

本文最后更新于 10 个月前,文中所描述的信息可能已发生改变。

Windows-10 KB5034441 更新失败,但是之前懒得搞,最近看着更新图标一直在托盘烦人,于是在今天决定解决它,最终在查找一众资料后,通过修复 WinRE 解决问题。于是总结了下经验,不保证所有情况都可以。

我电脑的问题

适用情况:UEFI 引导,有恢复分区,容量足够。

我是一块硬盘,之前扩容 C 盘,把 C,D 盘中间的一个分区删了,导致在更新的时候虽然 D 盘后面还有一个 1000MB 恢复分区,但是由于缺少文件最终还是失败。

解决步骤

准备 WinRE 环境文件

可以从其他电脑拷一份,我是从虚拟机拷的。

为恢复分区分配驱动器号

  • win+r 输入 cmd,同时按住 ctrl+shift+enter 打开管理员模式,输入diskpart打开 DiskPart 工具。
  • 首先,检查磁盘分区样式是 GUID 分区表 (GPT) 还是主启动记录 (MBR)。 为此,请运行 list disk。 检查 "Gpt" 列中是否有星号字符 (*)。如果有星号字符(*),则驱动器为 GPT。否则,驱动器为 MBR。
  • 列出电脑中的磁盘:
cmd
DISKPART> list disk

磁盘 ###   状态           大小     可用     Dyn  Gpt
--------  -------------  -------  -------  ---  ---
磁盘 0     联机           476 GB      0 B        *
  • 选择主硬盘:
cmd
DISKPART> sel disk 0
  • 查看分区:
cmd
DISKPART> list partition

  分区 ###       类型                大小      偏移量
  -------------  ----------------   --------  --------
  分区      1    系统                 260 MB   1024 KB
  分区      2    保留                  16 MB    261 MB
  分区      3    主要                 100 GB    277 MB
  分区      4    主要                 375 GB    100 GB
  分区      5    恢复                1000 MB    475 GB
  • 选择需要驱动器号的分区:(我这里恢复分区是5)
cmd
DISKPART> sel partition 5
  • 使用 assign letter 命令将一个字母分配给该分区。 例如,应用于对象的(之后,你可以在资源管理器中看到该磁盘)
cmd
DISKPART> assign letter=S
  • 输入 exit 退出 diskpart

拷贝 Recovery 文件夹

(隐藏文件夹,打开查看隐藏文件也看不到,所以用命令去除隐藏属性,方便拷贝)

cmd
C:\Windows\system32> s:
cmd
S:\> attrib -h -s Recovery

实机修复 WinRE

  • 重复上述分配驱动器号步骤,为实机恢复分区设置驱动器号
  • 将 Recovery 复制到恢复分区磁盘
  • 恢复 Recovery 文件夹属性
cmd
S:\> attrib +h +s Recovery
  • 注册 WinRE 工具镜像
cmd
reagentc /setreimage /path S:\Recovery\WindowsRE
  • 准备 DiskPart 脚本以标识恢复分区并取消驱动器号 注意修改磁盘号和分区号,适用于UEFI. 保存为 txt 文件.(名字随意,路径随意,好输入就行)

TIP提示

适用于 UEFI 引导, BIOS 请查看参考文章第二篇自行替换.

txt
rem == HideRecoveryPartitions-UEFI.txt
select disk 0
select partition 5
remove
set id=de94bba4-06d1-4d40-a16a-bfd50179d6ac
gpt attributes=0x8000000000000001
rem == If Push-button reset features are included, add the following commands:
rem    select partition 5
rem    remove
rem    set id=de94bba4-06d1-4d40-a16a-bfd50179d6ac
rem    gpt attributes=0x8000000000000001
list volume
  • 运行 diskpart 脚本以标识并隐藏恢复分区:
diskpart /s C:\HideRecoveryPartitions-UEFI.txt
  • 启用 WinRE
cmd
reagentc /enable
  • 到这就可以了

参考文章

网址收藏夹
指南