НЕ ПРОПУСТИТЬ ИНТЕРЕСНОЕ

Свежие обсуждения

Sorry. No data so far.

Решение проблем с загрузкой Windows на уровне системного хранилища конфигурации загрузки BCD

Здравствуйте уважаемые читатели блога www.ithabits.ru. Поговорим сегодня о том, как с помощью утилит, стандартно входящих в состав операционной системы Microsoft, просто и быстро решить проблемы с загрузкой Windows 7 / 8.1. Проблемы с загрузкой могут возникнуть из-за ошибок или неправильной настройки системного хранилища  конфигурации загрузки BCD (Boot Configuration Data).

Тему этой статьи даже не подсказали, а определили некоторые читатели, неожиданно неудачно поэкспериментировавшие с двойной загрузкой ОС после патча ядра 32-разрядных Windows 7 / Windows 8 и затем обратившиеся ко мне за помощью.

Сегодня в программе:

Как я уже неоднократно говорил ранее, описанные на страницах блога варианты патча ядра Windows x86 для снятия 4 ГБ ограничения доступной физической памяти компьютера, как первый, так и второй, хороши тем, что они абсолютно безопасны. По сути дела в системе как таковой они ничего не меняют – лишь добавляются новый вариант ядра, новый загрузчик и в BCD прописывается новый альтернативный вариант загрузки ОС с сохранением исходного.

Если в системе присутствуют “неправильные” драйверы устройств, которые не умеют работать в режиме PAE без ограничения  доступной памяти на уровне 4 ГБ, то, к сожалению, остается лишь вернуться к исходной точке и искать другие варианты задействования «лишней» RAM.

Проще всего сделать это с помощью msconfig. Нужно запустить утилиту из командной строки от имени администратора и удалить с ее помощью альтернативный вариант загрузки ОС из меню.

Как оказалось, кое кто с этой задачей не справился. Каким-то непостижимым образом народ умудряется или удалить именно исходный вариант загрузки Windows и оставить новый неработоспособный, или и вовсе испортить BCD. О том, что “до” никто из них не сделал резервную копию содержимого системного хранилища, думаю, можно не говорить.

Windows boot repair tools

Итак, будем решать проблемы с загрузкой Windows. Это не сложно. Главное не бояться и не паниковать в случае возникновения неполадок.

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

Windows boot repair utils

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

Процесс загрузки компьютера можно представить себе как своеобразную эстафету. “Старт” находится в BIOS компьютера, затем “эстафетная палочка” последовательно переходит к диску, дисковому разделу и менеджеру загрузки ОС. “Финишем” можно считать завершение загрузки ядра операционной системы.

Сегодня нас будет интересовать устранение неполадок с загрузкой ОС Windows, возникших из-за ошибок в BCD. То есть, на уровнях, начинающихся с номера “4” в представленной выше таблице. Условно можно назвать эти уровни “верхними”.

Восстановление данных конфигурации загрузки BCD в Windows 7 / 8 с использованием встроенных средств

Windows 7 / 8 имеет в своем составе не только набор консольных команд для устранения причин, мешающих нормальной загрузке и работе системы, но и специальную Среду восстановления Windows.

Среда восстановления Windows

Среда восстановления Windows представляет собой небольшую по размеру операционную систему, в состав которой входит широкий набор различных утилит, необходимых для решения возникших неполадок.

Знакомые по предыдущим публикациям команды, такие как BCDedit, BCDboot и DiskPart, доступны и в нормально загруженной системе и в Среде восстановления Windows.

А вот такие средства, как Bootrec и Bootsect, больше ориентированные на работу с MBR (Master Boot Record — главная загрузочная запись) и PBS (Partition Boot Sector — загрузочный сектор активного раздела), отвечающих за загрузку на более ранних этапах, доступны только в среде восстановления.

Начиная с Windows 7 среда восстановления системы может быть загружена не только с установочного диска, как это было в Windows Vista, но и непосредственно с жесткого диска компьютера. Загрузка среды восстановления осуществляется из образа Winre.wim.

В Windows 7, установленной стандартным образом, этот файл расположен в корне загрузочного диска в скрытой системной папке C:\Recovery\<36-символьный номер>.

Имя конечной папки соответствует указателю идентификатора {ID} записи recoverysequence в меню загрузки BCD.

В Windows 8 файл Winre.wim был перенесен в папку Recovery\WindowsRE на первом небольшом разделе “Зарезервировано системой”. Этим объясняется тот факт, что в Windows 8 величина этого раздела увеличена до 350 МБ.

