770Z への Vine Linux 2.5 の導入

〜Vine Linux 2.5 の導入〜


Vine Linux 2.5 の導入(前編)

 ThinkPad 770Z に Vine Linux を導入してみることにしました。特に理由はありませんが、7系はいろいろと特殊なデバイスが多いため、完全には動作させきれていないこともあり、770Z ではどうかな、と単純に思っただけでした。私の 770Z は特殊なデバイスはせいぜいモデムくらいで、後は特に問題となるものはないだろうと、高を括っていました。

 Vine Linux 2.5 そのものは、すでに ThinkPad 760E で一度行っており、特に難しいと感じるところはありませんでした。760E との違いは、こちらは CD Bootable である、ということで、どちらかとえば、ThinkPad 600 へ導入した状況に近いといえました。すでに落としてある Vine Linux 2.5 を焼きつけた CD-R を挿入して、電源投入すれば、インストールはすいすいと進みました。途中 X の設定を行うところがありますが、これもすいすいとクリアしていきました。Slackware を導入した頃は、よくわからないでいたことが、今では当たり前のように感じられさえすることに驚きを覚えつつ、時の変化を感じていました。

 パーティション分けは、いまだに手動で fdisk を使っています。DiskDruid のような便利なツールもありますが、どうにも信用できず、既存パーティションを崩されるくらいなら、と考えてしまいます。とはいえ、パーティション分割するメリットが今ひとつ見えていないため、スワップパーティション以外は、root パーティションしか分けていなかったりしますが(苦笑)。

 Window Manager の選択は、非常に簡単です。というのも、基本的に私は、添付されているすべての Window Manager を入れてしまい、気分によって使い分ける、という使い方をするためです。とはいえ、各ディストリビュータが勧めている標準的なものは、そのまま使うようにしています。なので、Vine Linux では GNOME をつかっているか、というとそうではなく、Window Maker を好んでいます。Vine Linux 1.0 のころから使っていることもあって、ある程度把握ができるのが、Window Maker なので、このようになっています。GNOME も嫌いではないのですが、CPU 的に非力かな、と感じるところがあるため、このようになっています。

 インストールそのものは特に問題なく終わりました。しかし、問題はここから始まったのでした。

VineLinux 起動不可?

 インストールが終了し、再起動させたところ、いつも見慣れた OS Loader が起動してきました。そのまましばらく待つと、当然のことですが、Windows 2000 が起動してきました。(よしよし、パーティションは残っているな)とある意味当たり前のことを考えながら、Vine Linux を起動させようとしました。

 Windows 2000 を終了させ、再起動させたところ、再び OS Loader のメッセージが表示されてきました。(あれっ、LILO が来ない?)と不安を感じながら、数回に渡り電源の再投入を行いましたが、いくらやっても LILO が現れる気配がありません。私は LILO は MBR に導入する人なのですが、手順的に忘れたはずはありませんでした。しかし、起動 FD の作成を怠っていたため、どうにも Vine Linux を起動させることができませんでした。

 Windows との共存は、これが初めてではなく、これまで数回行ってきましたが、LILO の設定を失敗したことはほとんどありませんでした。Windows 2000 との共存も ThinkPad 600 で行っており、このような状態になったことは初めてでした。Vine Linux のインストールに失敗してしまったか、と考えるまでになりました。

 数日後に、とあるところで、私は起動できない理由を知りました。なんと、LILO は Windows 2000 と共存ができない、というのです。ThinkPad 600 で、Windows 2000 との共存を行っている実例をもっていた私は、説明を聞くことにしました。その結果、私が予想していなかったことが理由となっていました。

 LILO は、ファイルシステムを理解するのではなく、kernel ファイルのある物理位置を記録しておいて、起動時には強制的にそのセクタから読み込ませる、という手順になるため、どのようなファイルシステムであっても使える、と私は理解していました。しかし、NTFS の起動区画が存在していると、LILO 自身のインストールには失敗してしまうのだそうです。ThinkPad 600 でうまくいっていたのは、起動用の区画(Cドライブ)だけは FAT16 としていたためで、今回の ThinkPad 770Z では、Cドライブそのものを NTFS にしてしまっていたために、LILO がインストールされないでいたのでした。

 LILO の起動 FD を作るためには、kernel の物理的な位置を調べることが必要となります。このため、他の PC で LILO の起動 FD を作成することはできず、ターゲットマシン上で必ず作成しなければなりませんでした。このため、インストールの途中で起動ディスクの作成ステップがあるわけですが、私はこの意味を理解していませんでした。以前にも、LILO の関係でトラぶってしまったときに、起動 FD は必ず作成しておこう、と思っていたはずでしたが、のど元過ぎればなんとやら、ですっかり忘れていました。

