0Xc0E

 最近HDDからSSDへクローンコピー後、起動しないといったケースが良く見られますのでこの記事を再掲いたします。
 今までUEFIモードで起動していたディスクを新しいディスクやSSDなどにコピーし、UEFIモードで再起動を行うと「0xc000000e」の表示が現れ、起動できないといったケースがあります。通常は他のホームページに書かれている通り、「bootrec /fixboot」や「bcdboot c:\Windows /l ja-JP」などのコマンドを実行しても修復できない、またリカバリーCDから他のホームページに書いている通り「スタートアップの修復」を何回も行っても修復できないといったケースがあります。
 この場合、通常はOSのリカバリーを行わればなりませんが、その前にこの方法で修復を試みるのも一つの選択肢となるかもしれません。私はこの方法で無事にUEFI起動を修復することができました。ただし、すべてがこの方法で成功するわけではありません。そこのところは了承してください。
 今回のディスクコピー後の0xc000000e症状の原因はいくつか考えられます。

 A.新規にWinodws8~10を導入しないでWindows7以降、数回OSをアップグレードを行っている。
 B.過去にWindowsのシステムが入っていたディスクを現在別のデータディスク(別ドライブ)として使用している。
 C.ディスクのコピー後、コピー前のディスクを外さずに再起動してしまった。
 といったケースなどがあります。他にもOSのアップグレードでUEFIの起動がおかしくなることもあります。
 この0xc000000eのエラーはファイルが見つからない、または破損しているといったエラーコードです。
 
 まず、フォーマット時に気を付けなければならないのが、SSDを「GPTフォーマット」で行っていたかどうかです。
 フォーマットの形態には「GPTフォーマット」と「MBRフォーマット」があります。

GPT: Globally Unique IDentifier Partition Table の略
MBR: Master Boot Record の略

ですが、UEFIの起動で行う場合はドライブを「GPTフォーマット」で行う必要があります。次に、「EFIパーティーション」を、きちんとクローンコピーしているかということです。
 
W10PPL

 CドライブやDドライブだけクローンコピーして「EFIシステム」の領域をコピーしていない場合はUEFI起動はできません。その場合はもう一度、SSDを「GPTフォーマット」にし、「EFIシステム」を含めたクローンコピーを行ってください。


 きちんとクローンコピーを行って、EFIシステムが存在する。しかしUEFI起動ができないといった場合は次の方法で試してUEFI起動の修復を試みる方法があります。

 ただし、この操作は自己責任で行ってください。あくまでもひとつの方法です。
 
1.まずはBIOS起動を試みる。
 UEFI起動で失敗しても、コピー元とコピー先が起動ディスクである場合、従来のBIOS起動で行うことができる可能性があります。

 UEFIの起動とBIOSの起動の切替はパソコンのBIOS設定で行います。BIOSの設定はパソコンによって違います。
BIOS001
 上記はBIOSの一例です。この画面はコンピュータによって違いますが、BIOSの「BOOT」メニューや「起動順序」などに起動をBIOS/UEFI切替がありますので、この項目を「BIOS」に切り替えてパソコンを起動してみてください。
 
 従来のBIOS起動を行うと、場合によっては「スタートアップの修復」が自動的に実行される場合がります。一旦修復を行いまた再起動を行います。この時、BIOSを「UEFI」に戻して起動してみてください。軽症であれば起動できるかもしれません。しかし、ほとんどはUEFIモードで起動しても同じ「0xc000000e」になると思います。その時はもう一度「BIOS」モードで起動しなおしてください。


2.BIOSモードで起動したらツールを入手

 BIOSモードでうまく起動したら、修復に使うツールを入手します。

MiniTool Partition Wizard (vector) 
MiniToolPW

https://forest.watch.impress.co.jp/library/software/partwizhome/

ディスクのパーティーション管理ソフトです。

EasyBCD
EasyBCD


EasyBCD日本語化ファイル


WindowsVista以降 起動に必要なブートメニューを編集できる管理ソフトです。

