应用对象
Windows 10

症状

升级到或更新Windows 10时,可能会遇到错误“我们无法更新系统保留分区”、错误代码0xc1900104或错误代码0x800f0922。 

原因

系统保留分区 (SRP) 可能已满。 系统保留分区 (SRP) 是硬盘驱动器上的一个小分区,用于存储 Windows 的启动信息。 某些第三方防病毒和安全应用会写入 SRP,并可以将其填满。

解决方法

警告:这些步骤很复杂,并且存在一些风险。 最好由具有使用命令行经验的高级用户完成此作。 如果在输入这些命令时出错,可能会使设备处于未启动状态,并且可能会丢失存储在设备上的数据。若要升级设备,需要使用下面的适当方法释放 SRP 上的 15MB 空间,然后再次尝试升级。 如果要更新Windows 10,则需要释放 13MB。首先,确定 SRP 是 GPT 还是 MBR 分区样式:

  1. 按 Windows 键 + R。在出现的“运行”窗口中,键入 diskmgmt.msc,然后按 Enter。

  2. 按住或右键单击包含 SRP 的磁盘 ((例如磁盘 0) ),然后选择“属性”。 性能

  3. 选择“卷”选项卡。

  4. 分区样式:行将显示 GUID 分区表 (GPT) 或主启动记录 (MBR) 。

其次,选择所需的方法:

  1. 搜索 cmd。 在结果中长按或右键单击“命令提示符”,然后选择“ 以管理员身份运行”。

  2. 在命令提示符下,键入 mountvol y: /s ,然后按 Enter。 这将添加 Y: 驱动器号以访问系统分区。

  3. 通过键入 Y : 切换到 Y 驱动器,然后按 Enter。 然后,通过键入 cd EFI\Microsoft\Boot\Fonts 导航到 Fonts 文件夹。 到该处后,键入 del *.* 以删除字体文件。 系统可能会询问你是否确定继续,按 Y ,然后按 Enter 继续。

  1. 按 Windows 键 + R。在出现的 “运行” 窗口中,键入 diskmgmt.msc ,然后按 Enter。

  2. 选择标记为 “系统保留”的分区。 长按或右键单击它。

  3. 选择“ 更改驱动器号和路径”。

  4. 选择 “添加”。

  5. 为驱动器号输入 Y

  6. 点按或单击"确定"。

  7. 在“开始”菜单中,搜索 cmd。 在搜索结果中右键单击“命令提示符”,然后选择“ 以管理员身份运行”。

  8. 在命令提示符下,键入 Y: 并按 enter 切换到该驱动器。 然后,通过键入 cd Boot\Fonts 导航到 Fonts 文件夹。

  9. 键入以下内容,然后按 Enter:takeown /d y /r /f 。

    注意:必须包含空格和“f”后面的句点,否则命令将无法正常工作。

  10. 通过键入以下内容并按 Enter,备份对驱动器的权限:

    icacls Y:\* /save %systemdrive%\NTFSp.txt /c /t

    注意:确保所有文件都显示为成功,没有显示为失败。

  11. 键入 whoami 并按 Enter,然后记录用户名。 键入以下命令,然后按 Enter:icacls 。 /grant <从 whoami>获取的用户名 :F /t

    注意:不要在用户名和“:F”之间放置空格,否则命令将不起作用。

  12. 请确保仍位于字体位置 (Y:\Boot\Fonts) ,如步骤 8 中所述。 然后,键入 del *.* 以删除字体文件。 系统可能会询问你是否确定要继续,按 Y ,然后输入 以继续。

