GRUB を消して WBM(Windows Boot Manager)を復旧した
Let's note CF-S9 に Ubuntu oneiric を入れて Windows 7 とのデュアルブートにしたものの、諸々の事情でブートマネージャを GRUB から WBM に戻す必要が生じ試行錯誤したときのメモ。
この通りにやれば復旧できるというものではなくたまたまこうやったらうまくいきましたというだけの記事であって、これを参考にした結果何かトラブルが発生したとしても私は責任を取らないのでよろしくお願いします。今回は OS が起動しなくなる可能性もあるので特に。
前提
基本
Windows 回復環境で
>bootrec /fixboot >bootrec /fixmbr
詳しくは Windows 回復環境で Bootrec.exe ツールを使用して Windows Vista でのスタートアップの問題をトラブルシューティングして修復する方法 や他のブログを参照。
Let's note に Windows のインストールディスクが付属していなかったため、上記の記述の通りに作業することはできません。代わりになるか分かりませんが「システム修復ディスク」は作成しておきました。
パーティションの状態
/dev/sda1 | 回復パーティション(リカバリデータが入っているのでしょう) |
---|---|
/dev/sda2 | 回復パーティション(用途不明。Linux でいう /boot のようなもの?) |
/dev/sda3 | Windows 7 がインストールされている(C:) |
/dev/sda4 | 拡張パーティション |
/dev/sda5 | ユーザデータ保存用(D:) |
/dev/sda6 | Ubuntu (root) |
/dev/sda7 | Ubuntu (/swap) |
「コンピューターの修復」におけるドライブレターの割り当て
インストールされている Windows とは異なる割り当てられかたをします。
C: | /dev/sda5 |
---|---|
D: | /dev/sda1(アクセス不可) |
E: | /dev/sda3 |
F: | /dev/sda2 |
インストール時の自動認識による GRUB ブートメニュー
Ubuntu, with Linux 3.0.0-12-generic | /dev/sda6 |
---|---|
Windows Recovery Environment (loader) (on /dev/sda1) | /dev/sda1 |
Windows 7 (loader) (on /dev/sda2) | /dev/sda2 |
Windows 7 (loader) (on /dev/sda3) | /dev/sda3 |
※ memtest などは省略
- sda1 からの起動はリカバリ専用
- sda2 から起動するときに F8 連打で表示される「詳細ブート オプション」には「コンピューターの修復」が含まれる
- sda3 でも F8 でメニューを表示できるが「コンピューターの修復」はない
sda2 から起動
- F8 連打 →「コンピューターの修復」
- bootsect が壊れているようなので自動修復しますかみたいなことを最初に訊かれたが、おかしな修復をされると困るのでキャンセル
- この時はすんなり sda3 にある Windows にログインできたような気がする
- コマンドプロンプトで bootrec /fixboot したがエラー
E:\>bootrec /fixboot
このボリュームは認識可能なファイル システムではありません。
必要なファイル システム ドライバーがすべて読み込まれているか、ボリュームが壊れていないか確認してください。
作成しておいたシステム修復ディスクから起動
- 自動修復するかと同様に訊かれたがキャンセル
- sda3 の Windows を認識せずログインできない
- ログインできなくても [次へ] ボタンを押して「システム回復オプション」画面に進むことができる
- コマンドプロンプトで bootrec /fixboot → さっきと同じエラー
もう一度 sda2 から起動
- F8 連打 →「コンピューターの修復」
- 自動修復キャンセル
- こちらでも sda3 の Windows が発見されない
- 「システム回復オプション」から「スタートアップ修復」を実行
さらに sda2 から起動
- F8
- 今度は sda3 の Windows が見つかったのでログイン
- 再度「スタートアップ修復」
- ブート マネージャーが修復されたらしい