旅行などの時の持ち出し専用のDell mini 10vのハードディスクの入れ替えのため、LinuxでOSのパーティションをコピーしたところ、起動不能になった。
Windows XPの時は、回復コンソールからfixboot
やfixmbr
コマンドを使ったものだが、Windows 8はほぼ自動化されていて便利…
Windows 8のブートローダを修復
Windows 8セットアップDVDで起動して、
セットアップ開始画面で、「コンピュータを修復する」を選ぶ
「トラブルシューティング」を選ぶ
「詳細オプション」を選ぶ
「自動修復」を選ぶ
自動的にブート構成データ(BCD)が修復される。ただし、LinuxのGRUB2がインストール済みのMBRは書き換わらない。
Windows XPのBCDエントリを修復
Windows 8を起動して、管理者権限でコマンドプロンプトを開いて
bcdedit
Windows ブート マネージャー
——————–
identifier {bootmgr}
device partition=D:
path \bootmgr
description Windows Boot Manager
locale ja-JP
inherit {globalsettings}
default {current}
resumeobject {12345678-1234-1234-1234-1234567890123}
displayorder {ntldr}
{current}
toolsdisplayorder {memdiag}
timeout 30
Windows レガシ OS ローダー
————————
identifier {ntldr}
device undefined
path \ntldr
description Windows XP
Windows ブート ローダー
————————
identifier {current}
device partition=C:
path \Windows\system32\winload.exe
description Windows 8 Pro
locale ja-JP
recoverysequence {12345678-1234-1234-1234-1234567890123}
integrityservices Enable
recoveryenabled Yes
osdevice partition=C:
systemroot \Windows
resumeobject {12345678-1234-1234-1234-1234567890123}
bootmenypolicy Standard
赤で示した所が初期化されてしまっているため、ntldrが見つからなくなってしまっている。これを、書き換える。パーティションのドライブ名は、Windows 8が「C:」なので、「D:」とする。(実際は、XPのほうが若い番号のパーティションなのだが…)
bcdedit /set {ntldr} device partition=D: