Как я могу восстановить загрузчик Windows 8 EFI?


122

Я установил Windows 7 и Windows 8 в режиме EFI на жесткий диск несколько дней назад. Сегодня загрузчик пропал / испортился.

В настоящее время у меня есть установщик Windows 8 на флеш-накопителе, и я попытался использовать опцию «Автоматическое восстановление» для восстановления загрузчика, но он ничего не сделал. Параметр «Восстановление при загрузке» также отсутствует в установщике Windows 8.

Как я могу восстановить / восстановить загрузчик EFI из командной строки?

BCDEDIT возвращает следующее сообщение:

The requested system device cannot be found.

Что не так с текущими решениями?
soandos

@soandos У меня была такая же проблема. Я выполнил команды от вас и harrymc, и теперь все работает отлично! Большое спасибо вам обоим.
ComFreek

2
Точно так же, как к сведению, но мы недавно выпустили автоматизированный инструмент восстановления EFI для Windows 8: neosmart.net/blog/2013/…
Махмуд Аль-Кудси

1
Я не ожидал, что у людей будет столько проблем с UEFI windows 8 ... Как системный раздел просто пропадает или портится? Он даже не монтируется в Windows, поэтому повреждение файловой системы не может быть. И все текущие операционные системы не содержат ошибок, чтобы не испортить существующую установку Windows. На самом деле, даже окна не портят Linux на UEFI, сюрприз неожиданностей.
Milind R

Это не относится, если вы используете динамические диски
rainabba,

Ответы:


183

Я потратил много времени, пытаясь заставить мой ПК с Windows 8 снова загрузиться после клонирования на новый твердотельный накопитель и попытаться подвести итог, как я наконец все это заработал -

Во-первых, загрузка с диска восстановления UEFI для Windows 8 (CD / DVD / USB) - я обнаружил, что в процессе автоматического восстановления не был найден правильный раздел Windows, и когда мне удалось добавить его в настройки BCD, он сделал бы его надежно загрузочным. например, используя BCDEDIT, я получил его, чтобы найти и запустить раздел Windows, но он отказался от холодной загрузки или не будет «сохранять» настройки после второй перезагрузки или выключения питания.

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

Введите, diskpartчтобы использовать инструмент DiskPart, чтобы убедиться, что у вас есть все правильные разделы, и чтобы идентифицировать ваш раздел EFI - главное здесь, чтобы ваш раздел EFI был отформатирован как FAT32:

DISKPART> sel disk 0

Disk 0 is now the selected disk.

DISKPART> list vol

  Volume ###  Ltr  Label        Fs     Type        Size     Status     Info
  ----------  ---  -----------  -----  ----------  -------  ---------  --------
  Volume 0     E                       DVD-ROM         0 B  No Media
  Volume 1     C                NTFS   Partition    195 GB  Healthy    Boot
  Volume 2         WINRE        NTFS   Partition    400 MB  Healthy    Hidden
  Volume 3                      FAT32  Partition    260 MB  Healthy    System

Затем назначьте букву диска разделу EFI:

DISKPART> sel vol 3

Volume 3 is the selected volume.

DISKPART> assign letter=b:

DiskPart successfully assigned the drive letter or mount point.

Выйдите из утилиты DiskPart, введя exitи в командной строке выполните следующее:

cd /d b:\EFI\Microsoft\Boot\

bootrec /fixboot

Удалите или переименуйте файл BCD:

ren BCD BCD.bak

Используйте bcdboot.exeдля воссоздания магазина BCD:

bcdboot c:\Windows /l en-gb /s b: /f ALL

/f ALLПараметр обновляет параметры BIOS , включая UEFI прошивки / NVRAM, /l en-gbявляется локализация для UK / GB локали. По умолчанию локализация - американский английский или использование en-US.

Перезагрузитесь и скрестите пальцы.

Это дало мне головную боль. Я долго ходил кругами. На момент написания этой статьи не было много достоверной информации об исправлении UEFI / Windows 8.

