Управление средой восстановления Windows (WinRE)

WinRE

В статье про траблшутинг установки обновлений в Windows Server я затронул тему, что одной из проблем которая может вызывать ее, это нехватка места в разделе среды восстановления Windows или как она еще сокращенно называется WinRE.В данной статье я хочу показать вам команды и различные сценарии, расширения, удаления, восстановления включения и выключения данной функции. Уверен, что благодаря данной информации вы в будущем более уверено сможете решать различные ошибки обновления Windows, которые будут всегда, пока есть данная система.

Что такое WinRE?

WinRE (Windows Recovery Environment) — это специальная среда восстановления, основанная на предустановленной среде Windows PE (Windows Preinstallation Environment). Ее главная задача — диагностика и устранение серьезных неполадок, которые мешают нормальной загрузке основной операционной системы Windows.

Проще говоря, это "скорая помощь" для вашего компьютера, всегда готовая запуститься, когда сама Windows уже не может.

Увидеть вы ее можете чаще всего, когда ваша система не загружается, и именно Windows Recovery Environment позволяет вам произвести дополнительные действия, чтобы это исправить.

  1. Восстановление при загрузке (Startup Repair): Автоматически сканирует и исправляет распространенные проблемы, мешающие загрузке Windows (например, поврежденные файлы загрузчика, BCD, отсутствующие или поврежденные системные файлы).

  2. Восстановление системы (System Restore): Позволяет откатить состояние системных файлов, реестра и установленных программ к предыдущей точке восстановления, созданной когда-то работающей системой.

  3. Восстановление образа системы (System Image Recovery): Можно полностью восстановить весь раздел Windows из резервной копии образа системы, созданной ранее с помощью встроенных или сторонних средств.

  4. Командная строка (Command Prompt): Предоставляет доступ к инструментам командной строки для ручного исправления проблем.

  5. Вернуться к предыдущей версии (Uninstall Updates / Go back to the previous build): Дает возможность удалить последние обновления Windows или откатиться к предыдущей версии ОС (например, после неудачного обновления до новой сборки).

Windows Recovery Environment

Как попасть в WinRE

  • Из работающей Windows: Для примера приведу, где это можно найти в Windows 11 23H2, "Пуск — Параметры — Система — Восстановление — Расширенные параметры запуска — Перезагрузить сейчас"Запуск WinRE из Windows 11

  • С установочного носителя: Загрузка с флешки или DVD с Windows, выбор языка и нажатие "Восстановление системы".Начать установку Windows 11 с флешки

  • Через меню загрузки F8: В Windows 7/8/10 иногда можно было вызвать меню дополнительных вариантов загрузки клавишей F8 при включении ПК.загрузка последней удачной конфигурации-01

  • Через командную строку, написав там shutdown /f /r /o /t 0

Напомню, что именно F8 позволяла вам попасть в дополнительные варианты загрузки, где так же присутствовал WinRE. Я приводил пример, когда мне требовалось вернуть последнюю работающую конфигурацию.

Размер WinRE для разных ОС

Размер раздела WinRE не является строго фиксированным и может немного варьироваться в зависимости от обновлений и редакции ОС. Однако Microsoft дает четкие рекомендации по минимальному размеру раздела, чтобы в него гарантированно поместился образ winre.wim.

Операционная системаРекомендуемый размер раздела WinREПримечания
Windows 7100 МБПервая система, в которой WinRE появился в современном виде.
Windows 8 / 8.1300 МБРазмер увеличился из-за растущего функционала.
Windows 10500 МБНачиная с версии 1709, размер был увеличен. Для ранних сборок (до 1709) хватало и 300 МБ.
Windows 11~1000 МБ (1 ГБ)Требует больше места из-за более крупного образа восстановления и дополнительных компонентов. Для некоторых чистых установок может хватить и ~700 МБ, но 1 ГБ — безопасный размер.
Windows Server 2008 R2100 МБАналогично Windows 7.
Windows Server 2012 / 2012 R2300 МБАналогично Windows 8/8.1.
Windows Server 2016 / 2019500 МБАналогично Windows 10.
Windows Server 2022~1000 МБ (1 ГБ)Аналогично Windows 11.

Это размеры, которые Microsoft рекомендует зарезервировать под раздел. Фактический размер файла winre.wim внутри этого раздела обычно меньше (например, в Windows 10 он около 250-350 МБ). Но раздел делается с запасом для будущих обновлений и возможного добавления драйверов или средств диагностики.