Если при старте / перезагрузке компьютера возникли неполадки, препятствующие нормальной загрузке Windows на уровне BCD, то скорее всего автоматически загрузится среда восстановления системы.

Далее будут выполнены “Подготовка автоматического восстановления” и “Диагностика компьютера”, которая может завершиться таким экраном (данный и большая часть последующих скриншотов сделаны в Windows 8):

Windows autorepair

Это означает, что диспетчер загрузки Windows VistaWindows 8.1, который называется BootMgr, успешно запустился, но у него возникли проблемы с данными в BCD. Как мы уже знаем, в BCD хранится список установленных на компьютере операционных систем и различные атрибуты их загрузки.

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

Если понятно, что система не загрузится и придется поработать в командной строке, то напрасные мучения “Автоматического восстановления” можно прекратить в самом начале нажав “F8” и выбрав затем “Устранение неполадок компьютера”.

Выбор загружаемой операционной системы

Если перед этим Вы экспериментировали с двойной загрузкой Windows, например, в связи с патчем ядра ОС, и точно знаете, что есть исходный вариант загрузки, то нужно выбрать “Дополнительные параметры”:

Windows autorepair another os

Нажимаем “Использовать другую ОС”. В появившемся списке установленных операционных систем выбираем нужную. Если после этого компьютер благополучно запустится, то все дальнейшие действия по решению проблем с загрузкой Windows можно будет выполнить в привычном окружении.

Создание загрузочного устройства со средой восстановления Windows

В тех случаях, когда загрузка среды восстановления Windows непосредственно с системного жесткого диска не происходит или невозможна, необходимо использовать внешние загрузочные устройства, такие как CD/DVD или USB Flash диск.

Если в распоряжении есть установочный диск Windows, то этого вполне достаточно – на нем уже есть среда восстановления. Нужно загрузить компьютер с установочного диска и после выбора языка и раскладки клавиатуры (для некоторого упрощения последующих действий лучше выбрать “США”) нажать на следующем экране “Восстановление системы”.

Если установочного диска нет, то нужно записать диск восстановления.

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

Для этого идем в “Панель управления”.

В Windows 7: “Архивация и восстановление” –> “Создать диск восстановления системы”, далее будет предложено выбрать оптический пишущий привод. Выбираем, вставляем чистый оптический диск и нажимаем “Создать диск”.

В Windows 8: “Восстановление” –> “Создание диска восстановления”:

Windows 8 make repair disk

В отличие от предыдущих систем в 8-ке будет предложено подключить “USB устройство флэш-памяти” объемом не менее 256 МБ.

Windows 8 make usb flash-drive repair disk

Вставляем подходящую флэшку (все записанные на ней данные будут уничтожены) и нажимаем “Далее” и “Создать”.

Запуск командной строки в среде восстановления Windows

Независимо от того каким образом была загружена среда восстановления Windows (с жесткого диск или с внешнего загрузочного устройства), мы попадем на экран “Выбор действий”:

Windows autorepair diagnostics

В данном случае выбираем “Диагностика”:

Windows autorepair diagnostics additional parameters

Выбираем “Дополнительные параметры”:

Windows autorepair additional parameters

Мы почти добрались до цели, которой является Командная строка. Нажимаем, появится экран выбора пользователя. Выбираем, вводим пароль. Не забываем, что переключение раскладок (языка) происходит по “Alt + Shift”. Открывается окно командной строки.

В Windows 7 аналогичный экран выглядит так:

Windows 7 repair

Исправление параметров загрузки с помощью BCDedit

Очень может быть, что для восстановления нормальной загрузки Windows потребуются минимальные исправления в меню загрузки BCD. Для редактирования конфигурации загрузки существует редактор BCDedit доступный и в среде восстановления.

Необходимо отметить, что в ней доступен также и текстовый редактор “Блокнот” (notepad), в котором удобно подготавливать некоторые длинные команды перед их вводом в BCDedit.

Если Вы уже работали ранее с BCDedit и имеете представление о его командах, то, возможно, проблемы с загрузкой удастся решить очень быстро.

Например, если есть копия содержимого хранилища BCD, созданная ранее командой:

bcdedit /export "C:\Backup\bcd-backup"

в “беспроблемной” системе, то можно мгновенно все исправить, вернув исходные данные. Только надо иметь в виду, что буква диска в этом случае будет другая. Если в системе один диск с двумя стандартно создаваемыми при установке разделами, то скорее всего это окажется D:\.

Чтобы не гадать, имеет смысл предварительно запустить diskpart:

diskpart
list vol

Находим букву нужного диска (предположим, что это D:\) и выходим из утилиты:

exit

Далее выполняем:

bcdedit /import "D:\Backup\bcd-backup"

