Устранение ошибок 0xc000000e при загрузке Windows с полным шифрованием диска Bitlocker

7768
Siguza

Примечание. Первоначально я думал, что проблема в BCD, что оказалось не так.


Первоначально мой ноутбук был настроен следующим образом:

  • Раздел объемом 300 ГБ с OS X 10.10 и встроенным шифрованием полного диска (FileVault).
  • Раздел 200 ГБ с Windows 10 и встроенным шифрованием полного диска (BitLocker).
  • REFInd менеджер загрузки установлен на ESP в /EFI/boot.
  • Менеджер загрузки Microsoft, установленный на ESP в /EFI/Microsoft/Boot.

Два дня назад я сократил раздел OS X до 200 ГБ и добавил раздел 100 ГБ, на котором я установил Ubuntu.
С тех пор я не могу загрузить Windows.
При входе в менеджер загрузки Windows мне все еще предлагается ввести пароль, но после этого я получаю экран с надписью

Ваш ПК / Устройство нуждается в ремонте

Произошла непредвиденная ошибка.

Код ошибки: 0xc000000e

Затем я вставил установочный диск Windows 10 и начал проверять раздел из командной строки ( ShiftF10).
Но diskpartоказалось не в состоянии смонтировать раздел, потому что он, видимо, работает на MBR.
(Я удостоверился, что загрузил установочный диск в режиме EFI (через раздел ручной загрузки в rEFInd), и поэтому я ожидал diskpartработать на GPT, ну да ладно ...)

Изначально MBR содержит четыре раздела:

  • ESP
  • Macintosh HD
  • Восстановление HD
  • УЧЕБНЫЙ ЛАГЕРЬ

GPT дополнительно содержал раздел восстановления BitLocker после BOOTCAMP.
Оказалось, что добавление раздела Linux изменило, вытолкнуло BOOTCAMP из списка и сделало «Linux HD» четвертым разделом.
Я просто настроил MBR, чтобы иметь последнюю точку входа в BOOTCAMP снова, таким образом «пропуская» раздел Linux.

После этого я все еще мог загружать OS X и Ubuntu, и теперь я мог также смонтировать раздел Windows diskpart.
И мне удалось разблокировать раздел с

manage-bde -unlock W: -Password 

доказывая, что 1) я не испортил MBR, и 2) раздел все еще не поврежден.

В свете этого я почти уверен, что проблема заключается в BCR.
По причинам, которые до сих пор неясны для меня, я не могу смонтировать ESP с установочного диска - попытка назначить букву диска первому разделу диска 0 говорит мне, что «не указан том», а list volumeтолько перечисляет все, что уже смонтировано.
bootrec /rebuildbcdтакже ужасно терпит неудачу, удаляя файл BCD с установочного диска .
Однако я могу просто скопировать BCD на установочный диск и использовать bcdeditна нем.

bcedit /store BCD печатает:

Windows Boot Manager -------------------- identifier  device unknown path \EFI\Microsoft\Boot\bootmgfw.efi description Windows Boot Manager locale en-US inherit  default  resumeobject  displayorder  toolsdisplayorder  timeout 30  Windows Boot Loader ------------------- identifier  device unknown path \Windows\system32\winload.efi description Windows 10 locale en-US inherit  recoveryenabled No custom:16000060 Yes custom:17000077 352321653 osdevice unknown systemroot \Windows resumeobject  nx OptIn custom:250000c2 1 

Теперь они unknownне выглядели так хорошо для меня, поэтому я изменил их на partition=W:использование

bcdedit /store BCD /set device partition=W: bcdedit /store BCD /set osdevice partition=W: 

И я проверил результат:

Windows Boot Manager -------------------- identifier  device unknown path \EFI\Microsoft\Boot\bootmgfw.efi description Windows Boot Manager locale en-US inherit  default  resumeobject  displayorder  toolsdisplayorder  timeout 30  Windows Boot Loader ------------------- identifier  device partition=W: path \Windows\system32\winload.efi description Windows 10 locale en-US inherit  recoveryenabled No custom:16000060 Yes custom:17000077 352321653 osdevice partition=W: systemroot \Windows resumeobject  nx OptIn custom:250000c2 1 

Но после помещения этого BCD-файла обратно в мой ESP, менеджер загрузки Windows даже не запрашивает у меня пароль, а вместо этого сразу отображает другую ошибку, говоря:

Ваш ПК / Устройство нуждается в ремонте.

Не удалось загрузить приложение или операционную систему, поскольку требуемый файл отсутствует или содержит ошибки.

Файл: \ Windows \ system32 \ winload.efi Код ошибки: 0xc0000225

Я попытался установить deviceи osdeviceдо и после расшифровки W:диска, с тем же результатом.
Настройка deviceдля также не имеет значения. Теперь я уверен, что это был шаг назад, потому что он даже не спрашивает мой пароль.

