ネットブック(Acer AspireOne 753)を買っていろいろと改造している。HDDを 500GB のものに換装して、Windows7 と Linux のデュアルブートにした。Linux は現在、Ubuntu 10.10 と openSUSE 11.3 をいれてある。
Linux の複数のディストリビューション(ディストロ)を入れてあるとき、起動時にどう選択させるかというブートローダの問題が生じる。素人ながらいろいろと試行錯誤してみたのだが、なかなか良い方法が見つけられない。現在は Ubuntu 由来の Grub2 を優先してブートローダに使っている。私の試行錯誤の顛末をメモしてみる。(例によってあまり役に立たないが)
kernel アップデートするとブートローダの設定が変わる
openSUSE と Ubuntu と Windows7 をパーティションを切って同一のHDDに混在させている。Linux のインストーラはどういうわけか Windows はよく認識する。したがって Windows の起動に悩むことはほとんどなかった。(起動時の選択メニューに必ずといってよいくらいに出現する。)
openSUSE のインストーラは他のディストロをあまり正確に認識しないようだ。HDDに複数のディストロをインストールするとインストーラがブートローダの設定も行う。したがって通常は最後に設定したディストロの設定したブートローダで上書きされてしまう。
Ubuntu → openSUSE の順にインストールすると、起動時の選択画面で Ubuntu のパーティションは "other Linux" と表示される場合だけだが、openSUSE → Ubuntu の順であるときちんと Ubuntu はもちろん openSUSE の名称も表示された。そこでしばらくはこの状態で使っていた。
しかし問題が発生した。openSUSE のアップデートを摘要した際、カーネルがアップデートするとうまくブートできなくなってしまうのだ。おそらくopenSUSE の起動に関する変更が、MBR に記録された Ubuntu の Grub2 に反映されないことによると思われた。
ここでどうしたらよいかわからなくなってしまった。
/boot を独立のパーティションにして混ぜてみたが
小江戸らぐで「/boot を別のパーティションにしてみたら」と言われたのでやってみた。
/boot 用にパーティションを切って、openSUSE と Ubuntu をインストールする際に両者とも同じパーティションを /boot としてマウントするように設定してみた。
結果はダメであった。
インストール直後は上記と同じような状態だったのだが、ディストロをアップデートした途端、選択肢が非常に増えて(おそらくインストールされたカーネルごとに選択肢ができるためか)増えるだけならばよいのだが、起動画面で番号を選択してもうまく起動できなくなってしまった。
ただ単に混ぜるだけではいけないようだ。
ちなみに /boot を HDD の先頭に置くと Windows7 が起動しなくなった。おそらく Windows のインストーラに問題があるのかもしれないが(Windows7 のインストールは AO753 のオリジナル HDD のツールで作成したインストールDVD(3枚!)を使用した)この辺の事情はよくわからなかった。とにかく私のHDDの先頭パーティション sda1 には Windows7 を入れてある。
結局元の設定に
いろいろと試行錯誤を繰り返すうちに一週間以上かかってしまったのだが、私にはどうやってよいかわからないかった。
そこで、最初に書いたような、Ubuntu 由来の Grub2 を優先するように設定しなおしてしまった。アップデートで起動がおかしくなったら以前日記に書いた Grub2 の再設定方法で直せるので、当面はこれで良しとしたい。
なお、openSUSE の起動画面は Tux ペンギンが動き回る賑やかなものだ。たしか今月はサンタの恰好をしていたと思った。
非常に遊び心ある起動選択画面だなのだが、ディストロの名称が正確に表示される、白と黒だけの味も素っ気もない Ubuntu の起動画面のほうが私の趣味には合う。