Windowsはブートローダーを別のドライブに移動しました

Windowsはブートローダーを別のドライブに移動しました

私はデュアル ブート インストールを行っています。最初に、セカンダリ ドライブを外した状態で Windows 7 を独自のディスク (C:) にインストールしました。Windows は他のドライブを混乱させる傾向があることを知っていたため、この方法を採用しました。次に、セカンダリ ドライブを接続してデータ パーティション (D:) を作成し、3 番目のパーティションに Linux をインストールしました。

総括する:

  • ディスク 1: Windows パーティション (C:)
  • ディスク 2: データ (D:)、Linux (ファイルシステムのため Windows からは見えません)、スワップ。

Linuxがインストールされると、2番目のディスク(UEFIではなくBIOS)にGRUBもインストールされます。そのため、Windowsブートローダーは、C:にインストールされました。は使用されませんでした。それでも、緊急時に 2 番目のディスクを取り外したり、ディスクに障害が発生したりした場合でも、Windows 7 ブートローダーは機能しました。

これは何年も問題なく動作しています。

今月のWindows Updateの一部として、サポート終了メッセージとWindows 10へのアップグレードの可能性を知らせるアップデートに関連していると思われますが、Windows 7 は独自のブートローダーを C: からセカンダリ ディスク (D:) のデータ パーティションに移動しました。bootmgr.exe現在、D: にはと のフォルダーがありBoot、C: にはフォルダーがありません。

GRUB によるデュアル ブートは引き続き正常に動作しますが、Windows 独自のブートローダは、本来あるべき場所である C: に残しておきたいと思います。bootmngr.exe と Boot フォルダを C: にコピーするだけで十分でしょうか。それとも、Windows インストール DVD を使用して Windows インストールを「修復」する必要がありますか。また、そのディスクだけを修復した場合、セカンダリ ディスクの GRUB は引き続き動作しますか。

更新: (2019 年 12 月) 再び発生しました。セキュリティ累積パッケージをインストールしたところ、Windows はインストールされた SSD が不良であると判断し、別のハード ドライブに移動したようです。

答え1

アップデート 2 台目のディスクを外して再起動すると、Windows は通常モードではなく修復モードで起動しました。「スタートアップ修復」を選択しましたが、機能しませんでした。Windows は自動的に修復できないと表示されました。表示されたエラーの詳細は、「NoOsLoader」のような内容でした。元の Windows インストール DVD を挿入して PC を再起動しました。BIOS に「DVD から起動するには任意のキーを押してください」と表示されたので、それを実行して DVD から起動しました。タイムゾーンとキーボードを選択し、もう一度「スタートアップ修復」を選択すると、完全な再インストールを実行することなく、不足しているブートローダーが修正されました。Windows が再び再起動し、今度は C: から通常どおり起動できるようになりました。この間ずっと、Windows 修復ユーティリティがこのディスクを操作しようとした場合に備えて、セカンダリ HDD (電源ケーブルとデータ ケーブルの両方) は外されていました。修復が成功したことを確認した後、もう 1 台の HDD を再び接続して Linux を起動しました。D: パーティションを検査すると、以前は存在しなかったが最近 Windows によって作成されたファイルを見つけました。

/boot
bootmgr.exe

つまり、それが間違いなく問題の原因でした。Windows が独自のブートローダーを任意のパーティションに移動していたのです。

これらのファイルは、本来あるべき場所である C: にすでに再インストールされていたため、削除しました。

今後このような事態が起こらないようにするには、2 つの選択肢があります。

  1. 「セキュリティ」アップデートは明らかにブートローダーに影響を及ぼすため、二度とインストールしないでください。
  2. Windows で D: パーティションを無効にします。

答え2

これは私が約 1 年前に経験した問題です。古い HDD から新しい SSD へのデータの移行を容易にするために、2 番目のドライブに Windows をインストールしようとしていました。インストール中に、バグか仕様かはわかりませんが、Windows は他のディスク上のブートローダーを検出し、そこにインストールします。どう考えても、正しいディスクにブートローダーをインストールすることができず、解決しようとすると、ブルー スクリーンが表示されるか、「OS が見つかりません」というメッセージが表示されました。

最善策は、Linux ディスクを外した状態でインストール ディスク/USB を使用して Windows を修復することです。ファイルを移動することはおそらく可能ですが、Microsoft はユーザーの生活を悲惨なものにする可能性のある関連付けを作成することを好むため、お勧めしません。

答え3

Windows 7 の起動プロセスは非常に脆弱であるため、この問題は微妙です。

理論的には、ブート フォルダーを含むシステム予約済みパーティションを D から C にコピーすることは可能ですが、いくつか注意点があります。

  • Windows 7 パーティションは、正確なセクター アドレスに保持する必要があります。そうしないと、ブート プロセスが機能しません。ディスク領域を解放するためにパーティションを移動すると、ブートできなくなる可能性があります。

  • システム予約済みパーティションを D から C にコピーした後、BCD を設定するコマンドは次のようになります。

    bcdboot c:\windows /s c:
    

    また、Windows 内部から発行する必要があるため、grub から起動する必要があり、どの BCD ストアが更新されるかは不明です。D にあるものであれば、USB からコマンド プロンプトに Windows 7 を起動し、正しいボリューム文字を使用して Linux ディスクを外した状態でこのコマンドを発行する必要があるかもしれません。

始める前に、いくつかの予防措置を講じることをお勧めします。

上記の予防措置のいくつかを省略できるかもしれませんが、その場合は運に頼る必要があります。

関連情報