Thinkpad X40 2371-KJ1
X4 UltraBase
Pioneer DVR-XD09J
KNOPPIXのインストール
ThinkpadX40のセカンドHDDにKNOPPIX6.2をインストールした。前回の記事に書いたように、あらかじめGPartedで未フォーマットのパーティションを作っておいた。そうすると、KNOPPIXのインストーラ0wnがパーティションを認識してReiserFSでフォーマットしてくれる。
インストールは30分ほどで完了した。以前のLavie L LL750/2Dでは1時間以上かかり、しかも3回のうち2回は途中でエラーが出てはじめからやり直さなければならなかったことを考えると、特権的なフリーパスあるいは通行手形でも手に入れた気分だ。


OSがインストールされると、さらにブートローダのGrubをインストールするかどうか選択しなければならない。すでにUbuntuのブートローダがあるので、インストールしないことにした[1]。以上でDVD-KNOPPIXのセッションは終了して、KNOPPIXのブートの設定をおこなうためにUbuntuを起動する。
UbuntuのブートマネージャGrub2
X40にインストールしたすべてのOSの起動は、Ubuntuのブートローダからおこなう[2]。Ubuntu10.04のデフォルトのブートローダはGrub2だ。KNOPPIXやPuppyLinuxのブートローダはただのGrubだ。Ubuntuの/boot/grubディレクトリにmenu.lstが見あたらないので調べてみたら、そういうことだった。そんなことも知らなかったのに今までよくUbuntuが問題なく使えたものだ。
Grub2の基本的な設定はコマンドでおこない、設定ファイル(/boot/grub/grub.cfg)を編集したりはしない。
Grub2のブートメニューにKNOPPIXを追加
まず、現在のブートメニューを確認しておこう。
$ grep menuentry /boot/grub/grub.cfg
KNOPPIXが正しくインストールされていれば、次の2つのコマンドでGrub2のブートメニューにKNOPPIXが自動的に追加される。
$ sudo grub-mkdevicemap
$ sudo update-grub
grepコマンドで/boot/grub/grub.cfgファイルにKNOPPIXが追加されたことを確認したら、Ubuntuを終了してKNOPPIXを起動してみよう。これで起動すれば、KNOPPIXのインストールは完了だ。
GRUB2ブートメニューの調整
ThinkpadX40のGRUB画面のメニューがこんな風になった。
GNU GRUB version 1.98-1ubuntu7
Ubuntu, with Linux 2.6.32-24-generic
Ubuntu, with Linux 2.6.32-24-generic (recovery mode)
Ubuntu, with Linux 2.6.32-22-generic
Ubuntu, with Linux 2.6.32-22-generic (recovery mode)
Ubuntu, with Linux 2.6.32-21-generic
Ubuntu, with Linux 2.6.32-21-generic (recovery mode)
Ubuntu, with Linux 2.6.31-21-generic
Ubuntu, with Linux 2.6.31-21-generic (recovery mode)
Memory test (memtest86+)
Memory test (memtest86+, serial console 115200)
Microsoft Windows XP Professional (on /dev/sda1)
KNOPPIX (on /dev/sdb6)
ふだん使うのは一番上のUbuntuと一番下のMicrosoft Windows XP ProfessionalとKNOPPIXの3つだけだが、上と下がずいぶんと離れている。これでは不便なので、なんとかしたい。
まず考えられるのは、不要なメニューを消すことだ。Ubuntuのメニューだけで8つもあるのはどう考えても多すぎる。ただし、古いカーネルのメニューはひとつくらい残しておいた方がよいかもしれない。新しいカーネルの不具合に古いカーネルのUbuntuを起動して対処できたことが実際にあった。
メニューを消すのはそのうちに試してみるとして、ここではメニューの順番を変えることにする。KNOPPIXとWindowsXPを一番上に持ってくることにしよう。
メニューエントリの順番の入れ替え
Grub2のメニューエントリのおおまかな順番は、/etc/grub.dというディレクトリのファイル名にしたがって決められている。ファイル名には番号が割りふってある。
$ cd /etc/grub.d
$ ls
00_header 05_debian_theme 10_linux
20_memtest86+ 30_os-prober
40_custom README
Grub2の設定ファイル/boot/grub/grub.cfgを見ると、/etc/grub.dのファイルが番号順に読み込まれていることがわかる。
$ gedit /boot/grub/grub.cfg
(略)
### BEGIN /etc/grub.d/00_header ###
(略)
### BEGIN /etc/grub.d/05_debian_theme ###
(略)
### BEGIN /etc/grub.d/10_linux ###
menuentry ‘Ubuntu, with Linux 2.6.32-24-generic’ –class ubuntu –class gnu-linux –class gnu –class os {
(略)
### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry “Memory test (memtest86+)” {
(略)
### BEGIN /etc/grub.d/30_os-prober ###
menuentry “Microsoft Windows XP Professional (on /dev/sda1)” {
(略)
menuentry “KNOPPIX (on /dev/sdb6)” {
(略)
### BEGIN /etc/grub.d/40_custom ###
(略)
Ubuntuのメニューエントリは10_linuxの項目に書かれている。Memory testは20_memtest86+、WindowsXPとKNOPPIXは30_os-proberだ。そこで、ファイル名を変更して、30_os-proberの30を10よりも小さい数字、たとえば07にすれば、WindowsXPとKNOPPIXがUbuntuよりも先に読み込まれてブートメニューの先頭に来るはずだ。
$ cd /etc/grub.d
$ ls
$ sudo mv 30_os-prober 07_os-prober
$ sudo update-grub
grub.cfgの更新を確認したら、再起動してGRUB画面を見てみよう。
GNU GRUB version 1.98-1ubuntu7
Microsoft Windows XP Professional (on /dev/sda1)
KNOPPIX (on /dev/sdb6)
Ubuntu, with Linux 2.6.32-24-generic
Ubuntu, with Linux 2.6.32-24-generic (recovery mode)
Ubuntu, with Linux 2.6.32-22-generic
Ubuntu, with Linux 2.6.32-22-generic (recovery mode)
Ubuntu, with Linux 2.6.32-21-generic
Ubuntu, with Linux 2.6.32-21-generic (recovery mode)
Ubuntu, with Linux 2.6.31-21-generic
Ubuntu, with Linux 2.6.31-21-generic (recovery mode)
Memory test (memtest86+)
Memory test (memtest86+, serial console 115200)
デフォルトOSの設定
GRUBメニューの画面が開いたとき、カーソルは一番上のMicrosoft Windows XP Professionalにあたっている。そのまま数秒経過すると、自動的にWindowsXPが起動する。それが望ましくなければ、メニューの順番を変えなくても、カーソルがほかのOSにあたるように設定できる。
単純にWindowsXPとKNOPPIXの順番を入れ替えてもいいのだが、そのやり方がわからない。
/etc/default/grubというファイルを編集してデフォルトのOSを設定すると、カーソルがそのOSのメニューにあたるようになる。UbuntuのせいかX40のせいかどうもviの勝手がちがうので、geditで編集した。
$ sudo gedit /etc/default/grub
「GRUB_DEFAULT=0」という行があるので、「0」のところにOSの名称を入れる。OS名は、grub.cfgファイルを開くと「menuentry」の後ろに引用符でくくられているので、それをコピーして貼りつけるとよい。ここではKNOPPIXをデフォルトのOSにする。
GRUB_DEFAULT=”KNOPPIX (on /dev/sdb6)”
上書き保存でgeditを終了したら、update-grubコマンドで変更を反映させる。
$ sudo update-grub
これでGRUB画面の使い勝手がだいぶよくなった。
脚注
1^ ブートローダのインストール
ここでKNOPPIXのブートローダのインストールを選択することもできるのだろうと思う。その場合、マルチブートの設定はKNOPPIXのGrubでおこなうことになる。すでにインストールされているWindowsXPとUbuntuのブートメニューは自動的に生成されるはずだ。/boot/grub/menu.lstを直接編集して、メニューを追加したり修正したりすることもできる。しかし、マルチブートの仕組みがよくわからないので、今まで安定して動作しているUbuntuのブートローダをそのまま使うことにした。
2^ ウルトラベースのブートローダ
UbuntuのブートローダGrub2は、ウルトラベースのセカンドHDDにある。セカンドHDDにはUbuntuとKNOPPIX、ThinkpadX40本体のHDDにはWindowsXPがインストールされている。ウルトラベースを外した状態でX40を起動すると、GRUB画面はあらわれず、直接WindowsXPが起動する。
参考記事
「複数のOSを使う(3)GRUBを使ったデュアルブート,GRUBの設定」(Ubuntu Weekly Recipe 第97回 村田信人 2009年11月18日)
「Grub 2 入門」(経済学101 青木理音)
I would like to exchange links with your site shiremono.com
Is this possible?
Hi, ternitx. Thanks for visiting this Diary of a Shiremono.
I am not considering about exchanging the links as yet.
My readers seem to be looking for very specific information on verious topics in certain categories. If there are relevant articles in your blog I would ask you for linking, not for exchanging. Let me see you around.
Fantastic blog! I really love how it is easy on my eyes and the information are well written. I am wondering how I might be notified whenever a new post has been made. I have subscribed to your rss feed which really should do the trick! Have a nice day!