まず、あらかじめインストールした Linux ディストリビューション( Debian や Mandrake, Red Hat, SuSE など)を使って LFS システムを構築しようとしています。 この現在の Linux システム(ホスト)は出発点として使われます。 なぜならば、新しいシステムを構築するのにコンパイラやリンカ、シェルといったプログラムを必要とするからです。 必要なツールは、通常、ディストリビューションをインストールするときのオプションの一つとして "development" を選択していれば利用できます。
第 3 章では、まず新規の Linux ネイティブなパーティションとファイルシステムを作成します。 そこが新しい LFS システムがコンパイルされ、またインストールされる場所になります。 そのあとに第 4 章で、LFS システムを構築するのに必要なすべてのパッケージとパッチをダウンロードし、新しいファイルシステム上にそれらを保存します。
第 5 章では基本的な開発セット( toolchain ともいいます)を構成する数多くのパッケージのインストールについて説明します。 この toolchain は第 6 章で実際のシステムを構築するのに使われます。 これらのパッケージの内のいくつかは鶏と卵の関係を解決するのに必要になります。 たとえばコンパイラをコンパイルするのにはコンパイラが必要です。
第 5 章でまず行なわれることは toolchain の構築の第 1 段階で、Binutils と GCC の作成です。 これらのパッケージのプログラムは、ホストシステムから独立して使えるように静的にリンクされます。 二つ目にやることは C ライブラリである Glibc を構築することです。Glibc は第 1 段階で構築したばかりの toolchain によってコンパイルされます。 三つ目にやることは toolchain の構築の第 2 段階です。今回の toolchain は新しく構築された Glibc に対して動的にリンクされます。 第 5 章の残りは、二回目の構築で作成した toolchain を使ってすべてのパッケージを構築し、ホストから独立した新しい Glibc に動的にリンクすることです。 これが完了したとき、LFS インストールプロセスはもはや実行中のカーネルを除いてホストディストリビューションに依存しません。
"これはどうも自分のホストディストリビューションから逃げだすだけなのに、大変な仕事のように見える"と考えているかもしれませんね。 十分な技術的な説明は、静的リンクと動的リンクの違いについての説明も含めて、第 5 章の初めで行っています。
第 6 章では実際の LFS システムが構築されます。 chroot ( change root )プログラムを使って仮想的な環境に入り、そのルートディレクトリが LFS パーティションに設定されるシェルを開始します。 これは、LFS パーティションをルートパーティションとしてマウントするようにカーネルを再起動して指示することととてもよく似ています。 実際に再起動せずに chroot を使う理由は、起動可能なシステムを作るには今すぐに必要としない余計な仕事が要求されるからです。 しかし主な利点としては、chroot を使えば LFS が構築されている間にホストを使い続けることができることです。 パッケージのコンパイルが完了するのを待っている間、ヴァーチャルコンソールを他のものに変えるか、X デスクトップでただいつものようにコンピュータを使っていればいいのですから。
インストールを終らせるために、第 7 章でブートスクリプトが設定され、カーネルとブートローダーが第 8 章で設定されます。 第 9 章はこの本を終らせたあとにあなたを助けるいくつかの助言を含みます。 最後に、コンピュータを再起動して新しい LFS システムを動かす準備ができます。
これが構築過程の簡単な説明です。 それぞれの段階の詳細な情報は、あなたが進むにしたがってそれぞれの章の中とパッケージの紹介の中で説明されます。 もし今何か完全にはっきりしなくても心配しないで下さい。すべてはすぐにぴったりとつじつまが合います。
第 2 章を注意深く読んで下さい。第 5 章までとそれ以降について、あらかじめ知っておかなくてはいけないいくつかの重要事項を説明しています。