まずはこれらのソフトをダウンロードし、インストールを行ってください。EasyBCD日本語化ファイルはzip解凍後、EasyBCDがインストールされているフォルダの「lang」フォルダの中にコピーします。


3.UEFI領域があるか確認する。

まずはMiniTool Partition Wizardを起動します。そして、UEFI領域がディスク上にあるか確認します。
MTP001

 ディスク上にパーティション名「*.system」、容量「100MB~300MB程度」、タイプ「GPT(EFIシステムパーティーション)」という領域があるか確認します。この領域がない場合はEFIの領域がコピーされていないことになります。その場合はこのEFIパーティーションもコピーを行ってください。
 EFI領域が見つかった場合、どのディスク(ディスク1か2か)を確認します。
 
 次に、このパーティーションに一旦ドライブ番号を付けます。上のパーティションの領域図を選択し、右クリックで「パーティーションの表示」を選択します。すると、ドライブ文字を設定できますので、ドライブ文字を設定してください。(ここから先はこのEFIパーティーションのドライブを「S」とします。)
 その後、上の「適用」のアイコンをクリックしてください。この「適用」をクリックしなければドライブ文字が設定されません。必ずクリックしてください。


3.ブート情報を確認します。
 次にOSのブート情報を確認します。EasyBCDを起動します。起動したら、表示モードを「詳細表示(デバックモード)」に切り替えます。

BCD001

 表示が出たら、まずは「Windows Boot Manager」の項目を確認します。
 この項目の中のdevice・pathの項目が

device                  partition=\Device\HarddiskVolume1
path                    \efi\microsoft\boot\bootmgfw.efi

となっていればOKですが、たぶんなっていないでしょう。これをまず変更する必要があります。

 次に「Windows Boot Loader」のWindowsの起動項目を探します。「description」の項目にそれらしき名前を見つけます。この項目の中のdevice・pathの項目が

device                  partition=C: (起動ドライブ)
path                    \WINDOWS\system32\winload.efi


となっていればOKです。なっていなければこの項目も修復する必要があります。

次に、このpathの項目のファイルが実際にあるか確認します。
コマンドプロンプトを管理者モードで立ち上げます。(ファイル名を指定して実行でCMDと入力)

画面が出たら
CD S:\efi\microsoft\boot
dir
と入力します。一覧の中に「bootmgfw.efi」というファイルがあるか確認してください。

次に
cd c:(システムドライブ)\WINDOWS\system32
dir
と入力し「winload.efi」があるか確認してください。両方のファイルがあることが確認したら、変更作業に入ります。


3.変更してみる
 ここからは症状によって違います。上から順番に行ってください。うまく起動できたら4に進んでください。
 作業に入る前にバックアップをとっておきます。
BCD004

 バックアップと復元で現在のブートローダをバックアップを行ってください。次に詳細表示(デバックモード)の内の一覧もすべて選択し、メモ帳などに貼り付け、新規に保存を行います。
 バックアップしたら次に進みます。

A.まずはpathを単純に変えてみる
ブートマネジャー側の項目が違っている場合、コマンドで次のように入力します。

Bcdedit /set {bootmgr} device partition=s:// system partition
Bcdedit /set {bootmgr} path \efi\microsoft\boot\bootmgfw.efi

ブートローダー側の項目が違う場合は、まずはidentifierの項目を{}含めてメモ帳などにコピーしておきます。
そして

Bcdedit /set identifierの項目{}含め device partition=c:
Bcdedit /set identifierの項目{}含め osdevice partition=c:
Bcdedit /set identifierの項目{}含め path \windows\system32\winload.efi

例)Bcdedit /set {48482078-3a71-11e8-83d7-3464a90a5c68} device partition=c:
  Bcdedit /set {48482078-3a71-11e8-83d7-3464a90a5c68} osdevice partition=c:
  Bcdedit /set {48482078-3a71-11e8-83d7-3464a90a5c68} path \windows\system32\winload.efi

入力が終わったら、いったん終了し、UEFIモードで再起動してみます。

B.ブートファイルを再作成してみる。

 上記で起動できなかった場合、ブートファイルを復元・修復してみます。EasyBCDを開き、「バックアップと復元」を選択します。
