MBRハードディスクを追加した後、Windows(GPTディスク上のUEFIブートを使用)は起動しなくなります。

MBRハードディスクを追加した後、Windows(GPTディスク上のUEFIブートを使用)は起動しなくなります。

最近、UEFI ブートと GPT を使用して、新しい SSD に Windows 7 64 ビットをインストールしました。システムは正常に動作していました。古いシステム HD をシステム (MBR を使用) に追加した後、Windows が正しく起動しなくなりました。SSD から起動すると、通常の起動画面が表示され、Windows がファイルを読み込んでいることを通知します。その後、起動画面が消え、EFI シェルになり、起動できなくなります。古い HD を取り外すと、Windows は問題なく再び起動します。

古いハードディスクをフォーマットせずに、この構成で起動することはできますか?

MSI Z77-G65A ボードを使用しています。UEFI ブート用に構成されており、SSD からブートします。両方のドライブは独立した HD として設定されています (RAID が誤ってアクティブ化されることはありません)。SSD は SATA-6G ポートに接続され、古いドライブは SATA-3G ポートに接続されています。

答え1

ディスク署名を削除すると問題は解決しました。これは次のコマンドで実行できます。

dd if=/dev/zero of=/dev/sdb bs=1 count=4 seek=440 conv=notrunc

ルート権限を持つ Linux シェルで。

背景:
Windows 2000 以降、Microsoft は各ディスクの MBR に 4 バイトの値 (ディスク署名) を書き込み、各ディスクを識別できるようにしています。2 つのディスクに同じ識別子があると、問題が発生します。前述のコマンドは、この署名をゼロに置き換え、Windows に新しい一意の値を割り当てるように指示します。

ディスク署名を上書きする前に、ブートローダー (MBR のバイト 0 ~ 439) をゼロに置き換えることも試みたことに注意してください。これだけでは、問題は解決しませんでした。

編集:この解決策で問題が解決したのは、1 回の起動時だけでした。2 回目の起動を試みると、同じ問題が再発しました。ディスク署名を再度上書きすると、起動できるようになりましたが、これも 1 回のみでした。
上記の状況から判断すると、Windows が不適切なディスク署名を選択したために、問題が再発するようです...

編集2:UEFI モードで起動すると、Windows 7 64 ビットは MBR ディスク上の拡張パーティションを正しく処理できないようです。バグについては、ここで説明されています。

修正プログラム 1 修正プログラム 2

どうやら、拡張パーティションが誤って UEFI パーティションとして認識されているようです。これらの 2 つの修正プログラムで問題は解決するはずですが、インストール メディアにすでに統合されている必要があります。

答え2

私も同様の問題を抱えていました。Windows ディスク マネージャーを使用して、2 番目のディスク ドライブにプライマリ パーティションと拡張パーティションを追加し、合計 4 つのパーティションを作成しました。その後、Windows を起動できなくなり、修復オプションもすべて機能しなくなりました。

回避策としては、BIOS で 2 番目のディスク ドライブを無効にすることです。

私の解決策は、緊急修復ディスクから実行している diskpart コマンドを使用して、2 番目のディスク ドライブを MBR から GPT に変換することでした。後から考えてみると、Windows をインストールしたときに、最初のディスク ドライブ (SSD) のみをフォーマットしましたが、これはデフォルトで GPT に設定されているはずです。2 番目のドライブは Windows ディスク マネージャーを使用してフォーマットしましたが、ソフトウェアはデフォルトで MBR に設定されているはずです。

この投稿を見つけてよかったです。問題は 2 つのディスク ドライブのいずれかまたはマザーボードではなく、ソフトウェアにあると特定されているからです。

関連情報