openSUSE を使っている。同じ HDD 内に Ubuntu 10.10と Windows7 を入れてマルチブートにしてあるのだが、openSUSE をインストールした後、Ubuntu が起動メニューから消えてしまった。私は以下の方法で再設定した。
Ubuntu 9.10 のGrub2修復 - Nagoya University Wiki
Grub2の再インストール
を参考にしました。ありがとうございました。
- Ubuntu 10.10 の 起動ディスクでシステム起動(私の場合は USBメモリをスタート・アップ・ディスクにしている)
- "Try Ubuntu" で Ubuntu を起動し(結構時間がかかる)、ターミナルを起動。
- sudo fdisk -l としてHDDの構成を確認し、grub.cfg があるパーティションを確認しておく。(ちなみに私の場合は sda5 であった)
- sudo mount /dev/sdXX /mnt (/mnt にマウント。sdXX は上記の項目による。私の場合は sda5)
- sudo mount --bind /dev /mnt/dev
- sudo chroot /mnt
- sudo update-grub (起動時の選択メニューが壊れていたようなので再設定した)
- sudo grub-install /dev/sdX (ここで HDD の mbr を書き換え。デバイス名が上と少し違うので注意。私の場合は /dev/sda )
- 後は /mnt をアンマウントして再起動。
上記の解説で、私のHDDの /dev/sda5 には Ubuntu が入っている。(Ubuntuを優先している)openSUSE は /dev/sda6 に入れてあるのだが、openSUSE をアップデートしたら起動しなくなってしまった。PBR (Partition Boot Record) が書き換わってしまったのかもしれない。
上記の設定定方法で最後にアンマウントする前に、
sudo grub-install --force /dev/sda6
として openSUSE のパーティションの PBR を再設定したら起動するようになった。
Ubuntu と openSUSE を「同居」させるとこんなに面倒なのだろうか?後でMLで質問でもしてみようかな。
(追記)
openSUSE 11.3 はGrub2 ではなくて Grub でした。これが影響したのかな?? 今度はブートローダを他のものに変えられるか挑戦してみたい。