Какие бывают проблемы с WinRE

  1. Отсутствие раздела WinRE: Самая частая проблема. Раздел мог быть удален пользователем при работе с дисками (например, в DiskPart), и я такое делал когда не мог расширить том. Из-за действий вредоносного ПО.

  2. Повреждение файлов в образе WinRE: Файлы внутри раздела восстановления могли быть повреждены.

  3. Повреждение конфигурации BCD: Система не знает, где искать среду восстановления, даже если она на месте.

  4. Недостаточно места на диске: Для работы некоторых функций требуется свободное место на системном диске, очень частая ошибка, когда не устанавливается обновление в Windows. На WinRE недостаточно свободного пространства. Например, недавняя у меня ошибка 0x8024200bошибка 0x8024200b

  5. Аппаратные проблемы: Если причина сбоя — неисправный жесткий диск или оперативная память, WinRE может не запуститься или работать нестабильно.

Как посмотреть наличие раздела WinRE и его размер

Самый простой метод посмотреть есть у вас раздел WinRE или нет, это воспользоваться оснасткой "Управление дисками". Я буду показывать на примере Windows 11, но в современных системах это все одинаково. Щелкните правым кликом по кнопке пуск и из контекстного меню выберите пункт "Управление дисками".

Запуск Управление дисками в Windows 11

Либо самый универсальный метод, это запустить окно выполнить, через нажатие клавиш WIN и R одновременно. Далее введя там diskmgmt.msc. Другие полезные универсальные команды ищите по ссылке.

diskmgmt.msc

В обоих случаях у вас должна открыться вот такая оснастка. Обратите внимание, что раздел восстановления (WinRE) в большинстве случаев будет справа, это сделано, чтобы его проще было расширять. В моей Windows 11 он составляет 866 МБ, это шло по умолчанию.

Раздел восстановления в Windows 11

или через PowerShell

Get-Disk (Смотрим список физических дисков, находим, тот чт ос системой)
Get-Partition -DiskNumber 1 (Где я беру список разделов на диске 1, обратите внимание, что у дисков нумерация идет от 0)

Как узнать размер WinRE через PowerShell

Если вы хотите копнуть еще дальше, то можно посмотреть содержимое данного раздела. По умолчанию у него нет букв, поэтому вы на него не зайдете. Поэтому в PowerShell вводим:

Set-Partition -DiskNumber 1 -PartitionNumber 4 -NewDriveLetter R

Get-ChildItem R:\Recovery\ -Hidden -System -Recurse

Тут будут три файла:

  • boot.sdi - Файл boot.sdi используется как загрузочный RAM-диск (диск в оперативной памяти). Когда загружается среда восстановления (winre.wim), ей нужен диск, на который можно будет распаковать себя и работать. Файл boot.sdi предоставляет как раз эту виртуальную файловую систему в памяти. Проще говоря, winre.wim монтируется и запускается внутри boot.sdi.
  • ReAgent.xml - Этот файл содержит настройки и пути, которые указывают Windows, где именно искать среду восстановления. В нем прописаны: Расположение файла winre.wim. Индекс образа внутри WIM-файла (если их несколько). Другие флаги и параметры, связанные с работой инструментов восстановления.
  • winre.wim - Когда вы запускаете компьютер в режиме "Автоматическое восстановление", "Восстановление при загрузке" или вручную выбираете "Поиск и устранение неисправностей" в меню загрузки, именно этот образ загружается и предоставляет вам инструменты для ремонта. К данному файлу обращается команда reagentc.

Просмотр содержимого WinRE

Незабывайте удалить у раздела Windows Recovery Environment букву после изучения.

Remove-PartitionAccessPath -DiskNumber 1 -PartitionNumber 4 -AccessPath "R:"

или так

# Сначала посмотрим доступные диски
Get-Disk
Get-Partition

# Удаляем букву диска (замените параметры на свои)
$diskNumber = 1
$partitionNumber = 4
$driveLetter = "R"

try {
Remove-PartitionAccessPath -DiskNumber $diskNumber -PartitionNumber $partitionNumber -AccessPath "$driveLetter`:"
Write-Host "Буква диска $driveLetter успешно удалена" -ForegroundColor Green
}
catch {
Write-Host "Ошибка: $($_.Exception.Message)" -ForegroundColor Red
}

Удаление буквы на разделе WinRE

Как расширить раздел среды восстановления Windows (WinRE)

Выше я вам описал, что если на разделе восстановления WinRE недостаточно свободного места, в ряде случаев ваша система не сможет обновляться, например случай с ошибкой 0x800F081F. Там проблема оказалось в том, что ранее у меня была операционная система Windows Server 2019 и администратор поверх нее сделал обновление до Windows Server 2022, но проблема заключалась в том, что как вы видели из таблицы размеров WinRE, у 2019 версии это 500 МБ, а для 2022 уже хорошо бы иметь под 1 ГБ.

Размер WinRE в Windows Server 2022

давайте я покажу, как вы можете увеличить раздел восстановления, это делается быстро.

