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が立ち上がらなくなります。作業は自己責任でお願いします。また、自信のない方はこの作業を行わないほうが良いと思います。この作業を行う場合は十分注意して行ってください。