MBR のブート コードをゼロにするにはどうすればよいですか?

MBR のブート コードをゼロにするにはどうすればよいですか?

私の Windows システムには 2 つのドライブがあります。

  • ドライブ 1、システムおよびブート。
  • ドライブ 2、データ ストレージ。

以前、2 番目のドライブに Windows をインストールしていました。現在のセットアップが完了したので、ドライブ 2 のブートセクターから Windows のブート コードを削除したいと思います。具体的には、パーティション テーブルなどを消去するのではなく、NTLDR を検索するコードの一部を削除 (ゼロにする) するだけです。

これを行うためのソフトウェアまたはコマンドはありますか?

答え1

DOS スタイルのパーティション テーブルの場合、MBR は、ドライブの先頭にある非常に小さなセクターの集合として常にドライブ上に存在します。

これは削除すべきものではありません。ブート コードに加えて、ドライブのパーティション テーブルも含まれているからです。これを失うと、ディスク上のデータはそのままでも、アクセスが急に困難になります (私が見たほとんどの OS では、パーティション テーブルが理解できない場合、フォーマットが間違っていると報告され、Windows はドライブをフォーマットするかどうかを尋ねます)。

より詳しい情報:http://technet.microsoft.com/en-us/library/cc976786.aspx

編集: 質問を編集したので、回答を更新します。dd で消去できます。Linux ライブ CD を起動し、マウントされていないデータ ドライブで以下を実行します。

dd if=/dev/<path to data drive> of=/dev/<somewhere safe on windows drive>/mbr.img bs=512 count=1

これにより、何か問題が発生した場合に備えて、パーティション テーブルを含む MBR の 512 バイトのバックアップが作成されます。

446 バイトのブートストラップを消去するには:

dd if=/dev/zero of=/dev/<path of data drive> bs=446 count=1 seek=0

目的に応じて、MBR の最初の 440 バイトのみを消去したい場合があります。最初の 440 バイトに続く 4 バイトには、保持したい Windows 固有のディスク署名が含まれています。最初の 440 バイトのみを消去するには、次のコマンドを使用します。

dd if=/dev/zero of=/dev/<path of data drive> bs=440 count=1 seek=0

答え2

ディスク管理で非アクティブとしてマークするだけで、状況には十分対応できるはずです。

答え3

複雑な答えで申し訳ありませんが、あなたが何をしたいのかよくわかりません(あるいは、 なぜ)。

コマンドを探しているのだと思いますFDISK /CMBR。Paragon Partition Magic や Boot/Partition Editor など、同じタスクを実行するユーティリティもあります。

あなたがしたいのはMBRを書き換えることですそしてD:パーティションを非システム(アクティブではない、起動できない、B フラグがないなど)。

FDISK /CMBRは非システムディスクでのみ動作する必要があることに注意してください。多くのブートローダーは、必要その後、正しいフォーマットまたはジオメトリでディスクを「確認」します。それらをストック ローダーに置き換えると (/CMBR が行うことです)、以前のコードが復元されるまでディスクにアクセスできなくなります。

ディスクがブート シーケンスに干渉するなどの理由でディスクをブート不可にする必要がある場合 (ブートする代わりに「NTLDR が見つかりません」というエラーが表示されるなど)、ブート デバイスの順序に関する BIOS パラメータを変更するか、FDISK のようなユーティリティを使用してそのドライブ上のすべてのパーティションを非システムとしてマークする方がよいでしょう。緊急の場合は、2 つのハード ディスクを交換することで同じ結果が得られるはずです。

それ以外の場合は、「選択的ブートローダー」(GRUB など)を使用して、柔軟なブートオプション(スタートアップメニュー画面から Linux、Windows、または別の Windows を起動するなど)を実装できます。

関連情報