Не бойся идти не туда – бойся никуда не идти.
(Д. Емец)


вторник, 17 мая 2011 г.

Восстановления пункта «Устранение неполадок компьютера» в меню дополнительных вариантов загрузки Windows 7

Обычно, чтобы загрузиться в среду восстановления с жесткого диска, нужно после включения компьютера нажать функциональную клавишу F8 и в открывшемся меню выбрать пункт «Устранение неполадок компьютера».
Рисунок  1 – вход в среду восстановления из меню дополнительных вариантов загрузки
Однако вследствие различных факторов, например, после операции восстановления запуска, этот пункт из меню дополнительных вариантов может исчезнуть.
Рисунок 2 – Отсутствие пункта "Устранение неполадок компьютера"

Каким образом происходит загрузка в среду восстановления?

Во-первых, на системном разделе должны находиться файлы самой среды восстановления (вместо буквенно-цифрового кода вида XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX я буду использовать его условное обозначение RE_GUID):

  • Файл, содержащий саму среду восстановления "C:\Recovery\RE_GUID\winre.wim";
  • Файл, обеспечивающий создание RAM-диска, на котором среда восстановления разворачивается "C:\Recovery\RE_GUID\boot.sdi"
Во-вторых, хранилище загрузки (BCD) должно содержать запись загрузки в среду восстановления со всеми необходимыми атрибутами и запись параметров RAM-диска.
В-третьих, запись должна быть активирована.



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

Анализ BCD

Как я говорил выше, для успешной загрузки в среду восстановления BCD должно содержать запись о ней. Загрузка Windows RE, как и загрузка самой операционной системы, относятся к одному типу, поэтому их параметры аналогичны. В этом вы можете убедиться, выполнив в командной строке:

bcdedit /enum osloader

Особенностью же является то, что Windows RE разворачивается на RAM-диске (в официальной компьютерной терминологии – электронный диск).
Чтобы увидеть запись загрузки в среду восстановления и параметры RAM-диска, нужно отобразить все параметры BCD. Для этого запустите командную строку и выполните:

bcdedit /enum all


Рисунок 3 – параметры записи загрузки Windows RE и ее электронного диска в BCD
На рисунке 3 показана запись загрузки в среду восстановления (обозначена цифрой 1) и параметры ее RAM-диска. Обратите внимание, что в параметрах device и osdevice присутствует ссылка на идентификатор электронного диска (обозначен цифрой 3). Это очень важно, так как при неправильно указанных значениях вы не сможете загрузиться в Windows RE с жесткого диска.
Также отличает эту запись наличие параметра “winpe” (на рисунке 3 обозначен цифрой 5). Его значение – “yes”.

Активация среды восстановления.

Для этого воспользуемся утилитой командной строки REAgentC.exe.
В командной строке операционной системы, запущенной с правами администратора, необходимо выполнить две команды

REAgentC.exe /disable
REAgentC.exe /enable

Первая команда отключает любую активную среду Windows RE, сопоставленную с работающей системой Windows 7. Ее необходимо выполнить для сброса ранее сохраненных настроек. Вторая, выполняемая без дополнительных параметров, включает среду Windows RE, находящуюся в каталоге Recovery в корне системного раздела.
Выполните команду 

REAgentC.exe /info

И станет очевидно, что утилита обнаружит файл Winre.wim в каталоге \\?\GLOBALROOT\device\harddisk0\partition2\Recovery\RE_GUID, что соответствует месту его фактического расположения.
Рисунок 4 – результат выполнения команды REAgentC /info

REAgentC.exe и BCD

Рассмотрим, какие изменения происходят в BCD при применении утилиты REAgentC.exe. На рисунке 5 представлена часть содержимого BCD после восстановления загрузочной записи операционной системы с помощью команды

Bootrec /rebuildbcd

выполненной в среде восстановления при загрузке с диска восстановления Windows 7
Рисунок 5 – запись загрузки операционной системы после восстановления

После применения утилиты REAgentC.exe появились значительные изменения:
Рисунок 6 – изменения в BCD после применения утилиты REAgentC

  • В записи загрузки операционной системы появились параметры recoverysequence со значением, равным имени каталога расположения файла Winre.wim (на рисунке 6 обозначен цифрами 1 и 5), и recoveryenable co значением yes (обозначен цифрой 2);
  • Блок записи загрузки в среду восстановления (обозначен цифрой 3). Обратите внимание, что значения идентификатора записи загрузки в Windows RE и параметра recoverysequence равны;
  • Блок записи параметров RAM-диска (обозначен цифрой 6). Заслуживает внимания равенство значения идентификатора, обозначенного цифрой 4, и дополнительного параметра загрузки в значении параметров device и osdevice в блоке записи загрузки в Windows RE.
Вам осталось только перезагрузится и проверить наличие пункта «Устранение неполадок компьютера» в меню дополнительных вариантов загрузки.

Подводные камни

Применение утилиты REAgentC.exe значительно облегчает процесс восстановления утерянной возможности загрузки в среду восстановления. Однако есть небольшое неудобство. Если такая запись в BCD уже существует, то утилита пропишет еще одну запись со всеми необходимыми атрибутами (в том числе и параметрами RAM-диска). Отличатся от существующих эти записи будут одной цифрой в RE_GUID, а вот путаница в BCD будет большая.
Способы разрешения:
Первый: перед применением утилиты удалить имеющиеся записи, касающиеся загрузки в среду Windows RE – саму запись (ее идентификатор обозначен цифрой 1 на рисунке 5 – WinRE_GUID) и параметры RAM-диска (его идентификатор обозначен цифрой 4 на рисунке 5 – WinRE_RAMDISK_GUID).

Bcdedit /delete {WinRE_GUID}
Bcdedit /delete {WinRE_RAMDISK_GUID}

Второй: отказаться от автоматического добавления записей загрузки операционной системы и загрузки в среду восстановления

Рисунок 7 – отказ от внесения изменений в BCD с помощью программы восстановления загрузки.
и вручную выполнить сначала восстановление загрузки операционной системы с помощью утилит Bootrec или BCDboot, а затем, загрузившись в операционную систему, загрузку в среду восстановления.

Заключение

Если на компьютере установлено несколько систем Windows 7, описанную выше процедуру восстановления нужно провести в каждой из операционных систем, так как среда восстановления «привязывается» к конкретной системе.

9 комментариев:

  1. О! Класс, статья мне пригодилась, чтобы это долбаное восстановление отключить

    ОтветитьУдалить
  2. Здравствуйте. А у меня ситуация противоположная - имеется пункт для загрузки, но директория C:\Recovery отстутствует. Как её можно восстановить ?

    ОтветитьУдалить
    Ответы
    1. Для решения вашего вопроса комментарии - не очень удобное место, - нужно много дополнительной информации. Зарегистрируйтесь на http://forum.oszone.net, создайте тему - попробуем разобраться.

      Удалить
  3. большое спасибо.Статья очень помогла.

    ОтветитьУдалить
  4. спасибо просто спасла статья!!!!!!!!!!

    ОтветитьУдалить
  5. Не получается , пишу эти каманды в командной строке
    Пишет : не является внутреней или внешней командой , в правильности написания уверен , пишу точь в точь как в статье

    ОтветитьУдалить
    Ответы
    1. Выполняете в командной строке с правами администратора?

      Удалить
  6. Здравствуйте!У меня win 7 не запускается и нет меню устранения неполадок что делать?

    ОтветитьУдалить