Очень важно, что тут вы сами на себя берете все риски, если вдруг, что-то сделаете не так. Так что если у вас это виртуальная машина, обязательно сделайте снапшот. Если физический компьютер или сервер, то точку восстановления.

Запустите командную строку в режиме администратора. Далее выведем статус работы WinRE, проверим на каком разделе она располагается, эти данные нам будут очень важны. Вводим команду:

reagentc /info

Windows Recovery Environment (Windows RE) and system reset configuration
Information:

Windows RE status: Enabled
Windows RE location: \\?\GLOBALROOT\device\harddisk0\partition4\Recovery\WindowsRE
Boot Configuration Data (BCD) identifier: d4b29609-d4c6-11ee-864e-9a436ff461d1
Recovery image location:
Recovery image index: 0
Custom image location:
Custom image index: 0

В выводе вы должны увидеть состояние работы Windows RE, в моем примере данная функция активна, об этом говорит статус "Enable", располагается на 4 разделе (Partition4). Boot Configuration Data (BCD), это уникальный идентификатор (GUID) записи в загрузочном хранилище данных (BCD), которая отвечает за загрузку WinRE.

Вывод reagentc info

Теперь, что бы расширить раздел Windows Recovery Environment нам необходимо его отключить. Для этого выполняем команду.

reagentc /disable

Отключение WinRE в cmd

Далее вступает в силу старая, добрая утилита Diskpart, например я вам рассказывал, как с ее помощью сделать загрузочную флешку. Пишем ее в командной строке и нажимаем Enter,

Diskpart

Далее мы смотрим список физических дисков, обычно диск с системой имеет номер "0", он должен у вас совпасть с номером "Recovery image index", который вы получили ранее.

list disk

Теперь выберем диск с Windows, для это выполняем команду ("0" это номер диска, который мы ранее идентифицировали, как диск с Windows):

sel disk 0

Теперь получим список разделов, которые есть на данном диске, для этого есть такая команда:

list part

Обратите внимание, что номер раздела, должен быть таким же, как мы получили на первом шаге, перед отключением Windows Recovery Environment. В моем примере, это Partition 4.

Просмотр раздела WinRE в cmd

Выбираем раздел Partition 3 (Та на котором у нас WWindows) он имеет статус Primary и самый объемный:

sel part 3

Должен быть статус "Partition 3 is now the selected partition".

Теперь давайте отделим 750 МБ дискового пространства от раздела, которые располагается левея от WinRE. Для этого выполните команду:

shrink desired=750 minimum=750

Тут стоит отметить, что команда может выполнятся минут 5, постарайтесь ей не мешать и не переживайте. Вы должны получить статус "DiskPart successfully shrunk the volume by: 750 MB".

shrink desired в cmd

Чтобы вы понимали, что вы только что выполнили, это проще показать на оснастке "Управление дисками". У вас слева от раздела восстановления располагается раздел с системой. Мы взяли и отняли от него 750 МБ, чтобы их отдать разделу WinRE.

Высвобожденное место для WinRE

Удаление раздела WinRE

Так как свободное пространство у нас находится левее чем раздел с Windows Recovery Environment, то мы не можем его задействовать. Чтобы это исправить нам нужно удалить раздел восстановления, не переживайте мы его вернем чуть позже. Выбираем раздел Partition 4, на нем как раз Recovery, это мы выяснили выше.

sel part 4

Далее пишем команду удаления

delete partition override

Если вывести теперь список разделов, то вашего Partition 4 уже не будет.

Удаление раздела WinRE в cmd

Теперь картина с разделами выглядит так, что у вас в правой области есть 1,2 ГБ для создания раздела восстановления Windows RE.

Свободное пространство для создания WinRE

Восстановление (Создание) нового раздела WInRE

Теперь перед созданием раздела WinRE, нам нужно определить тим загрузчика GPT или MBR. Для этого в оснастке "Управление дисками" откройте свойства вашего системного диска. Далее вкладка "Volumes (Тома)". Тут найдите поле "Partition Style (Стиль раздела)", в моем примере это GPT, как и на большинстве современных систем.

Вас может заинтересовать, как преобразовать в GPT-диск

Просмотр загрузчика у диска

в командной строке так же можно посмотреть разметку раздела. Для этого в discpart просматриваем диски и выбираем то, что с операционной системой.

list disk

sel disk 0

Обратите внимание, что звездочка в * Disk 0, означает, что это GPT.

Определение стиля разметки раздела в cmd

Раз у меня структура GPT, то я выполняю вот такую команду:

create partition primary id=de94bba4-06d1-4d40-a16a-bfd50179d6ac

gpt attributes=0x8000000000000001

Если стиль разметки MBR, то команда будет такой create partition primary id=27

format quick fs=ntfs label="WinRE"

Создание WinRE раздела в cmd