还原权限

  1. 键入以下命令,然后按 Enter:

    icacls Y:\ /restore %systemdrive%\NTFSp.txt /c /t

  2. 可能会显示一条消息,指示某些文件在处理时失败-这是正常的,因为这些文件在备份后已被删除。

  3. 如果成功文件的数量为 none,则命令执行不正确;必须成功处理一些文件,然后才能继续作。

  4. 键入以下内容并按 Enter 将 ACL 调整回 System:

  5. icacls 。 /grant system:f /t

  6. 键入以下命令并按 Enter,将驱动器的所有者设置回 System:

    icacls Y: /setowner “SYSTEM” /t /c

  7. 返回磁盘管理刷新数据,以确认 SRP 现在是否具有更大的可用空间百分比。 如果是这样,此时可以删除驱动器号。

  8. 右键单击 “系统保留分区”。

  9. 选择“ 更改驱动器号和路径”。

  10. 选择“Y: 驱动器”。

  11. 选择“ 删除”。

  12. 单击“确定”。

  1. 搜索 cmd。 在结果中长按或右键单击 “命令提示符 ”,然后选择“ 以管理员身份运行”。r。

  2. 在命令提示符下,键入 mountvol y: /s ,然后按 Enter。 这将添加 Y: 驱动器号以访问系统分区。

  3. 键入 taskkill /im explorer.exe /f ,然后按 Enter。 然后键入explorer.exe 然后按 Enter 以在管理员模式下重启资源管理器。注意: 在此模式下,某些应用 ((如 OneNote) )将不会运行。

  4. 打开文件资源管理器,将 Y:\EFI\Microsoft\Boot\ 放在地址栏中,然后按 Enter。

  5. 选择要删除的语言文件夹并永久删除它们。 它们将由一组四个字母表示,并用连字符拆分。 例如,en-US 表示美国英语;de-DE 表示德语。

  6. 可选:删除 Y:\EFI\Microsoft\Boot\Fonts 处未使用的字体文件。

  7. 删除文件后,重新启动设备。 这将删除驱动器号,并将 explorer.exe 返回到正常模式。

这会使 SRP 的可用空间永久增加,但很小。  

  1. 删除语言文件夹

    1. Windows 键 + R。 在出现的 “运行” 窗口中,键入 diskmgmt.msc ,然后按 Enter。

    2. 选择标记为 “系统保留”的分区。 长按或右键单击它。

    3. 选择“ 更改驱动器号和路径”。

    4. 选择 “添加”。

    5. 为驱动器号输入 Y

    6. 点按或单击"确定"。

    7. “开始 ”菜单中,搜索 cmd。 在搜索结果中右键单击“ 命令提示符 ”,然后选择“ 以管理员身份运行”。

    8. 在命令提示符下,键入 Y: 并按 enter 切换到该驱动器。

    9. 键入以下内容,然后按 Enter:

      takeown /d y /r /f 。

      注意: 必须包含空格和“f”后面的句点,否则命令将无法正常工作。

    10. 通过键入以下内容并按 Enter,备份对驱动器的权限:

      icacls Y:\* /save %systemdrive%\NTFSp.txt /c /t

      注意: 确保所有文件都显示为成功,没有显示为失败。

    11. 键入 whoami 并按 Enter,然后记录用户名。 键入以下命令,然后按 Enter:icacls 。 /grant <从 whoami>:F /t 获取的用户名注意:不要在用户名和“:F”之间放置空格,否则命令将不起作用。

    12. 在 文件资源管理器 中打开 SRP 驱动器并访问 Boot 文件夹,选择要删除的语言文件夹并永久删除它们。 它们将由一组四个字母表示,并用连字符拆分。 例如,en-US 表示美国英语;de-DE 表示德语。

  2. 截断 NTFS 日志

    1. 首先检查 NTFS 日志的大小。 在命令提示符中,键入以下内容,然后按 Enter:chkdsk /L Y:

      • 如果大小小于 5000KB,则无需截断文件。

    2. 若要截断文件,请键入以下内容,然后按 Enter:chkdsk /L:5000 /X /F

    3. 返回到“磁盘管理”窗口。 点击或单击“ ”菜单,然后选择“ 刷新”。 确认 SRP 现在是否具有更大的可用空间百分比。 如果是这样,请长按或右键单击 “系统保留分区”, 然后选择“ 更改驱动器号和路径”。 选择 “Y: ”,然后选择 “删除”。

  3. 如果截断 NTFS 日志不会增加 SRP 中的可用空间,则调整 USN 日志的大小。

    1. 在命令提示符中,键入以下内容,然后按 Enter:fsutil usn queryjournal Y:

      • 这将以十六进制值显示大小。 将值转换为 decimal 并除以1048576,结果将以 MB 为单位。 (若要将十六进制转换为小数,请在 Windows 中打开计算器,选择“视图”菜单,然后选择“程序员”。 选择“十六进制”,输入“十六进制”值,然后选择“十二月)

      • 如果日志为 30MB 或更多,请继续截断日志。

    2. 通过键入以下命令并按 Enter:fsutil usn deletejournal /D /N Y 删除日记:

    3. 使用新的日志大小值:fsutil usn createjournal m=1500 a=1 Y 重新创建日志:

  4. 还原权限

    1. 键入以下命令,然后按 Enter:

      icacls Y:\ /restore %systemdrive%\NTFSp.txt /c /t

      • 可能会显示一条消息,指示某些文件在处理时失败-这是正常的,因为这些文件在备份后已被删除。

      • 如果成功文件的数量为 none,则命令执行不正确;必须成功处理一些文件,然后才能继续作。

    2. 键入以下内容并按 Enter 将 ACL 调整回 System:

      icacls 。 /grant system:f /t

    3. 键入以下命令并按 Enter,将驱动器的所有者设置回 System:

      icacls Y: /setowner “SYSTEM” /t /c

    4. 返回磁盘管理刷新数据,以确认 SRP 现在是否具有更大的可用空间百分比。 如果是这样,此时可以删除驱动器号。

    5. 右键单击 “系统保留分区”。

    6. 选择“ 更改驱动器号和路径”。

    7. 选择 “Y: 驱动器”。

    8. 选择“ 删除”。

    9. 单击“确定”。