grub の導入

 Linux を起動させるツールは LILO 以外にも、MS-DOS から使う Loadlin があります。しかし、今回はこの手は使えませんでした。なぜなら、Loadlin を使うための MS-DOS 区画が存在していないからです。MS-DOS の起動ディスクを作成して、Loadlin を使う手もありますが、Linux を使う度に FD を使うことになり、根本的な解決にはなりません。

 そこで、LILO にかわる新たなブートローダとして、私が目をつけたのが grub です。grub とは LILO に変わると言われているブートローダで、驚くべきことに、ファイルシステムを理解するとう機能があります。ファイルシステムを理解するということは、kernel の物理的な配置には依存しない、ということを意味します。つまり、grub の起動ディスクを作成しておけば、ほとんどの Linux ディストリビューションを起動させることができる、ということになります。

 その昔、MS-DOS では、IO.SYS と MSDOS.SYS はいじってはならないファイルでした。なぜなら、MS-DOS のブートローダーは、これらが特定の場所にあることを前提に作成されているため、位置がずれると、システムを起動させられなかったのです。このため、これら二つのファイルについては、専用のコマンド(SYS)が用意されていました。

 grub は LILO に比べても便利なのですが、ディストリビューションに標準で導入させるまでにはいたっていませんでした。しかし、RedHat Linux 7.2 より grub が標準のブートローダーとして採用されたため、今後 RedHat ベースのディストリビューションでは、grub への移行が進むものと思われます。

 さて、grub を使うことにはしたものの、問題は残っていました。それは、私が grub を使うのは初めてである、ということでした。なにせ、LILO をようやく理解しはじめたところなので、LILO 以外の ブートローダを使うこと自体、初めてでした。このため、どこから grub を持ってくるか、ということが最初の問題になりました。

 こういうときにあたってみるところは、やはりインターネットになります。さっそく google を使って、grub を検索したところ、 grub を使おう というページを見つけました。運良く、grub のバイナリ を入手できたので、インストール FD の作成で使う RaWrite を使って、grub FD を作成しました。配布されているバイナリは tar.gz(.tgz) なので、Windows 上で、tar を展開できる環境が必要ですが、私は FV4+tar32.dll で展開しました。今だと lhaca を使うのがお手軽かもしれません。

 できた grub FD を FDD に入れ、PC を起動したところ、grub のプロンプトが現れました。さっそくプロンプトに対しコマンドを入力して、Linux を起動させてみます。

   grub> root (hd0,3) ------------------------------------(A)
   grub> kernel /boot/vmlinuz-2.4.18-vl3 root=/dev/hda4 -----(B)
   grub> boot ------------------------------------------(C)

 (A) で、kernel の入った区画を読み込みます。ここで、読み込んだ区画のファイルシステム(hd0,3) は 1番目の HDD の 4番目の区画、つまり /dev/hda4 をさします。なぜか root の引数は0から始まるので、実際の値から -1 したものを入力します。

 (B) で、起動させる kernel ファイル(/boot/vmlinuz-2.4.18-vl3) を指定し、合わせてブートパラメータとして、root ファイルシステムを指定しています。ここで、指定しておかないと、kernel がルートファイルシステムを見失って、kernel panic が発生します。上で触れたように、ここでは、1番から区画番号が始まるため、/dev/hda4 になります。実は、ここに気づくまで三日ほどかかっています。

 (C) で、(B) の指定に従って、kernel を起動させています。

 ようやく、Vine Linux 2.5 が本当にインストールできたことが確認できました。とりあえず、FD を使うことで Linux を起動し、FD なしでは Windows 2000 が起動するように運用することとしました。

