注:私はもともとBCDが問題だと思っていましたが、それは間違っていたことが判明しました。
私はもともとラップトップを次のようにセットアップしていました。
/EFI/boot
のESPにインストールされているrEFIndブートマネージャー。/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つのパーティションを格納しています。
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:
ドライブを復号化する前後に、device
とosdevice
を設定しようとしましたが、同じ結果になりました。{bootmgr}
にdevice
を設定しても違いはありませんでした。さて、これはもう一歩後退したと確信しています。パスワードを要求することすらなくなったからです。
また、データの変更がなかったため、bcdedit /store BCD
を実行してもファイルにかなりの変更が加えられていることに気付きました。
とりわけ、ファイルには独自のパスが含まれているようです。元のBCDファイルの場合はVolume1\EFI\Microsoft\Boot\BCD
、変更されたファイルの場合は??\C:\BCD
です。
最初は、これによってファイルが「不純化」されるのではないかと心配していましたが、テストを実行して、{default}
の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
元のBCDを使用するWindowsブートマネージャー:
パスワードを入力した後の元のBCDを使用したWindowsブートマネージャー:
BCDが変更されたWindowsブートマネージャー:
MBRでBOOTCAMPを「起動可能」としてマークしてみましたが、まったく変更はありませんでした。
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%に達したら再起動します。