BCD005

 BCD管理オプションの「ブートファイルを再作成・修復」を行い、UEFIモードで再起動してみます。
 
C.ブートファイルを完全にリセット

 上記2つのの方法でもダメだった場合、完全にブートファイルをリセットします。この作業は非常に危険であり、リセット後きちんと設定を終了してから再起動してください。途中で再起動すると立ち上がらなくなります。また自信のない方は絶対に行わないでください。
 
 EasyBCDを開き、「バックアップと復元」から「BCD構成をリセットします」を選択します。
 これを選択したらすべて一旦ブートメニューの項目が消えます。
 BCD006
 ブート項目がすべて消えたら、まずはメニューを新規登録します。EasyBCDの「新規登録」から
登録してください。この時項目を2つ作成します。一つは「WindowsUEFI」という名前、もう一つは「Windows BIOS」という名前で登録します。

 次に、設定を表示を詳細表示(デバックモード)で開きます。
 コマンドプロンプトを立ち上げ、ブートマネジャー側を設定します。コマンドプロンプトを立ち上げ、次をコマンドを入力します。

Bcdedit /set {bootmgr} device partition=s:// system partition
Bcdedit /set {bootmgr} path \efi\microsoft\boot\bootmgfw.efi

 次に、ブートローダー側を設定します。まずは「WindowsUEFI」側を行います。

Bcdedit /set identifierの項目{}含め device partition=c:
Bcdedit /set identifierの項目{}含め osdevice partition=c:
Bcdedit /set identifierの項目{}含め path \windows\system32\winload.efi

次に、「Windows BIOS」側を設定します。

Bcdedit /set identifierの項目{}含め device partition=c:
Bcdedit /set identifierの項目{}含め osdevice partition=c:
Bcdedit /set identifierの項目{}含め path \windows\system32\winload.exe


「WindowsUEFI」のパスのファイル名が「winload.efi」「Windows BIOS」のパスのファイル名が「winload.exe」と違っていることに注意してください。

 入力が終わったらEasyBCDを閉じ、再度開きます。

 次に、EasyBCDの「メニューの設定」を開きます。
BCD007

 「WindowsUEFI」の登録名に「規定のOS」にチェックを入れます。そして、OSが起動するまでの時間にチェックを入れ、秒数を入力し「設定を保存」します。
 すべて終わったらすべてを閉じ、UEFIモードで再起動します。この段階までいくとほぼ成功すると思います。UEFIモードでOSの選択が出てきたら「WindowsUEFI」を選択してください。もし、これでも出ない場合はUEFIファイルが破損している可能性があります。その場合BIOSモードで起動しOSの選択で「Windows BIOS」を選択してください。


4.後処理
 UEFIモードで起動したら後処理を行います。一番最初でUEFI領域をドライブ設定していたものを解除します。
 MiniTool Partition Wizardを起動します。先ほどのドライブ文字を設定したようにパーティションの領域図を選択し、右クリックで「パーティーションの表示」を選択します。そして「ドライブ文字」を「なし」に設定します。
 次にEasyBCDをデバックモードで表示します。
ブートマネジャー側のデバイス側が

device                  partition=\Device\HarddiskVolume1

(HarddiskVolume1はUEFIが入っているディスク番号、ディスク2に入っている場合HarddiskVolume2」になっています。)
となっているのを確認してください。もしなっていない場合はコマンドプロンプトを管理者モードで開き、
Bcdedit /set identifierの項目{}含め device partition=\Device\HarddiskVolume1

と入力します。この時点で Bcdedit /set の次が {bootmgr}ではなく、{9dea862c-5cdd-4e70-acc1-f32b344d4795}などといった identifierの項目になっているのに注意してください。


 この作業は今回私が遭遇し行った作業です。この作業がベストとは必ずしも限りません。ブートメニューの修正は一歩間違えるとOSが立ち上がらなくなります。作業は自己責任でお願いします。また、自信のない方はこの作業を行わないほうが良いと思います。この作業を行う場合は十分注意して行ってください。