クローン後に起動しない ブートローダー修復

パソコンの「HDDの空き容量が少なくなった。」または、「HDDをSSDに換装して速くしたい。」など、今ではフリーソフトを使用して簡単にHDDやSSDのクローンができる。
しかし、クローン後に換装したパソコンが起動しないことはよくあることである。クローンが簡単にできるために精神的なギャップは大きいだろう。
起動できない原因はたくさんあるが、クローンソフトは何かの理由で、ブートローダーのデバイスを特定できなかったため、ブートローダーにデバイス設定を放置してクローンしてしまった。このような場合、OSは立ち上がることができないためにパソコンは起動しなくなる。
このページでは上記のように、ブートデバイスを特定できない状態でクローンされたブートローダーを修復する方法を記すことにする。
※ このページで使用した OSおよび画像は、Windows 10 21H1である。
管理者権限でコマンドプロンプトが起動できれば何でもいいが、ここではインストールメディアを起動し、コマンドプロンプトを立ち上げる手順を記す。
起動する前に、パソコンに接続するものは、起動デバイスおよびキーボードとマウスのみにして、他のメディアはすべて外す。
起動デバイスがファースト起動の設定になっていない場合は、BAIOSを設定する必要がある。最近の起動デバイスは、USBメモリが多く使われているが、今回は Windows 10の ISOファイルを焼いた DVDを使用した。
⑴ 起動メディアをパソコンにセットして、電源を入れる。
⑵ 起動すると Press any key to boot from CD or DVD ... が表示されるため、すかさず好みのキーを押す。

しばらくすると、Windows 10のロゴと読込中のローディングアニメーションが表示される。

選択画面が表示されるが、キーボードの種類が違う場合のみ変更し、他はデフォルトにする。
⑶ [次へ] をクリックする。

⑷ 左下の [コンピューターを修復する] をクリックする。

ここからは 起動メディアや Windowsのバージョンなどにより、アイコンの表示方法などが、以下の画像と若干異なる場合がある。
⑸ オプションの画面が表示されるため、[トラブルシューティング] をクリックする。

⑹ 詳細オプションの画面が表示されるため、[コマンドプロンプト] をクリックする。

背景がブラックのコマンドプロンプト画面が、管理者権限で立ち上がり、コマンド入力待ち状態になる。

以前の Windowsでは、システムをブートするには、システムドライブのルートに置かれた boot.ini のテキストファイルを参照していたが、Windows Vista以降では、Windowsのブートメカニズムが抜本的に変更され、BCD (Binary-Coded Decimal)ブート構成データストアに格納された。格納フォルダは %WINDIR%\System32 である。
この BCD を参照するには、BCDを管理するためのコマンドラインツール bcdedit を使用する。
※ 参考
bcdeditを使用して BCDを変更するには、管理特権が必要であり、管理者権限でコマンドプロンプトを起動するか、Windows PE(インストールメディアなど)を使用する。また、変更した bcdeditの設定をディスクに確実にフラッシュするには、通常のシャットダウンと起動が必要になる。
スタートアップの問題を解決するには、Windows REを使用し、ブートセクターを新規インストールする bootrec /FixBoot および UEFIでは無効だが MBRを上書きする bootrec /FixMbr などのツールが用意されてはいるが、いずれも若干の問題が残るためここでは見送り、手打ちで修正することにする。
⑴ コマンドプロンプトのカーソル位置に [ bcdedit ] と入力し、[Enter] キーを押す。
以下画像のように Windows ブート マネージャーおよび Windows ブート ローダーの一覧が表示される。ここでは、以下画像の赤い下線の Windows ブート ローダー を参照する。
❼ の device は、unknown になっている。
❽ の osdevice は、unknown になっている。
「デバイスの場所は?」「何だか分からないよ!」と、言っている。
何かの理由で、クローン時に起動デバイスを特定できていないようである。これでは起動できないのも不思議ではない。

⑵ bcdedit コマンドツールで、device および osdevice の位置を指定し、起動できるようにする。
※ ここではシングルブートしている場合を記す。
ブートデバイスが C:ドライブ の場合、カーソルの位置に、以下の2つのコマンド❼および❽を入力する。
❼ [ bcdedit /set {default} device "partition=C:" ] を入力し、[Enter] キーを押す。「この操作を正しく終了しました。」と表示されれば成功である。
❽ [ bcdedit /set {default} osdevice "partition=C:" ] を入力し、[Enter] キーを押す。「この操作を正しく終了しました。」と表示されれば成功である。

⑶ 入力が成功したら確認するため、カーソル位置に [ bcdedit ] と入力して [Enter] キーを押し、Windows ブート ローダーを確認する。
❼ の device は、partition=C: に変更されている。
❽ の osdevice は、partition=C: に変更されている。

⑷ 確認できたらカーソル位置に [ shutdown /s ] と入力し、[Enter] キーを押してパソコンをシャットダウンする。
⑸ 完全にシャットダウンできたら、パソコンを起動する。
このページでは、UEFIモードの起動デバイス変更を記してきたが、レガシモードも同様に変更できる。
また、基本的には UEFIモードは GPTファイル形式で、レガシモードの場合は MBRファイル形式を使用している。
UEFIモードまたはレガシモードを調べるには、ファイル名を指定して実行 を開き、テキストボックスに [ msinfo32 ] と入力し [OK] ボタンをクリックする。
するとシステム情報が表示され、BIOSモード 項目の右側の値を見ると確認できる。