Восстановление загрузки с помощью команды BCDboot

Если исправить проблемы загрузки ОС с помощью редактора BCDedit не получилось, не страшно. Идем дальше. В запасе есть замечательная консольная команда BCDboot, которая точно поможет решить все проблемы с Boot Configuration Data.

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

BCDboot позволяет не только создавать или обновлять файлы, необходимые для нормального функционирования менеджера загрузки Windows VistaWindows 8.1, но определять и добавлять в меню загрузки информацию об установленных на компьютере операционных системах.

Предварительно запустим diskpart и определим буквы томов (разделов) по команде list vol. Предположим, что системному разделу (“Зарезервировано системой”) соответствует C:\, а загрузочному разделу D:\.

Если нужно полностью обновить конфигурацию загрузки, то можно предварительно удалить файл системного хранилища “bcd”:

attrib c:\boot\bcd -s -h –r – снимаем с файла “bcd” атрибуты “системный”, “скрытый” и “только для чтения”.

del c:\boot\bcd – удаляем файл конфигурации и сразу же обновляем файлы загрузчика и создаем новую конфигурацию загрузки:

bcdboot d:\windows /l ru-RU

d:\windows указывает “источник” – корневой системный каталог на загрузочном томе. Если на диске установлено несколько операционных систем, например, Windows 7 и Windows 8, то в качестве “источника” нужно указывать каталог, соответствующий более новой операционной системе. То есть, Windows 8. Как не получится загрузить Windows 7 с помощью загрузчика XP, так и не получится загрузить Windows 8 с помощью загрузчика Windows 7, не смотря на то, что архитектура в последних ОС одинакова.

Ключ /l задает языковый параметр. Он необязателен, но так как по умолчанию используется английский язык (США) – “en-US”, то зададим “ru-RU”.

По умолчанию файлы среды загрузки копируются в системный раздел, создаваемый при обычной установке Windows (том “Зарезервировано системой” объемом 100МБ в Windows 7 и 350МБ в Windows 8). При необходимости нужная буква тома может быть задана с помощью ключа /s.

Дополнительно с помощью ключа /v можно включить режим вывода подробной информации.

Если для создания записи, пригодной к загрузке, необходимо использовать загрузчик операционной системы с известным {ID}, то необходимо использовать ключ /m. Нужный {ID} можно узнать с помощью команды BCDedit.

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

bcdboot d:\windows /s c: /l ru-RU /m {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}

Команда среды восстановления Windows Bootrec (Windows Vista – Windows 7)

В Windows VistaWindows 7 перестроить системное хранилище данных конфигурации загрузки можно также с помощью команды среды восстановления Windows Bootrec с соответствующим ключом.

В Windows 8 Bootrec не видит установленных систем (или я что-то не так делаю. Интересно что?)

В отличие от BCDboot данная команда не копирует и не перезаписывает файлы, необходимые для функционирования загрузчика ОС, например, bootmgr, а работает исключительно с содержимым BCD.

bootrec /scanos

Запущенная с ключом /scanos, утилита просканирует все диски на предмет установленных операционных систем Windows VistaWindows 7 (Windows 8 она уже не увидит, что довольно странно). Кроме того, команда отображает записи, которые в настоящее время не представлены в хранилище данных конфигурации загрузки.

Bootrec /rebuildbcd

Запущенная с ключом “/rebuildbcd”, утилита ищет на всех дисках установленные операционные системы Windows Vista или Windows 7 и позволяет затем выбрать и добавить их в хранилище данных конфигурации загрузки. Для полного перестроения данных системного хранилища файл BCD нужно предварительно удалить (или переименовать) так, как это было описано выше для команды BCDboot.

Очевидно, что, по крайней мере пока, для Windows 8 и Windows 8.1 нужно использовать команду BCDboot, которая с очень высокой вероятностью позволит разрешить все проблемы с загрузкой, возникшие из-за ошибок загрузчика и в системном хранилище BCD.

