Palm84 某所の日記

死のうは一定、しのびクマには何しよぞ...

Windows 7/Vista でMBRブートストラップ修復のいろいろ

2011.6.8 ちょこちょこ追記

正確に言うと、「MBRへ標準(的)ブートストラップの書き込み」ですかな。

【注意】メーカー製PCではリカバリープログラム用に独自のブートストラップが書き込まれている場合があります。まず付属マニュアルかサポートサイトを確認した方がよろしおます。

ここのんはあくまで(Windows標準の)一般的な手段やでぇー、です。

マチゴて内蔵HDのMBRにGRUB入れてもうたがな!とか、GRUB消してWindowsに戻したいねん!な時に。

まぁ知っとったらそないメンドいことやあれへんのちゃうかな?(「せやな!」「せやせや!」)

ちなみに、この標準(的)ブートストラップというやつは、アクティブ・パーティションのPBRをロードするだけのものなので、アクティブに別のブートローダーを入れたりもできまする。

あっと、あくまでGRUBをどうこうしたいとか明確な目的がある場合の話です。「なんやわけわからんけどとりあえずMBRの修復してみよかー」なノリでやってまうとアブナイことかもしれませぬ。(※ メーカー製PCではリカバリープログラムが起動できなくなったりするかも)

注意

Windows 7/Vista やと下記コマンドはやったらあかんのですわ。起動せんようになってまいますで。

  • fdisk /mbr (MS-DOS, FreeDOS)
  • install-mbr (Linux など)
  • ms-sys -z, ms-sys --mbrzero (Linux など)
  • TestDisk バージョン 6.12 までの MBR Code (※ バージョン 6.13 では修正されてるかも?)
アクティブ設定の確認とか

これしたけど「BOOTMGR is missing」が出よんねんな場合は確認が必要かも。

Windows 標準方式

Windows PE(RE) 上のコマンド プロンプトで実行します。(※「スタートアップ修復」では問答無用の上書きはされない模様です)

  • bootrec /fixmbr
    • インストールDVDでブート(「コンピューターを修復する」)
    • Windows 7 のシステム修復ディスクでブート
    • Windows RE(「コンピューターの修復」)
  • bootsect /nt60 sys /mbr(【注】PE 2.1, Vista SP1 以降)
    • インストールDVDでブート(「コンピューターを修復する」)
    • Windows 7 のシステム修復ディスクでブート
    • Windows RE(「コンピューターの修復」)
    • Windows PE (Windows AIK)
      • 2.1 は Vista 仕様、3.0 は 7 仕様

【注意】Windows PE の bootsect.exe について、 PE 2.1 基本イメージには入ってないので作成時に追加すること。(※ 3.0 基本イメージや 7 の「システム修復ディスク」には含まれているので追加は不要。)

Windows RE(Windows 回復環境)は 7 では標準でHDにインストール(「コンピューターの修復」)されてるので、起動時F8(F5)キー連打で起動できるはずです。Vista でもメーカー製PCではインストールされてるかも。

GRUBなどから HD上の Windows RE を呼び出す場合は...

MBRへGRUBなどをインストールしていても RE の起動はできますです。ただ、ちとタイミングが難しいかも。私は GRUB などからWindows を選択直後にF8連打してブートメニューを出してます。

MBRブートストラップがおかしなってもうて何にも起動できない場合は、GRUB for DOS 起動ディスクやSYSLINUX(+ chain.c32)入りUSBメモリなどで BOOTMGR のあるパーティションをチェインロードしてみませう。

CDなら Puppy Linux 4.3.1 とかブートローダーが GRUB for DOS なので便利ですお。

【追記】Super Grub Disk が簡単かな?

Linuxなど

むっちゃビミョーなかんじがしますが(何)。標準方式を取れない場合とかに。

※ ちなみに grubinst.exe (grubinst_gui.exe) ではMBR2番目セクタにバックアップがありました。GRUB2ではバックアップはないみたい。

SYSLINUX の mbr.bin

Windows のものとは違うけど、アクティブ・パーティションのPBRをロードするだけの標準(的)ブートストラップ。altmbr.bin, gptmbr.bin などいくつか種類あり。

dd や cat コマンドなどで書き込みします。

ms-sys

バージョン 2.1.4 以降で Vista 及び 7 仕様のMBRブートストラップの書き込みが可能になりました。

下記の Linux LiveCD に入ってます。(※ KNOPPIX 6.4.4 に入ってるのは 2.1.3 で古いバージョンなので注意)。

  • SystemRescueCd バージョン 2.0.1 以降
  • Parted Magic バージョン 4.6 以降
  • CDlinux バージョン 0.9.5 以降
  • BG-Rescue Linux バージョン 0.9.2 以降
  • ms-sys --mbrvista /dev/sdx - Vistaブートストラップ
  • ms-sys --mbr7 /dev/sdx - 7 ブートストラップ

それぞれ Vista/7 標準と全く同じ440バイトが書き込みされました。

Super Grub Disk (1)

GRUB修復用ってウリですが、高機能な緊急起動ディスクとして使えます。

※ 注)Super Grub2 Disk はこの機能なし。

実行してないのでよくわかってませんが...

Windows のMBR修復は SYSLINUX のブートストラップ(299バイト)を書き込みするようです。