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

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

Примечание:Сначала я думал, что проблема в 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 содержит четыре раздела:

  • ЭСП
  • 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              {bootmgr}
device                  unknown
path                    \EFI\Microsoft\Boot\bootmgfw.efi
description             Windows Boot Manager
locale                  en-US
inherit                 {globalsettings}
default                 {default}
resumeobject            {cc3e7046-4857-11e5-a015-f353893f9a4c}
displayorder            {default}
toolsdisplayorder       {memdiag}
timeout                 30

Windows Boot Loader
-------------------
identifier              {default}
device                  unknown
path                    \Windows\system32\winload.efi
description             Windows 10
locale                  en-US
inherit                 {bootloadersettings}
recoveryenabled         No
custom:16000060         Yes
custom:17000077         352321653
osdevice                unknown
systemroot              \Windows
resumeobject            {cc3e7046-4857-11e5-a015-f353893f9a4c}
nx                      OptIn
custom:250000c2         1

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

bcdedit /store BCD /set {default} device partition=W:
bcdedit /store BCD /set {default} osdevice partition=W:

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

Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  unknown
path                    \EFI\Microsoft\Boot\bootmgfw.efi
description             Windows Boot Manager
locale                  en-US
inherit                 {globalsettings}
default                 {default}
resumeobject            {cc3e7046-4857-11e5-a015-f353893f9a4c}
displayorder            {default}
toolsdisplayorder       {memdiag}
timeout                 30

Windows Boot Loader
-------------------
identifier              {default}
device                  partition=W:
path                    \Windows\system32\winload.efi
description             Windows 10
locale                  en-US
inherit                 {bootloadersettings}
recoveryenabled         No
custom:16000060         Yes
custom:17000077         352321653
osdevice                partition=W:
systemroot              \Windows
resumeobject            {cc3e7046-4857-11e5-a015-f353893f9a4c}
nx                      OptIn
custom:250000c2         1

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

Вашему ПК/устройству необходим ремонт.

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

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

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

Я также заметил, что даже запуск bcdedit /store BCDвнес довольно много изменений в файл, учитывая тот факт, что не было никаких изменений данных.
Среди прочего, файл, по-видимому, содержал свой собственный путь, относящийся Volume1\EFI\Microsoft\Boot\BCDк исходному файлу BCD и ??\C:\BCDк моему измененному файлу.
Сначала я беспокоился, что это каким-то образом «осквернит» файл, но я провел тест, изменив descriptionна , {default}что 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:

запрашивает пароль

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

ошибка 0xc000000e

Менеджер загрузки Windows с измененным BCD:

ошибка 0xc0000225

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

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

решение1

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%.

Связанный контент