grub の導入(2)

 FD を使うことで、Linux を起動できるようになりましたが、FDD をいちいち接続しなければならないわずらわしさはのこることとなりました。そこで、grub を HDD に導入してしまい、FD なしで使えるように設定することになりました。とはいえ、新たなブートローダーである以上、失敗した場合の影響が大きく、そう簡単に導入するわけにはいかず、実際に導入するまでは数日を要しました。

 導入するに当たっての最大の要因は、Vine Plus に grub が用意されていたことがあります。Vine Plus とは、Vine Linux 対応のアプリケーション群を指し、Vine Linux 同様にFTP サーバーに用意されています。この Vine Plus に grub 0.90(grub-0.90-0vl1.i386.rpm) がありました。rpm 形式となっているため、インストールも非常に簡単におわります。

    # rpm -ivh grub-0.90-0vl1.i386.rpm

 grub の設定ファイルは、/etc/grub.conf に見つかりました。RedHat 系では、/etc に設定ファイルが集まっている、と聞いたことがありますが、ようやくその意味がわかりました。すべてではありませんが、多くのソフトウェアでは、設定ファイルの拡張子として、[ .conf] を使っており、grub もその例に漏れませんでした。/etc/grub.conf を less したところ、驚きました。なんと、この /etc/grub.conf は grub をインストールして作られたのではなく、インストーラである anaconda がすでに作成したものだったのです。

---------------------------------------------------------------
# grub.conf generated by anaconda
#
# Note that you do not habe to return grub after making changes to this file
# NOTICE: You do not bave a /boot partition. This means that
# all kernel and initrd paths are relative to / ,eg
# root (hd0,3)
# kernel /boot/vmlinuz-version ro root=/dev/hda4
# initrd /boot/initrd-version.img
#boot=/dev/hda
default=0
splashimage=(hd0,3)/boot/grub/splash.xpm.gz
title Vine Linux (2.4.18-0vl3)
root (hd0,3)
kernel /boot/vmlinuz-2.4.18-0vl3 ro root=/dev/hda4
title Vine Linux-2.2-up (2.2.20-0vl10)
root (hd0,3)
kernel /boot/vmlinuz-2.2.20-0vl10 ro root=/dev/hda4

------------------------------------------------------------------

 上記の grub.conf には、Windows の設定がなされていないので、Windows を起動する設定を追加して、最終的な grub.conf は下記の通りとなりました。

---------------------------------------------------------------
# grub.conf generated by anaconda
#
# Note that you do not habe to return grub after making changes to this file
# NOTICE: You do not bave a /boot partition. This means that
# all kernel and initrd paths are relative to / ,eg
# root (hd0,3)
# kernel /boot/vmlinuz-version ro root=/dev/hda4
# initrd /boot/initrd-version.img
#boot=/dev/hda
default=0
splashimage=(hd0,3)/boot/grub/splash.xpm.gz
title Vine Linux (2.4.18-0vl3)
root (hd0,3)
kernel /boot/vmlinuz-2.4.18-0vl3 ro root=/dev/hda4
title Vine Linux-2.2-up (2.2.20-0vl10)
root (hd0,3)
kernel /boot/vmlinuz-2.2.20-0vl10 ro root=/dev/hda4

title Windows 2000 ※
root (hd0,0)  ※
chainloader +1 ※
------------------------------------------------------------------

 ※が追記した部分です。なお、この内容は良くわかっていません。 grub を使おう の記述を元に、書き加えたものです。

 grub.conf ができたところで、いよいよ grub をブートローダーとしてインストールします。これまでは、コマンドとしての grub でしたが、ブートローダとして grub を使うためには、MBR もしくは 起動パーティションの先頭セクタのいずれかに書き込まなければなりません。どちらが良いか、ということですが、私は起動パーティションの先頭セクタにしました。なにかのドキュメントで、Windows 2000 では MBR よりも起動パーティションの先頭セクタのほうが望ましい、と記載されていたこと、そして MBR は OS のインストールで書き換えられてしまう事から、このような選択としました。

 この ThinkPad 770Z では、/dev/hda4 が root パーティションとなっていますので、この先頭セクタへ grub をインストールしました。

     # grub-install /dev/hda4

 そして、/dev/hda4 をアクティブにしておけば、設定は完了です。これは fdisk を使って行います。再起動し、grub のメニューが表示がされ、無事完了しました。この状態で、Windows 2000 および Vine Linux 2.5 の両方がきちんと起動することが確認されました。


Last Updated 2002/06/30. Copyright Tazoe Kazuya . All rights Reserved 2002