[РЕДАКТИРОВАТЬ]

Чтобы снова включить Hyper-V, мне также пришлось запустить следующую команду из командной строки администратора в Windows после перезагрузки:

bcdedit /set {default} hypervisorlaunchtype Auto
bcdedit /set {default} nx OptIn

1
Сделал это из Windows 10 скачать ISO. сначала не работал, но потом запустил восстановление автозагрузки в меню графического интерфейса, и это было сделано, слава Богу. :-) Я ценю помощь :-)
Аббафей

этот рецепт BFSVC Error: Could not open the BCD template store. STatus = [c000000f ]
показался

22

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

У меня был жесткий диск 1,5 ТБ с установленной Windows 7. Затем я установил Windows 8 на купленный твердотельный накопитель емкостью 150 ГБ. Произошел сбой жесткого диска емкостью 1,5 ТБ, и я слышал, как он издает шум, мой компьютер больше не запускается со словами «пожалуйста, вставьте системный диск». Я думал, что загрузчик отсутствует, как это должно быть на диске 1,5 ТБ. Оказывается, но проблема тогда заключалась в том, что руководству, которое я следовал, не нужно перестраивать загрузчик или как он там называется, поскольку у меня не было раздела EFI на меньшем диске объемом 150 ГБ (это могло существовать на отказавшем диске), это только 1 раздел, который заполнил весь диск.

Я не хотел терять все свои данные, поэтому я вошел в командную строку, загрузившись с моего установочного USB-диска Windows 8 (учитывая, что вы не можете загрузить UEFI-версию этого, если она появляется, выберите загрузку с обычного USB-накопителя без UEFI появляется перед ним).

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

diskpart

list disk

select disk 0

list partition

select partition 1

shrink desired=200 minimum=200

create partition efi

list partition

select partition 2

format fs=fat32

Эти команды создадут раздел EFI. Дважды проверьте все, набрав list vol. Вы должны увидеть раздел размером 200 МБ. Теперь вам нужно назначить ему письмо. Сделайте это, набрав assign, затем еще list volраз, чтобы увидеть, какая буква была назначена.

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

bcdboot C:\Windows /l en-gb /s B: /f ALL

Примечание. Необходимо заменить C:букву диска раздела, содержащего Windows, и B:букву, назначенную только что созданному разделу EFI.

Я также ввел следующие команды:

bootrec /fix

bootrec /fixmbr

Они оба вернулись успешно, не знаю, действительно ли они что-то сделали, но кого это волнует. Windows теперь полностью восстановлена.


2
bootrec / fix не является допустимой командой на Windows 8, но в остальном инструкции сработали и решили все мои проблемы. Спасибо!
Кьяран Фишер

я: мой раздел EFI (сначала на диске), но он пуст. Когда я запускаю, bcdboot c:\windows /s i: /f ALLя получаю сообщение «Ошибка BFSVC: не удалось установить устройство приложения emement. Status = [c00000bb]» Я боролся с этим сражением в течение нескольких месяцев, и с каждой попыткой получаю флэш-диск, который, похоже, содержит мою загрузку EFI файлы, потому что я могу загрузиться с него, но если я удаляю его, я не могу загрузиться.
Rainabba

Большое спасибо! Это спасло мой день. Я попробовал практически все там, и ничего не получалось. Шаг, который я пропустил, - это форматирование тома EFI. После того, как отформатировал том EFI. Команда загрузки bcd сработала успешно, и у меня снова работает Windows 10.
Сахил


+1 - Запомните наиболее важную отправку Примечание: вы должны заменить C: буквой диска раздела, содержащего Windows, а B: буквой, назначенной только что созданному разделу EFI. Я борюсь с этим на 13 часов! Спасибо, ты спас меня в следующие 12 часов :)
Jerzy Drożdż

9

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

