クローン後に起動しないブートローダーを修復する方法
パソコンの「HDDの空き容量が少なくなった。」または、「HDDをSSDに換装して速くしたい。」など、今ではフリーソフトを使用して簡単にHDDやSSDのクローンができる。
しかし、クローン後に換装したパソコンが起動しないことはよくあることである。クローンが簡単にできるために精神的なギャップは大きいだろう。
起動できない原因はたくさんあるが、クローンソフトは何かの理由で、ブートローダーのデバイスを特定できなかったため、ブートローダーにデバイス設定を放置してクローンしてしまった。このような場合、OSは立ち上がることができないためにパソコンは起動しなくなる。
このページでは上記のように、Windowsのブートデバイスを特定できない状態でクローンされたブートローダーを修復する方法を記すことにする。
【留意事項】
Windowsのバージョンやエディションおよびアップデート状況などにより、表示画面および機能または操作手順などが若干異なる場合がある。
管理者権限でコマンドプロンプトが起動できれば何を使用しても問題ないが、ここではWindows 11のインストールメディアを起動し、コマンドプロンプトを起動する手順を記す。
▶ 手順 1
起動する前に、パソコンに接続するものは、起動デバイスおよびキーボードとマウスだけにして、他のメディアなどはすべて取り外す。
起動デバイスがファーストブートの設定になっていない場合は、BIOSを設定する必要がある。このページでは、Windows 11のISOファイルを焼いたDVDを使用したため、ファーストブートをDVDに設定した。
また、起動デバイスにUSBメモリを使用する場合は、ファーストブートをUSBに設定する必用がある。
▶ 手順 2
準備ができたら、起動メディアをパソコンのDVDレコーダーまたは、USBソケットにセットして電源を入れる。
DVDの場合は、起動すると以下画像の「Press any key to boot from CD or DVD ...」が表示されるため、すかさず好みのキーを押す。
USBメモリの場合は、これらは表示されない。直接手順3の「言語とその他の項目を入力」画面が表示されるため、手順3へ進む。
DVDの場合は、しばらくすると読込中のローディングアニメーションが表示される。
USBメモリも試みたが、ローディングアニメーションの表示はなかった。
▶ 手順 3
「言語とその他の項目を入力」画面が表示されるが、キーボードの種類が違う場合は変更し、他はデフォルトのままで問題ないため、[次へ]のボタンをクリックする。。
▶ 手順 4
画面が変わるため、左下[コンピューターを修復する]の文字をクリックする。
▶ 手順 5
ここからは 起動メディアやWindowsのバージョンなどにより、アイコンの表示方法などが、以下の画像と若干異なる場合がある。
「オプションの選択」が表示されるため、[トラブルシューティング] をクリックする。
▶ 手順 6
「詳細オプション」が表示されるため、[コマンドプロンプト]をクリックする。
▶ 手順 7
管理者権限でコマンドプロンプト画面が立ち上がり、コマンド入力待ち状態になる。
以前の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などのツールが用意されてはいるが、いずれも若干の問題が残るためここでは見送り、手打ちで修正することにする。
▶ 手順 1
コマンドプロンプトのカーソル位置に[ bcdedit ]と入力し、[Enter]キーを押す。
以下画像のようにWindowsブート マネージャーおよびWindowsブート ローダーの一覧が表示される。ここでは、以下画像の赤い下線のWindowsブート ローダーを参照する。
❼ のdeviceは、unknownになっている。
❽ のosdeviceは、unknownになっている。
「デバイスの場所は?」「何だか分からないよ!」と、言っている。
何かの理由で、クローン時に起動デバイスを特定できていないようである。これでは起動できないのも不思議ではない。
▶ 手順 2
bcdedit コマンドツールで、deviceおよびosdeviceの位置を指定し、起動できるようにする。このページではシングルブートしている場合を記す。
ブートデバイスがC:ドライブの場合、カーソルの位置に、以下2つのコマンドを入力する。
❼ [ bcdedit /set {default} device "partition=C:" ]を入力し、[Enter]キーを押す。「この操作を正しく終了しました。」と表示されれば成功である。
❽ [ bcdedit /set {default} osdevice "partition=C:" ]を入力し、[Enter]キーを押す。「この操作を正しく終了しました。」と表示されれば成功である。
▶ 手順 3
入力が成功したら確認するため、カーソル位置に[ bcdedit ]と入力して[Enter]キーを押し、Windowsブート ローダーを確認する。
❼ のdeviceは、partition=C:に変更されている。
❽ のosdeviceは、partition=C:に変更されている。
▶ 手順 4
確認できたらカーソル位置に[ shutdown /s ]と入力し、[Enter]キーを押してパソコンをシャットダウンする。完全にシャットダウンできたらパソコンを起動する。
このページでは、UEFIモードの起動デバイス変更を記してきたが、レガシモードも同様に変更できる。また、基本的にはUEFIモードはGPTファイル形式で、レガシモードの場合はMBRファイル形式を使用している。
UEFIモードまたはレガシモードを調べるには、ファイル名を指定して実行を開き、名前のフォーム内に[ msinfo32 ]と入力し[OK]ボタンをクリック、または[Enter]キーを押す。するとシステム情報が表示され、BIOSモード項目右ペイン内の値を見ると確認できる。