Комментарии: 21. Присоединяйтесь к обсуждению!

  1. Геннадий:

    Скрипт, который добавляет в меню загрузки пункт с пропатченой системой, открыть блокнот, добавить текст , сохранить с разрешением «cmd»

    @ECHO off
    title Windows 128 gb RAM
    color 0A
    :_Menu
    echo Хотите пропатчить систему, чтобы видела всю память до 128 гб?
    echo "Y - Да, пропатчить, памяти 3 гб и конфигурация машины поддерживает"
    echo "N - Нет, оставить в оригинале до 3 гб и конфигурация машины не поддерживает"
    choice /C YN /N /M "Выберите "Y" - Да, "N" - Нет):"
    if "%ERRORLEVEL%"=="1" Goto _INSTALL
    if "%ERRORLEVEL%"=="2" Goto _End
    GOTO _Menu
    :_INSTALL
    set MY_ENTRY_DESC="Windows 128 gb"
    bcdedit -copy {current} /d %MY_ENTRY_DESC% > mybcdguid.txt
    type mybcdguid.txt | find "{" > nul && goto _SuccessCreat
    goto _End
    :_SuccessCreat
    set ENTRY_GUID=
    for,/f,"tokens=2 delims={",%%i,In (mybcdguid.txt) Do (
    set ENTRY_GUID_START=%%i
    )
    for,/f,"tokens=1 delims=}",%%i,In ("%ENTRY_GUID_START%") Do (
    set ENTRY_GUID={%%i}
    )
    bcdedit /set %ENTRY_GUID% kernel ntoskrnx.exe
    bcdedit /set %ENTRY_GUID% path \Windows\system32\winloadp.exe
    bcdedit /set %ENTRY_GUID% nointegritychecks 1
    cls
    ECHO.
    ECHO. OK, в меню загрузки добавлено:
    ECHO.
    ECHO Windows 128 gb
    ECHO.
    :_End
    ECHO.
    pause
    exit

    • Спасибо, конечно, за представленный листинг, который представляет собой упрощенный и слегка измененный вариант хорошо известного еще по первому патчу файла AddBootMenu.cmd. Наверное надо отметить, что представленный командный файл пригоден исключительно для Windows 8 / 8.1.
      Не очень понятно какое отношение он имеет к теме данной публикации. Как бы проблемы создать модифицированное ядро и добавить соответствующую ему секцию загрузки в BCD давно уже нет, так как есть готовый универсальный скрипт в файле PatchPae2cmd.cmd, который давно и свободно раздается всем желающим по подписке на обновления блога.
      В данной статье речь идет как раз об обратном — как перестроить и актуализировать данные системного хранилища загрузок BCD в случае возникновения с ним проблем.

  2. oleg:

    для bcdboot параметр {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} можно получить в виде переменной для скрипта?

    • Олег, добрый день. Пожалуйста сформулируйте вопрос несколько конкретнее. В чем состоит задача?

  3. Юрий:

    Спасибо, очень понятно и доходчиво.

  4. Юрий:

    Хорошо бы, еще добавить в статью информацию о том как после воcстановления загрузчика windows 8 создать загрузочное меню (на базе загрузчика w8 и в стиле w8) и добавить туда другие ОС ранее установленные на ПК.

  5. Юрий:

    Имеется в виду через CMD. Заранее спасибо.

    • Юрий, здравствуйте. Спасибо за отзыв. Но я не очень понял о каком загрузочном меню идет речь. Мне кажется, что в общем случае задача решается с помощью команды bcdboot. Как ее использовать в статье описано. В частности, пример использования есть в статье об установке Windows 8.1 на виртуальный диск. Если после bcdboot нужно что-то поправить или добавить, то работаем с bcdedit. Основные команды описаны в этой статье.
      Или имелось в виду что-то другое?

  6. Юрий:

    Имеется в виду начальный экран загрузочного меню нескольких ОС, Windows Boot Manager. У меня после перезаписи BCD (с нуля т.е. сначало удаление его ) и востановление загрузчика вин8.1 с помощью bcdboot d:\windows /l ru-RU появилась возможность загружать только вин8.1 . Хоелось бы создать Windows Boot Manager (только в стиле виндовс 8 голубого цвета) и добавитьв туда вин 7и Хр с помощью CMD . У 7меня стоит на ПК W8.1×64 W7x32 и Wxp x32.

  7. Юрий:

    Я создал Windows Boot Manager с помощью программы EasyBCD, но меню загрузки получилось классического черного типа. Хотелось бы в стиле Виндовс 8.

  8. Юрий:

    Продскажите при работе с bcdedit, загрузочное меню останется в стиле W8 ?

    • Если использовать EasyBCD, то меню загрузки в стиле Windows 8 точно не будет — программа полностью подменяет загрузку на свою. Теоретически после добавления новых вариантов загрузки (других систем) с помощью bcdedit вид меню измениться не должен, но надо пробовать. Помниться, что когда у меня на десктопе основной стояла Windows 7, а Windows 8.1 как вторая на виртуальном диске, то при первой загрузке после создания меню с помощью bcdboot появлялся экран загрузки в стиле Windows 8, но после запуска Windows 7 его уже не было. Надо пробовать. Вариантов все равно нет.

    • Юрий:

      Вот и у меня также как поставлю загрузку по умолчанию w7 , то меню в стиле w8 слетает. И вот если использовать меню загрузки в обычном стиле, и выйти из w8 и выключить комп. ( выключить питание на 5-10мин.), а после включения загрузится в w7, то всегда включается проверка всех дисков на наличие ошибок. Если используется экран загрузки в стиле Windows 8 то при смене систем (при условии выключения питания)проверка дисков не запускается. В чем может быт причина , не сталкивались ли с такой проблемой, может ли быть это из за того что w7 и w8 разной разрядности х32 и х64.?

    • Сталкивался, причем только что. Точно могу сказать, что дело не в разной разрядности систем. На настольном компьютере я установил новую Windows 8.1 х64 на отдельный диск. Старая Windows 7 x64 осталась на своем диске. То есть системы были совершенно изолированы по дискам и, соответственно, по загрузчикам. Но не смотря на это после работы в одной из систем и перехода в другую запускалась проверка дисков chkdsk, причем всех. Похоже между 8-кой и 7-кой возник некий антагонизм на почве дисков. Причина пока непонятна, соответственно, как бороться тоже не ясно. Как вариант — просто игнорировать проверку, т.к. никаких нарушений она не находит.

    • Юрий:

      Да проверка ничего не находит. У меня w7 и w8 стоят на одном HHD в разных разделах. Как выход вижу только использование загрузчика w8 ( в стиле w8 синего цвета), тогда проверка не запускается , но загрузка по умолчанию должна стоять w8 (чтоб не слетало меню w8) что не всегда удобно.
      Облазил много сайтов но ничего по этой теме не нашел думал уже это у меня с мат платой что то или с биосом. Кстати проблема у вас была на какой
      мат. пл.? у меня p8z77-v. Если вам попадется какая ни будь инфа по этому вопросу или найдете решение скиньте ссылку или информацию на E-Mail. Буду благодарен. Спасибо.

    • Материнская плата Intel DX58SO. Если что-то узнаю конечно сообщу.

  9. Есть проще вариант с заменой bcd кому надо пишите вконтакте id setman

  10. Юрий:

    Решение выше описанной проблемы с запуском проверки дисков при перезагрузки из W8 в W7 подсказал Viacheslav8 здесь.
    Зайдите в Панель управления, далее «Электропитание». Слева по ссылке перейдите по пункту «Запрос пароля при пробуждении». На новой страничке в группе пунктов «Параметры завершения работы» уберите галочку с «Включить быстрый запуск (рекомендуется)». Перегрузите компьютер. Все проверка дисков при перезагрузке не запускается!!!
    Кстати, компьютер будет теперь загружаться медленнее, но будет решена проблема с USB3.0 на чипсетных контроллерах Intel, когда этот режим включался только перезагрузкой компьютера.
    Кстати я не заметил чтоб винда стала дольше грузиться.

  11. List:

    68 лет стаж 3 г. спасибо за статью ! это без иронии.. учить других, особенно людей без базовых знаний гораздо труднее чем самому изучить тему… похоже статью писал подросток или взрослый так и не вышедший из подросткового возраста… это классический ответ отличника учителю, а не объяснение материала взрослым умным опытным и добрым учителем.. это очень трудно.. но возможно… С уважением ! List 10.06.15г

    • Уважаемый List. В свою очередь могу сказать, что Вы, похоже, точно знаете то, о чем пишете. Это потому, что Вы то как раз и есть тот самый «взрослый, так и не вышедший из подросткового возраста…». В противном случае Вы бы не позволили себе вот таким некрасивым образом вымещать на авторе статьи, то есть на мне, обиду на то, что, очевидно, ничего в ней не поняли. Но в одном Вы действительно правы — я действительно когда-то был отличником, закончил институт с красным дипломом, кандидат технических наук. В разное время у меня было много учеников, как по основной специальности, так по по ИТ. Смею заверить, что с ними полный порядок.
      Желаю Вам всяческих успехов в освоении компьютерной грамотности. И советую в этой связи больше концентрироваться на конкретных компьютерных задачах, а не тратить свое драгоценное время и силы на сочинение подобных никому не нужных опусов с большим количеством многоточий.

  12. Philipp:

    У меня такая проблема с загрузкой. Я в программе msconfig (вкладка загрузка, дополнительные параметры выставил число процессоров 4 и память 4 Гб). После чего система перестала загружаться. Мне удалось загрузиться в безопасном режиме, но в нем ничего сделать не удается. Не удается вызвать msconfig и сбросить настройки дополнительных параметров на пустые. Как мне поступить? Это можно сделать через командную строку?

Написать комментарий

Subscribe without commenting