Во-первых, это может произойти одним способом:

  1. Ваш BIOS теряет свои настройки.
  2. Нет проблем, все это хранится в разделе EFI.
  3. ... за исключением SATA IDE и AHCI, по понятным причинам.
  4. Вы использовали SATA-AHCI? Вы, наверное, сейчас используете SATA-IDE.
  5. Вы пытались загрузиться до того, как поняли это?
  6. Если вы сделали, это не удалось. Вы позволили Windows попытаться это исправить?
  7. Если вы это сделаете, BLAM, возможно, вы уничтожили базу данных конфигурации загрузки.
  8. Убедитесь, что вы используете правильные настройки SATA, которые вы использовали в прошлый раз.

Вот что вы, вероятно, уже сделали. ЕСЛИ ЭТО НЕ СООТВЕТСТВУЕТ, ВНИМАТЕЛЬНО ОЦЕНИТЕ, СУЩЕСТВУЕТ ЛИ ЭТО В ВАШЕЙ ПРОБЛЕМЕ, и ПРОЧИТАЙТЕ это для идей, но НЕ СЛЕДУЕТ СЛЕДОВАТЬ, не подумав сначала.

  1. Вы НАДЕЖДУ проигнорировали всю чушь, связанную с исправлением основной загрузочной записи (MBR), таблицы разделов, флагов разделов и прочего мусора, который НЕ ПРИМЕНЯЕТСЯ к сценарию загрузки EFI. ВСЕ . В лучшем случае вы сможете полностью перестроить новое, не связанное с загрузкой решение без EFI. Это может быть не тривиально, потому что:

  2. Вы выяснили, что Windows уверена, что у нее нет базы данных конфигурации загрузки, но, к сожалению, она либо совершенно не знает, либо ОЧЕНЬ уверена в том, куда она идет - вы не можете точно сказать, какая именно.

  3. Вы знаете, что загрузочное хранилище обычно (где-то) \ Boot \ BCD и что файл скрыт; просмотреть его с помощью «dir / a: hs».

  4. Вы немного ознакомились с BCDEDIT.EXE и выяснили, что он позволит вам «смоделировать» базу данных конфигурации загрузки в промежуточном файле с помощью «/ CREATESTORE» (и, пожалуйста, не называйте его «BCD»), что вы можете явно использовать промежуточный файл с параметром «/ STORE», добавить пункт меню для диспетчера загрузки Windows с помощью «/ CREATE {bootmgr}», и вы ДОЛЖНЫ иметь возможность импортировать его с помощью «/ IMPORT» ...

  5. ... но когда вы пытаетесь это сделать, вы не можете. Вы смотрите на параметр / SYSSTORE, который звучит правильно, но вы не можете заставить его использовать другой магазин, потому что он «неоднозначный». У вас есть догадка, что он знает, где находится магазин - или должен быть - но вы не можете его найти.

  6. Вы пытались использовать «MOUNTVOL» для монтирования раздела EFI, но он даже не отображается в списке, поэтому вы не можете.

Если ВСЕ это относится довольно близко к вам, вот что МОЖЕТ происходить:

  1. Windows может сказать, что вы настроили EFI (вы загрузили DVD с помощью загрузки UEFI, у вас есть раздел EFI и т. Д.).

  2. Поэтому он знает, ГДЕ СМОТРЕТЬ для файла BCD - однако он либо каким-то образом имеет неправильное местоположение (не эта проблема, но похожая), либо BCD был удален.

  3. Очевидно, потому что он знает, где он ДОЛЖЕН быть, это breaks / SYSSTORE - и на самом деле это, вероятно, правильное поведение, потому что в противном случае вы бы поместили его не в то место.

  4. Насколько я могу судить, MOUNTVOL намеренно скрывает раздел EFI (или не в состоянии это заметить). Это предотвращает монтирование файловой системы, что предотвращает поиск правильного подкаталога, проверку наличия базы данных и т. Д.

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

  1. Вы действительно должны смонтировать раздел EFI.

На самом деле, у меня есть предчувствие, что это не совсем правильно - я сильно подозреваю, что раздел EFI уже смонтирован какой-то внутренней подсистемой, поэтому BCDEDIT начинает капризничать - он не видит базу данных, но знает, куда должен идти. Что бы там ни было, это буква диска. Так что делать?