这会增加 SRP 的可用空间,但会暂时增加。

  1. 确保具有格式化为 NTFS 的外部驱动器,其可用空间至少为 250MB。

  2. 按 Windows 键 + R。在出现的“运行”窗口中,键入 diskmgmt.msc,然后按 Enter。

  3. 选择“恢复分区”。 长按或右键单击它。

  4. 选择“更改驱动器号和路径”。

  5. 选择“添加”。

  6. 为驱动器号输入 Y。

  7. 点按或单击"确定"。

  8. 在“开始”屏幕中,从右侧向内轻扫并选择“搜索”超级按钮,或者仅开始键入以搜索 cmd。 在搜索结果中按住或右键单击“命令提示符”,然后选择“以管理员身份运行”。

  9. 在命令提示符下,键入 Y: 并按 enter 切换到该驱动器。

  10. 键入以下内容,然后按 Enter: takeown /d y /r /f 。注意 必须包含空格和“f”后面的句点,否则命令将无法正常工作。

  11. 键入 whoami 并按 Enter,然后记录用户名。 键入以下命令,然后按 Enter: icacls 。 /grant <whoami>:F /t 的用户名 注意:不要在用户名和“:F”之间放置空格,否则命令将不起作用。

  12. 该命令完成后,键入或粘贴以下内容,然后按 Enter:

    attrib -s -r -h Y:\Recovery\WindowsRE\winre.wim

  13. 打开文件资源管理器,并记下 (这些说明的其余部分所使用的外部驱动器的驱动器号,我们将使用示例 F: - 在这些步骤中看到 F:,它实际上意味着外部驱动器的驱动器号) 。

  14. 在命令提示符中,键入以下内容,然后按 Enter:

    mkdir F:\Recovery\WindowsRE

  15. 接下来,键入以下内容,然后按 Enter:

    xcopy Y:\Recovery\WindowsRE\winre.wim F:\Recovery\WindowsRE\winre.wim /h

  16. 通过输入以下命令,然后按 Enter 来映射新路径:

    C:\Windows\System32\Taricec /SetREImage /Path F:\Recovery\WindowsRE /Target C:\Windows

  17. 验证复制成功后,键入以下命令,然后按 Enter:

    del Y:\Recovery\WindowsRE\winre.wim /F

  18. 返回到“磁盘管理”窗口。 点击或单击“作”菜单,然后选择“刷新”。 确认 SRP 现在是否具有更大的可用空间百分比。 如果是,请继续升级。

  19. 升级完成后,将 wim 文件移回恢复分区并重新映射位置:

    1. 在命令提示符中,键入以下内容,然后按 Enter:

      xcopy F:\Recovery\WindowsRE\winre.wim Y:\Recovery\WindowsRE\winre.wim /h

    2. 重新映射到原始路径。 键入以下内容,然后按 Enter:

      C:\Windows\System32\Taricec /SetREImage /Path Y:\Recovery\WindowsRE /Target C:\Windows

  20. 返回到“磁盘管理”窗口。 长按或右键单击“恢复分区”,然后选择“更改驱动器号和路径”。 选择“Y:”,然后选择“删除”。

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。