web-dev-qa-db-ja.com

Bitlockerフルドライブ暗号化を使用したWindowsブートでのエラー0xc000000eのトラブルシューティング

注:私はもともとBCDが問題だと思っていましたが、それは間違っていたことが判明しました。


私はもともとラップトップを次のようにセットアップしていました。

  • OS X 10.10とネイティブフルドライブ暗号化(FileVault)を備えた300GBのパーティション。
  • Windows 10とネイティブフルドライブ暗号化(BitLocker)を備えた200GBのパーティション。
  • /EFI/bootのESPにインストールされているrEFIndブートマネージャー。
  • ESP in /EFI/Microsoft/BootにインストールされているMicrosoftブートマネージャー。

2日前、OS Xパーティションを200GBに縮小し、その間に100GBパーティションを追加して、Ubuntuをインストールしました。
それ以来、Windowsを起動できませんでした。
Windowsブートマネージャーに入ると、パスワードの入力を求められますが、その後、「

PC /デバイスを修理する必要があります

予期しないエラーが発生しました。

エラーコード:0xc000000e

次に、Windows 10インストールドライブを挿入し、コマンドラインからパーティションを検査しました(ShiftF10)。
しかし、diskpartは、明らかにMBRで動作しているため、パーティションをマウントできないことが判明しました。
(インストールドライブをEFIモードで(rEFIndの手動ブートスタンザを介して)ブートしたことを確認したので、diskpartがGPTで動作することを期待していましたが、まあ...)

MBRは元々4つのパーティションを格納しています。

  • ESP
  • マッキントッシュHD
  • リカバリーHD
  • ブートキャンプ

GPTには、BOOTCAMPの後にBitLocker回復パーティションが追加で含まれていました。
Linuxパーティションの追加が変更されたため、BOOTCAMPがリストから削除され、「LinuxHD」が4番目のパーティションになりました。
最後のエントリポイントが再びBOOTCAMPになるように、MBRを調整しただけなので、Linuxパーティションを「スキップ」しました。

その後もOSXとUbuntuを起動でき、diskpartからWindowsパーティションをマウントすることもできました。
そして私はなんとかパーティションのロックを解除することができました

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ブートマネージャーはパスワードの入力を要求することすらしませんが、代わりにすぐに別のエラーを表示して、

PC /デバイスを修理する必要があります。

必要なファイルが見つからないかエラーが含まれているため、アプリケーションまたはオペレーティングシステムをロードできませんでした。

ファイル:\ Windows\system32\winload.efiエラーコード:0xc0000225

W:ドライブを復号化する前後に、deviceosdeviceを設定しようとしましたが、同じ結果になりました。
{bootmgr}deviceを設定しても違いはありませんでした。さて、これはもう一歩後退したと確信しています。パスワードを要求することすらなくなったからです。

また、データの変更がなかったため、bcdedit /store BCDを実行してもファイルにかなりの変更が加えられていることに気付きました。
とりわけ、ファイルには独自のパスが含まれているようです。元のBCDファイルの場合はVolume1\EFI\Microsoft\Boot\BCD、変更されたファイルの場合は??\C:\BCDです。
最初は、これによってファイルが「不純化」されるのではないかと心配していましたが、テストを実行して、{default}descriptionWindows 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

元のBCDを使用するWindowsブートマネージャー:

asking for password

パスワードを入力した後の元のBCDを使用したWindowsブートマネージャー:

error 0xc000000e

BCDが変更されたWindowsブートマネージャー:

error 0xc0000225

アップデート1:

MBRでBOOTCAMPを「起動可能」としてマークしてみましたが、まったく変更はありませんでした。

4
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%に達したら再起動します。

6
Siguza