Ну ... как далеко ушли ваши корни DOS? Вы помните команду ASSIGN? Угадай, что.

  1. Запустите DISKPART.

  2. Если вы не знакомы с DISKPART, то, как он работает, это иерархия наборов; Вы должны выбрать ровно один элемент на одном уровне, чтобы перейти к следующему. Итак, «СПИСОК ДИСКОВ», а затем «ВЫБЕРИТЕ ДИСК n», где n - это то, что вам подходит.

  3. Используйте «LIST PARTITION» и «LIST VOLUME» (обратите внимание, не во множественном числе), чтобы получить некоторое представление и определить свой раздел EFI.

Обычно это раздел размером 100 МБ FAT32 с пометкой «SYSTEM». Имейте в виду, что на вашем диске уже должна быть таблица разделов GPT, поэтому вы можете увидеть довольно много разделов. Некоторые из них предназначены для экстренного восстановления - много хорошего они делают для проблем с EFI, а? Ну что ж.

Обратите внимание, что раздел EFI и некоторые другие не имеют букв дисков. Если вы так склонны, вы также можете просмотреть атрибуты раздела GPT, что также может дать вам несколько моментов, связанных с тангенциальной связью «Ага».

  1. «ВЫБЕРИТЕ РАЗДЕЛ n», где n - раздел EFI. (Я ожидаю, что вы можете выбрать громкость вместо этого, если вам нужно.)

  2. "ASSIGN". Вот и все. Не указывайте букву диска; просто "НАЗНАЧИТЬ".

  3. "ОБЪЕМ СПИСКА". Теперь вы должны увидеть букву диска, назначенную разделу EFI.

  4. "ВЫХОД" ДИСКПАРТ.

А теперь ... большое жирное предупреждение. Вы, вероятно, перейдете непосредственно к S: (или к тому, что вы получили от ASSIGN) и заметите раздел / Boot. "АГА!" Вы скажете. "Здесь нет файла BCD!" Во-первых ... помните, что файл скрыт. Во-вторых ... копайте еще немного, и вы заметите, что пока есть:

S: \ EFI \ Загрузочный

существует также:

S: \ EFI \ Microsoft \ Boot

Вы должны проверить оба из них на наличие проблем.

S: \ EFI \ загрузки является для материнской платы , и содержит Windows Boot ПОГРУЗЧИК (и , возможно , другие вещи для других операционных систем). У него такое название, потому что материнская плата не знает, будет ли у вас Windows или нет, и ей нужен фиксированный путь, который имеет смысл.

  1. Осмотрите S: \ EFI \ Boot. Для 64-битной Windows 7 Professional вы должны увидеть:

BOOTX64.EFI

Если вы установили оболочку EFI (это всегда хорошая идея), вы можете дополнительно увидеть «shellx64.efi».

ПРИМЕЧАНИЕ. Пользователи Linux с двойной загрузкой, использующие «chainloader + 1», не увидят здесь дополнительную запись.

  1. Проверьте S: \ EFI \ Microsoft \ Boot , используя как "реж" и "реж а: ч". В 64-разрядной версии Windows 7 Professional вы должны увидеть несколько языковых шаблонов («en_US» и т. Д.) И следующие файлы:

bootmgr.efi bootmgfw.efi memtest.efi BCD BCD.Backup.001 BCD.Backup.002

