LFS システムを起動できるようにする

ピカピカの LFS システムが九分通り完成しています。最後にやるべき事はそれを起動できることを確かめることです。 以下の説明は、たとえば IA-32 アーキテクチャのコンピュータ、つまり普通の PC にのみ適用できます。 他のアーキテクチャの "ブートロード" についての情報は、これら各アーキテクチャ向けのリソース固有の場所に置かれています。

ブートローディングは複雑な問題です。最初にいくつか注意をしておきます。 現在使用しているブートローダに慣れておいたほうがいいということ、ハードディスク上にある、起動可能にしたい別のオペレーティングシステムのことを把握しておく必要があります。 原因が何であるにしろ、もしお使いのコンピュータが使えなく(起動できなく)なったときに、コンピュータを救助できるよう、緊急の起動ディスクを準備していることを確認してください。

以前、この段階への準備として Grub ブートローダソフトウェアをコンパイルしインストールしました。 ここではハードディスクの特定の場所へ Grub の特別なファイルを書き込むという手続きを踏みます。 その前に、万一に備えて Grub 起動ディスクを作成することを強く勧めます。空のフロッピーディスクを挿入し以下のコマンドを実行してください。

dd if=/boot/grub/stage1 of=/dev/fd0 bs=512 count=1
dd if=/boot/grub/stage2 of=/dev/fd0 bs=512 seek=1

ディスクを取りだしどこか安全なところに保管しておいて下さい。さてそれでは grub シェルを実行します。

grub

Grub はデバイスとパーティションに対して ( hdn,m ) という独自の命名規則を使います。n はハードドライブの番号、m はパーティションの番号で共にゼロから始まります。 これはたとえば、hda1 のパーティションは Grub では ( hd0,0 ) で、hda2 は ( hd1,1 ) となります。 Linux とは対照的に、Grub は CD-ROM ドライブをハードドライブとして考えないので、たとえば、CD を hdb にしていて、二つ目のハードドライブを hdc にしているとすると、二つ目のハードドライブは ( hd1 ) となります。

上の情報を使って、ルートパーティションに適切な呼称を決定して下さい。以下の例ではルートパーティションが hda4 であると仮定しています。

最初に、Grub に stage{1,2} ファイルを探す場所を教えます。Grub に選択肢を表示させるためにどこでもタブを使うことができます。

root (hd0,3)

Warning

以下のコマンドは現在お使いのブートローダを上書きします。望まないなら、コマンドを実行しないで下さい。 たとえば、あなたは MBR ( Master Boot Record ) を管理するのにサードパーティのブートマネージャを使っているかも知れません。 この場合は恐らく、Grub を LFS パーティションの "ブートセクタ" へインストールする方が賢明かも知れません。この場合のコマンドは setup ( hd0,3 ) となります。

それでは Grub に、自身を hda の MBR ( Master Boot Record ) へインストールするよう教えます。

setup (hd0)

何も問題がなければ、Grub は /boot/grub の中にそのファイルを見つけたことを報告するでしょう。Grub に対してする事はこれですべてです。

quit

さて Grub のブートメニューを定義する "メニューリスト" ファイルを作らなければいけません。

cat > /boot/grub/menu.lst << "EOF"

# /boot/grub/menu.lst を作成します。


# デフォルトではメニューの一番最初のエントリを起動します。
default 0


# デフォルトのエントリを起動するまでに 30 秒待ちます。
timeout 30


# 綺麗な色を使いましょう。
color green/black light-green/black


# 初めのエントリは LFS です。
title LFS 5.0
root (hd0,3)
kernel /boot/lfskernel root=/dev/hda4 ro
EOF

ホストディストリビューションのエントリを加えるといいでしょう。それはこのようになります。

cat >> /boot/grub/menu.lst << "EOF"
title Red Hat
root (hd0,2)
kernel /boot/kernel-2.4.20 root=/dev/hda3 ro
initrd /boot/initrd-2.4.20
EOF

また、Windows とデュアルブートにしたいなら、以下のエントリがその起動を可能にします。

cat >> /boot/grub/menu.lst << "EOF"
title Windows
rootnoverify (hd0,0)
chainloader +1
EOF

info grub で知りたいことを見つけられない場合、Grub についてのより詳しい情報を http://www.gnu.org/software/grub で見つけることができるでしょう。