UbuntuとWindowsを一緒に使うときのトラブル
hiroadmin | 2009年12月15日UbuntuとWindowsのデュアルブート(同一コンピュータで2つのOSを使うこと)で使用するときに、困った問題が起こることがある。
Windowsが起動しない
Ubuntuをインストール時にWindows、Ubuntuどちらを起動するかのプログラムも一緒に内臓HDへインストールされる。この時Windows、UbuntuのOSがどこにあるかを判定し、判定した情報が結果としてWindowsが起動しないトラブルが起こる場合がある。
Windows単体でインストールされている場合も、Windowsがどこにあるかを判定するプログラムが存在する。Ubuntuをインストールすることによって、OSを判定するプログラムが書き換えられてしまう。
OSを選択して起動するプログラム(ブートプログラム)は、HDの特別な箇所にあるため、直接プログラムをみることはできない。下図に示す部分にブートプログラムがある。特別なパーティションになっているため、CドライブとかAドライブとかの区別がない。
5,000円位で買った中古ノートPC(内臓HDは新品を新たに購入)
通常はたとえブートプログラムが書き換えられても、問題がないようにUbuntuは作られていて、アンインストールするときにはインストールする以前に戻してくれる。
Ubuntuインストール時、まれにWindowsのOS情報が起動の仕方によって、Windows自身が起動しなくなることがある。Ubuntuをインストールした外付けHDを接続したままだとWindowsは起動するが、外付けHDを外すとWindowsは起動しなくなる。
以前に「HDを外してUbuntuをインストールする」記事を書いたのはこの理由からである。
しかし、この方法は完璧ではなかった。
原因として考えられることとして、UbuntuはデフォルトでディスクトップのスタイルがGNOMEというプログラムを使用している。ディスクトップスタイルをKDEに変更してみた。その後、Ubuntuのアップデートも何度か行った。メインで使用しているWindowsを起動しようとしたとき、
GRUB loding
error:no such disk
と言うメッセージと共にキーを押す度に同じような文字ばかり。
はっきりしないが、ディスクトップスタイルをKDEをインストールした事が原因ではないかとみている。
(KDEはGNOMEより便利だが、今のPCには少し重いのでやめた)
ブートプログラムは特別なパーティションにあるため、システムバックアップソフト(例えばAcronis True Image)でリストアしても解決できない。
トラブル解決策その1は簡単だが・・・
Windowsが起動しないトラブルは意外と簡単である。
解決方法を書店でちょっと立ち読みしていたら、WindowsインストールCDを起動して、修復することができる事が分かった。Windowsの種類によって修復する際の打ち込むコマンドが異なるだけで、おおよそ同じ方法で修復できる。
XPの場合、fixmbrというプログラム名を指定して修復する。他の種類ではプログラム名が異なる。
Googleでfixmbrをキーワードに検索すると、やり方が分かるだろう。
しかし、私のノートPCはWindowsXPのインストールプログラム本体が内臓HDに収められているため、これらの方法では解決できない。(再度XPをインストールしなおす場合は通常より格段に速いのだが)
トラブル解決策その2
Ubuntuから直接コマンドを打って、解決するしかない。
前述のブートプログラムは、WindowsでMBR(マスターブートレコード)、Ubuntuでは別にGRUB(GRand Unified Bootloader)を採用している。すなわち、WindowsとUbuntuではブートプログラムが異なるのである。(詳しくはwikiで)
Windowsを起動するときにトラブルが起きたGRUBからMBRに戻す作業をすれば、Ubuntuをインストールしたままでも初期状態(Ubuntuがインストールされた外付けHDがなくてもWindowsが起動する)に戻すことができるのだ。
作業は以下の通り。
Ubuntuを起動する。ログアウトしてroot権限で再びログイン。(root権限でログインするにはあらかじめパスワードを設定することは以前にも記事として書いた)
アプリケーションから端末プログラムを起動。
sudo apt-get install mbr
sudo install-mbr /dev/sda
の2行を打ち込むだけ。解決した。
それぞれの行頭に$sudoを前につけて前述の2行のコマンドを打ち込むのだが、この場合ログインしているので省略可能。
できればWindowsインストールCDから修復プログラムを起動して解決した方がいいが、不可能な場合はトラブル解決策2の方法で試した方がよい。
トラブル解決策2を行うと、Windows起動時に以前にはなかった文字が一瞬にでることと、Windows再インストールするのにインストール起動CDを使わなければならない。インストール起動CDを使わなくても再インストール出きるのだが、全く使わないので、未解決ではあるが問題はない。
内臓HDにUbuntuをインストールした場合、Windowsが起動しなくなるケースはUbuntuインストールCDを使って解決はできる。Ubuntuもそのことは考えて作っているらしい(かな?)。
実は、Windowsが起動しない解決策は他にもあるだが、時間、手間、費用がかかるのでここでは割愛した。次回の記事でご紹介しよう。
まとめ
- Ubuntuに別の何かのソフト(KDEかも?)をインストールするとWindowsが起動しなくなることがまれにある。
- 症状としてUbuntuがインストールされている外付けHDを接続している場合、Windowsは起動する。しかし、外付けHDを接続していない場合、Windowsは起動しない。
- 原因はOSを起動するプログラム(ブートプログラム)GRUBがWindowsがあるプログラムの場所を判定できないためである。
- ブートプログラムは特別なパーティションにあるため、内容をみて直接書き換えることは通常はできない。
- システムバックアップソフトでリストアしても解決はできない。
- 解決策その1は、XPの場合WindowsインストールCDからfixmbrコマンドで修復する。
- 解決策その2は、Ubuntu端末から2行のコマンドで修復する。
- できれば解決策その1で解決したい。解決策その2は、完全ではないがほぼ満足する解決はできた。