... кроме того, что вы, вероятно, не видите BCD, не так ли? Но эти резервные файлы выглядят заманчиво.

  1. Определите, какой файл резервной копии вы хотите использовать. Какие бы последние изменения в нем ни отсутствовали, они не так важны, как ваша способность загружать систему, так что выбирайте тот, который наиболее исправен. Вероятно, вы увидите один большой и один довольно маленький. Маленький уже поврежден и является артефактом неудачного процесса восстановления - не используйте его. Если они оба большие, используйте более старый. В ЛЮБОМ СЛУЧАЕ сделайте ДОПОЛНИТЕЛЬНЫЕ РЕЗЕРВНЫЕ КОПИИ РЕЗЕРВНЫХ КОПИЙ в другом месте.

  2. Скопируйте резервную копию, которую вы решили использовать, в «BCD».

  3. Выйдите из оболочки, завершите работу и перезагрузите компьютер.

  4. Скажите Windows, чтобы начать НОРМАЛЬНО. На данный момент, это должно начаться.

Q: Что делать, если у вас нет резервной копии BCD?

A: Хорошо, это действительно не должно случиться. Вероятно, это означает, что вы находитесь не в том каталоге, поддерживаете EFI, но фактически не используете его, или каким-то образом перестраиваете весь раздел EFI без всех необходимых материалов Windows (возможно, особенно при использовании нескольких версий Windows). В этом случае вам нужно будет скопировать материалы EFI с DVD-диска, а затем либо изменить, либо перестроить базу данных конфигурации загрузки с помощью BCDEDIT.

Вопрос: Можете ли вы привести пример сценария, в котором «BCDEDIT / SYSSTORE» можно использовать для выполнения каких-либо действий в системе EFI?

A: Пока нет.

В любом случае, надеюсь, что это поможет решить некоторые проблемы людей или, по крайней мере, заставит их задуматься. В качестве очень важного заключительного замечания, обратите внимание, что вы можете смонтировать и проверить раздел EFI под Windows, как правило, используя метод DISKPART ASSIGN выше. Вы должны сделать это хотя бы один раз, чтобы получить полную резервную копию вашего раздела EFI, ДО того, как вы столкнетесь с подобными проблемами. Я рекомендую одну резервную копию в подкаталог на вашем диске C: и одну на USB-накопителе.

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

Ура, Мэтт "Точка останова" Heck


1
На самом деле, MOUNTVOL позволяет вам установить ESP. Вы используете букву MOUNTVOL: / S.
Юйхонг Бао

Итак, когда вы монтируете этот раздел EFI и ничего не находите, как действовать? Я думал, что bcdboot c:/windows /s i: /f ALLэто может привести меня к началу, но это только заставляет меня «Ошибка BFSVC: не удалось установить устройство приложения элемента. Status = [c00000bb]»
rainabba

Несмотря на то, что эта ошибка когда-то появлялась один раз, теперь кажется, что у меня есть папка EFI на том диске, где я раньше этого не делал. До сих пор не могу многое сделать без ошибок и не может загрузиться, но это как минимум.
Rainabba

Решил попробовать другой маршрут целиком. Я подключил другую флешку, вытер ее, присвоил ей букву диска и повторил, используя ее в качестве цели вместо раздела EFI. Короче говоря, я загружаюсь не с моей установкой Windows, а с этой флешки. Я НЕ смог загрузиться с моего раздела EFI, несмотря на наличие файлов, так как это первый раздел (EFI, fat32, содержит файлы) на моем первом диске. С другой стороны, это интересный способ не дать кому-то моя система. Я просто извлекаю этот «ключ» из своей системы, и он не загружается.
Rainabba

5

Windows 8 еще не вышла в окончательном виде, поэтому проблем не предвидится. Вы находитесь в области, новой для большинства из нас, где команды, которые мы использовали, могут больше не работать. К командам, перечисленным @soandos, я добавлю эту, которая полностью перестраивает BCD:

bootrec /rebuildbcd

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

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

[РЕДАКТИРОВАТЬ]

Эти ссылки могут содержать некоторые полезные идеи:

Восстановление загрузчика Windows с DVD-диска
Проблема восстановления диспетчера загрузки
Windows 7 Windows 7 Внезапно не загружается - восстановление загрузчика Windows 7


Я добавил несколько ссылок, которые могут быть полезны, хотя и относятся к Windows 7.
harrymc

3