Проверим, что у нас появился том WinRE, для этого запустите:

list vol

У тома будет файловая система NTFS, ваша метка WinRE и размер 1,2 ГБ. (* Volume 6 WinRE NTFS Partition 1274 MB Healthy Hidden)

Если посмотреть разделы, то он так же должен остаться Partition 4 с типом Recovery.

Успешно созданный раздел WinRE

exit

В оснастке управления дисками должно быть вот так. Считаю, что успешно расширил раздел c Windows RE

Успешно расширенный раздел WinRE

Включение раздела Windows RE

Теперь нам нужно заново включить раздел восстановления WinRE, для этого в командной строке введите:

reagentc /enable

Повторно запросите статус, чтобы удостовериться, что все работает штатно.

reagentc /info

Повторное включение WinRE

Далее я советую перезагрузить систему.

Не включается WInRE "REAGENTC.EXE: The Windows RE image was not found."

На компьютерах или серверах, при попытке включить WinRE вы можете получить ошибку:

REAGENTC.EXE: The Windows RE image was not found.
REAGENT.EXE: образ среды восстановления Windows не найден.

The Windows RE image was not found

Она может быть связана с двумя причинами:

  1. Первая у вас нет совсем раздела восстановленияThe Windows RE image was not found
  2. Неправильный путь в загрузчике BCD или поврежденный файл. Выполните команду:

bcdedit /enum all

Около середины, там будет раздел Windows Boot Loader, тут нужно посмотреть (запомните значение GUID, там они должны быть одинаковые):

  • Identifier - {45f1438a-8b90-11ec-9072-aaba0d97941c}
  • Device - ramdisk=[unknown]\Recovery\WindowsRE\Winre.wim,{45f1438a-8b90-11ec-9072-aaba0d97941c}
  • osdevice
  • recoverysequence - {45f1438a-8b90-11ec-9072-aaba0d97941c}

bcdedit enum all

Как видите в строке Device указывается путь до win образа среды восстановления. В моем примере неизвестный диск, что говорит, о том, что его нет. Поэтому тут его нужно создать по инструкции выше. Если же у вас диск есть, но WinRE не работает, я советую как описывал выше изучить ваши разделы на дисках и проверить есть там среди них WinRE и под каким GUID. Если данный GUID отличается от того. что указан в BCD загрузчике, то это нужно изменить.

Так назначив WinRE букву я попытался посмотрет ьего содержимое, но там ничего не было. Хотя я дела все через Diskpart. В таких случаях вас может выручить загрузочный диск с таким же дистрибутивом как ОС на которой нужно вернуть раздел восстановления.

На WinRE нет загрузчика

На загрузочном диске вам необходимо найти файл install.wim либо install.esd. Найти ег оможно по пути:

D:\sources\install.wim

Далее вам его нужно открыть с помощью 7-ZIP.

Открытие install.wim

Если у вас на данном диске несколько редакций, то нужно будет выбрать соответствующую вашей версии. В файле с форматом xml можно найти подсказку, открыв его. В моем примере мне нужно восстановить WinRE для Windows Server 2021H1 Standard, поэтому я беру второй индекс.

ПРосмотр индекса системы в установочном ISO

Перейдите в папку:

E:\sources\install.wim\2\Windows\System32\Recovery (2 это номер индекса, если редакций несколько)

Тут вам нужно будет сохранить два файла ReAgent.xml и Winre.wim.

Копирование файлов WinRe

Нам еще остается найти файл boot.sdi, по пути:

E:\sources\install.wim\2\Windows\Windows\Boot\DVD\EFI

Так же выгрузите его из образа Windows.

Сохранение файла boot.sdi

Теперь, когда у вас на руках есть все три нужны файла, вам необходимо перейти на тот раздел восстановления, где нехватало данных, у меня это диск с буквой R. Создайте там структуру папок:

R:\Recovery\WindowsRE

Далее скопируйте в туда 3 файла.

КОпирование файлов на раздел WinRE

Теперь в командной строке в режиме администратора введите:

reagentc /setreimage /path \\?\GLOBALROOT\device\harddisk0\partition4\Recovery\WindowsRE

Если команда выполнилась успешно, то вы молодец и почти все завершили. Теперь остается только включить функционал восстановления системы и проверить его состояние.

Успешное включение WinRE

Провери еще раз, то в загрузчике все отображается в пункте recoverysequence.

Успешное восстановление WinRE

Дополнительные ссылки

  • https://support.microsoft.com/en-us/topic/kb5028997-instructions-to-manually-resize-your-partition-to-install-the-winre-update-400faa27-9343-461c-ada9-24c8229763bf
  • https://www.outsidethebox.ms/22242/
Оцените статью
Настройка серверов windows и linux
Добавить комментарий