Я также заметил, что даже при запуске было bcdedit /store BCDвнесено довольно много изменений в файл, учитывая тот факт, что не было никаких изменений данных.
Среди прочего, файл, очевидно, будет содержать свой собственный путь, как Volume1\EFI\Microsoft\Boot\BCDдля исходного BCD-файла, так и ??\C:\BCDдля моего измененного файла.
Сначала я волновался, что это каким-то образом «осквернит» файл, но я запустил тест, изменив descriptionего на Windows 42, что, опять же, вызвало довольно много изменений в файле, но менеджер загрузки Windows по-прежнему просил меня пароль при использовании этого файла, поэтому ни пользовательское расположение файла не «омрачает» файл, ни используемый bcdeditмной файл не повреждены.

Теперь наконец мой вопрос:

Как я могу восстановить мой BCD?
Или, если это не проблема, тогда что и как я могу это исправить?


Дополнительная информация:

diskutil list

/dev/disk0 #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *500.3 GB disk0 1: EFI EFI 209.7 MB disk0s1 2: Apple_CoreStorage 200.4 GB disk0s2 3: Apple_Boot Recovery HD 650.1 MB disk0s3 4: Microsoft Basic Data 99.0 GB disk0s4 5: Microsoft Basic Data 199.7 GB disk0s5 6: DE94BBA4-06D1-4D40-A16A-BFD50179D6AC 363.9 MB disk0s6 /dev/disk1 #: TYPE NAME SIZE IDENTIFIER 0: Apple_HFS Macintosh HD *200.0 GB disk1 Logical Volume on disk0s2 4A45027B-2703-4C7D-816E-3419DE0F0F61 Unlocked Encrypted 

sudo gpt show -l /dev/disk0

gpt show: /dev/disk0: Suspicious MBR at sector 0 start size index contents 0 1 MBR 1 1 Pri GPT header 2 32 Pri GPT table 34 6  40 409600 1 GPT part - "EFI System Partition" 409640 391334208 2 GPT part - "Customer" 391743848 1269760 3 GPT part - "Recovery HD" 393013608 1688  393015296 193355776 4 GPT part - "Linux HD" 586371072 2048  586373120 390019148 5 GPT part - "BOOTCAMP" 976392268 1972  976394240 710656 6 GPT part - "" 977104896 131  977105027 32 Sec GPT table 977105059 1 Sec GPT header 

sudo fdisk /dev/disk0

Disk: /dev/disk0 geometry: 60821/255/63 [977105060 sectors] Signature: 0xAA55 Starting Ending #: id cyl hd sec - cyl hd sec [ start - size] ------------------------------------------------------------------------ 1: EE 0 0 2 - 1023 254 63 [ 1 - 409639] <Unknown ID> *2: DA 1023 254 63 - 1023 254 63 [ 409640 - 391334208] <Unknown ID> 3: AF 1023 254 63 - 1023 254 63 [ 391743848 - 1269760] HFS+  4: 07 1023 254 63 - 1023 254 63 [ 586373120 - 390019148] HPFS/QNX/AUX 

Диспетчер загрузки Windows с оригинальной BCD:

asking for password

Менеджер загрузки Windows с оригинальной BCD после ввода моего пароля:

error 0xc000000e

Диспетчер загрузки Windows с измененным BCD:

error 0xc0000225

Обновление 1:

Я попытался пометить BOOTCAMP как «загрузочный» в MBR, без каких-либо изменений.

4

1 ответ на вопрос

6
Siguza

BCD на самом деле был в порядке, именно MBR вызывал все проблемы.

Я уже расшифровал свой диск [1] и пытался переустановить Windows, но при выборе диска у меня появилось всплывающее окно: «Этот жесткий диск использует MBR, но системы на основе EFI могут быть установлены только на GPT-диски».
Очевидно, что в Windows MBR имеет приоритет над GPT.

Я пошел дальше и заменил мой MBR на «защитный», используя

sudo gdisk /dev/disk0 # On Linux, use /dev/sda r # Recovery/transformation x # Expert mode n # New protective MBR w # Write changes to disk y # Yes (confirm) 

(В Linux gdiskдолжен быть установлен по умолчанию (в противном случае попробуйте sudo apt-get install gdisk), на Mac вы можете получить его отсюда .)

Это наконец решило мою проблему.


[1] Кажется, что на самом деле это не нужно, но для записи: при условии, что ваш зашифрованный диск помечен W:, сначала разблокируйте его из командной строки установочного диска, затем запустите manage-bde -off W:, время от времени проверяйте ход выполнения manage-bde -status W:и перезагружайтесь после шифрования Хиты 0%.

Вы действительно спасли меня сегодня! :) Честно говоря, я хотел бы дать вам больше очков! Еще одна незначительная вещь (в основном, чтобы дать этому комментарию повод для существования), вы * можете * еще более четко указать, что исправление включает * только * вещь `gdisk` и что нет необходимости расшифровывать ваш раздел BitLocker, даже если это было то, как вы нашли решение. Это немного смутило меня. Во всяком случае, у меня нет ничего, кроме благодарности за публикацию этого, фу, Спасибо большое !! Andreas Magnusson 7 лет назад 1
Спасибо, я обновил свой ответ. И пожалуйста, мужик. :) Я не желаю, чтобы кто-то должен был понять это для себя. Siguza 7 лет назад 0