Самый простой способ:

  • Выполните шаги из поста выше, чтобы найти файл BCD и перейти в его каталог.

  • Если BCD-файл скрыт, введите attrib bcd -s -h -rи нажмите Enter. Это позволит вам изменить и перезаписать файл.

  • Введите ren bcd bcd.oldи нажмите Enter. Это переименовывает текущий файл BCD.

  • Введите Bootrec /RebuildBCDи нажмите, Enterчтобы заставить Windows 8 пересобрать меню загрузки с нуля.

  • Выйдите из командной строки и завершите работу. Удалите Windows Recovery Media и перезагрузите компьютер. Вы сделали!


2

Под DISKPART у меня были только vol 0 или D (DVD) и vol 1 или C (раздел Windows NTFS). Ничто не работало для меня, пока я не сделал том 1 ACTIVE.

После выхода из DISKPART я набрал только:

bootrec /fixboot
bootrec /rebuildbcd

затем система была должным образом отремонтирована. Я не пользовалась

bootrec /fixmbr

потому что я использовал GAG (Gestor De Organque Gràfico) на MBR для мультизагрузки.


1

После 6 часов борьбы мне удалось решить проблему с загрузкой Windows 8.

Сегодня, после обычного перезапуска, я получил сообщение MBR not foundили что-то подобное, я уже не помню. Я пробовал bootrecкоманды, автоматическое восстановление Windows (он не мог найти ни одной установленной Windows), миллион других способов и ничего.

Проблема заключалась в том, что когда я выполнял, bootrec /rebuildbcdвсе прошло нормально, а затем, когда мне нужно было войти, yesесли я хочу сохранить конфигурацию, я получил сообщение the file is not accessible because it is used by a another process.

После долгих раздумий я наконец-то решил это.

В этом порядке...

  • Сначала я загрузил мастер раздела easeup и ФОРМАТИРОВАЛ системный зарезервированный том, который позже назначил активным (в котором была моя загрузочная папка). При перезагрузке я получил ошибку NTLDR missing.

  • Затем я загрузился в Windows , восстановление, открыл командную строку и вошел bootrec /fixmbr, /fixboot, /scanos, /rebuildbcd(который теперь выполнен отлично:])

  • Я вышел cmdи нажал на автоматический ремонт.

  • Затем я смог выбрать Windows 8. После перезагрузки я увидел логотип Windows 8.


2
Heads up: этот ответ выглядит как MBR диск. На GPT-диске diskpart.exe возвращает это сообщение, когда помечает активный том: «Команда ACTIVE может использоваться только на жестких дисках MBR».
Захаридл

0

Мой сценарий; Я не потерял системный раздел EFI, но переключение дисков и установка Windows, похоже, испортили загрузочную запись UEFI диспетчера загрузки Windows для первого диска; пришлось использовать запись UEFI, которая указывает на диск непосредственно для загрузки. Я думаю, что я исправил это, исправив / добавив параметр «device partition = \ Device \ HarddiskVolumeX» (X = 2 в моем случае; мой 2-й раздел - системный раздел EFI, сопоставленный с Z: with diskpart.exe):

Bcdedit / set {bootmgr} раздел устройства = Z:

посмотреть с помощью: прошивки bcdedit.exe / enum


-1

Использование: bootrec /fixmbr(обновляет MBR, в этом случае, вероятно, ничего не сделает, но не повредит)

bootrec /fixboot переписать загрузочный сектор системного раздела.

bootrec /scanos сканировать операционные системы на диске и добавлять их в загрузчик.

Просто запустите команды по порядку.


Downvoter хотите прокомментировать?
Soandos

1
Команда bootrec /fixmbrне относится к авторской проблеме или ситуации.
Ramhound

-4

Мне удалось это исправить с помощью следующей команды в консоли восстановления:

 bootcfg C:\Windows /l en-us

2
Этот инструмент предназначен только для boot.ini, который предназначен для Windows XP и более старых версий oses.
Элмо

1
Это не относится к загрузчикам EFI.
Махмуд Аль-Кудси
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.