[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:52903] Re: WindowsXP、Debian、Ubuntuマルチブート下でのMBRについて



武藤@Debianぷろじぇくとです。

At Sat, 29 Aug 2009 16:15:45 +0900,
tw wrote:
> 表題の通り、WindowsXP、Debian、Ubuntu という3つの OS を、
> この順番でインストールしたマシンがあります。
> (同時インストールというわけではなく、その間に期間があります)

> Ubuntu の古いカーネルを削除したついでに、
> Debian の古いカーネルも削除しました。
> (2.6.26-1-486 と 2.6.18-6-486 を Synaptic パッケージマネージャで削除)
> 
> その結果、Ubuntu と同じように、起動時のカーネル(OS)選択画面において、
> Debian の古いカーネルも表示されないことを期待したのですが、
> 依然として古い、削除済みのカーネルが表示されました。
> これは Ubuntu の /boot/grub/menu.lst に記載されていた、
> Debian の上記、古いカーネル項目をコメントアウトすることにより、
> 削除済みのカーネルが表示されなくなりましたので、
> 問題は解決できたのですが理屈がよく理解できていません。

Debian→Ubuntuの順にインストールされたのだと思います。

> 起動時のカーネル(OS)選択画面というのは BIOS と MBR だけで表示している、
> という理解で正しいでしょうか?

GRUBの選択画面はmenu.lstの内容をそのまま出しているだけだと思います。

UbuntuのGRUB設定の仕組みがDebianと同じかどうか調べていないので的を外して
いるかもしれませんが、逆の順序でインストールしてもいかにも同じ挙動になりそう
なのでその前提で説明すると、

1. UbuntuのインストーラでGRUBをセットアップ
2. GRUBセットアップ時にインストーラは、Ubuntuブートパーティション以外に
   ほかのパーティションもチェックする
3. Debianブートパーティションにカーネルを見つけたのでそれをmenu.lstに追加
   (menu.lstのMAGICブロック範囲外)
4. Ubuntuでカーネルパッケージに対して追加/削除/更新を行うと、update-grubが
   実行され、MAGIC範囲内の内容が更新される
   DebianなどのUbuntu管理外(MAGICブロック範囲外)のものについてはノータッチ
5. MAGICブロック範囲外のものについてはノータッチだから、Debian側でカーネルを
   操作してもやはりUbuntu側grub.lstに変更は行われない

となりますね。

要するにmenu.lstにおけるUbuntuカーネル以外のエントリはインストーラがユーザの
便宜のために定義したものであり、以降の保守については自動ではなく、すべてユーザに
任されています。
-- 
武藤 健志@ kmuto @ kmuto.jp
           Debian/JPプロジェクト   (kmuto@debian.org, kmuto@debian.or.jp)
           株式会社トップスタジオ  (kmuto@xxxxxxxxxxxxxxx)
URI: http://kmuto.jp/ (Debianな話題など)