Erro de solução de problemas 0xc000000e na inicialização do Windows com a criptografia de unidade completa do Bitlocker

4

Nota: pensei originalmente que o BCD era o problema, o que acabou por ser errado.

Originalmente, eu tinha o meu laptop configurado da seguinte maneira:

  • Uma partição de 300 GB com o OS X 10.10 e criptografia completa de unidade nativa (FileVault).
  • Uma partição de 200 GB com o Windows 10 e criptografia completa de unidade nativa (BitLocker).
  • Um gerenciador de inicialização do rEFInd instalado no ESP em /EFI/boot .
  • Um gerenciador de inicialização da Microsoft instalado no ESP em /EFI/Microsoft/Boot .

Dois dias atrás, reduzi a partição do OS X para 200 GB e adicionei uma partição de 100 GB, na qual instalei o Ubuntu.
Desde então, não consegui inicializar o Windows.
Ao entrar no gerenciador de boot do Windows, ainda sou solicitado pela senha, mas depois disso, recebo uma tela dizendo

Your PC/Device needs to be repaired

An unexpected error has occurred.

Error code: 0xc000000e

Em seguida, inseri minha unidade de instalação do Windows 10 e fui inspecionar a partição a partir da linha de comando ( Shift F10 ). Mas diskpart mostrou-se incapaz de montar a partição, porque aparentemente opera no MBR. (Eu me certifiquei de inicializar a unidade de instalação no modo EFI (por meio de uma sub-rotina de inicialização manual em rEFInd) e, portanto, esperei que diskpart operasse na GPT, mas tudo bem ...)

O MBR originalmente continha quatro partições:

  • ESP
  • Macintosh HD
  • Recuperação HD
  • BOOTCAMP

A GPT continha adicionalmente uma partição de recuperação do BitLocker após BOOTCAMP.
Descobriu-se que a adição da partição Linux tinha mudado BOOTCAMP fora da lista, e fez "Linux HD" a quarta partição.
Eu simplesmente ajustei o MBR para ter o último ponto de entrada para BOOTCAMP novamente, assim "pulando" a partição Linux.

Depois disso, ainda consegui inicializar o OS X e o Ubuntu, e agora também consegui montar a partição do windows em diskpart .
E consegui desbloquear a partição com

manage-bde -unlock W: -Password

provando que 1) eu não estraguei o MBR, e 2) a partição ainda estava intacta.

Em vista disso, tenho certeza de que o problema está no BCR.
Por razões que ainda não são claras para mim, não consigo montar o ESP a partir da unidade de instalação - tentar atribuir uma letra de unidade à primeira partição do disco 0 informa que "Não há volume especificado", mas list volume apenas lista tudo o que é já montado.
bootrec /rebuildbcd também falha horrivelmente, removendo o arquivo BCD da unidade de instalação .
No entanto, posso simplesmente copiar o BCD para a unidade de instalação e usar bcdedit nele.

bcedit /store BCD impressões:

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

Agora, esses unknown não parecem tão bons para mim, então eu os alterei para partition=W: usando

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

E eu verifiquei o resultado:

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

Mas depois de empurrar esse arquivo BCD de volta para o meu ESP, o gerenciador de inicialização do Windows nem me pede mais uma senha, mas imediatamente me exibe um erro diferente, dizendo

Your PC/Device needs to be repaired.

The application or operating system couldn't be loaded because a required file is missing or contains errors.

File: \Windows\system32\winload.efi Error code: 0xc0000225

Eu tentei definir device e osdevice antes e depois de descriptografar a unidade W: , com o mesmo resultado.
A configuração de device para {bootmgr} também não fez diferença. Agora, eu tenho certeza que isso foi um passo atrás, porque ele nem pede mais a minha senha.

Eu também notei que mesmo rodando bcdedit /store BCD fez muitas mudanças no arquivo, dado o fato de que não houve mudanças de dados.
Entre outras coisas, o arquivo aparentemente conteria seu próprio caminho, sendo Volume1\EFI\Microsoft\Boot\BCD para o arquivo BCD original e ??\C:\BCD para meu arquivo modificado.
A princípio, fiquei preocupado que isso de algum modo "impurificasse" o arquivo, mas executei um teste, alterando description de {default} para Windows 42 , o que, mais uma vez, causou muitas alterações no arquivo, mas o gerenciador de inicialização do Windows ainda me pedia uma senha ao usar esse arquivo, portanto, nem um local de arquivo personalizado "impurifica" o arquivo, nem o bcdedit que estou usando está quebrado.

Agora, finalmente, minha pergunta:

Como posso reparar meu BCD?
Ou se esse não é o problema, então o que é e como posso corrigi-lo?

Informação adicional:

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

O gerenciador de boot do Windows com o BCD original:

OgerenciadordebootdoWindowscomoBCDoriginaldepoisdedigitarminhasenha:

OgerenciadordebootdoWindowscomumBCDmodificado:

Atualização1:

EutenteimarcaroBOOTCAMPcomo"inicializável" no MBR, sem nenhuma alteração.

    
por Siguza 13.09.2015 / 22:19

1 resposta

6

O BCD estava bem, era o MBR que estava causando todos os problemas.

Eu já havia descriptografado meu disco [1] e estava tentando reinstalar o Windows, mas ao selecionar o disco, ele me deu um pop-up dizendo algo como "esse disco rígido usa MBR, mas baseado em EFI sistemas só podem ser instalados em unidades GPT ".
Então, aparentemente, no Windows, o MBR tem precedência sobre o GPT.

Eu fui em frente e substituí meu MBR por um "protetor", usando

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)

(No Linux, gdisk deve ser instalado por padrão (caso contrário, tente sudo apt-get install gdisk ), no Mac você pode obtê-lo de aqui .

Isso finalmente resolveu meu problema.

[1] Parece que não é realmente necessário, mas para o registro: Supondo que sua unidade criptografada está rotulada W: , primeiro desbloqueie-a a partir da linha de comando da unidade de instalação e execute manage-bde -off W: , verifique o progresso de vez em quando com manage-bde -status W: e reinicie quando a criptografia atingir 0%.

    
por 15.09.2015 / 20:37