1.1. LFS をどうやって作るか

LFS システムは、既にインストールされている Linux ディストリビューション (Debian、Mandriva、Red Hat、SUSE など) を利用して構築していきます。 この既存の Linux システム(ホスト)は、LFS 構築のためにさまざまなプログラム類を利用する基盤となります。 プログラム類とはコンパイラー、リンカー、シェルなどです。 したがってそのディストリビューションのインストール時には「開発 (development)」オプションを選択し、それらのプログラム類が利用できるようにしておく必要があります。

コンピューター内にインストールされているディストリビューションを利用するのではなく、他に提供されている LiveCD を利用することもできます。

第2章 では、新しく構築する Linux のためのパーティションとファイルシステムの生成方法について説明します。 そのパーティション上にて LFS システムをコンパイルしインストールします。 第3章 では LFS 構築に必要となるパッケージとパッチについて説明します。 これらをダウンロードして新たなファイルシステム内に保存します。 第4章 では作業環境の準備について述べています。 この章では重要な説明を行っていますので 第5章 以降に進む前に是非注意して読んでください。

第5章 では数多くのパッケージをインストールします。 これらは基本的な開発ツール (ツールチェーン) を構成するものであり 第6章 において最終的なシステムを構築するために利用します。 パッケージの中には自分自身を循環的に必要とするような依存関係を持つものがあります。 例えばコンパイラーをコンパイルするためにはコンパイラーが必要となります。

第5章 ではツールチェーンの第1回めの構築方法を示します。 そこではまず Binutils と GCC を構築します。 (第1回めと表現しているということは、つまりこれら2つのパッケージは後に再構築します。) 次に C ライブラリである Glibc を構築します。 Glibc は第1回めのツールチェーンを用いてコンパイルされます。 そして第2回めのツールチェーン構築を行います。 この時のツールチェーンは新たに構築した Glibc をリンクします。 それ以降の 第5章 に示すパッケージは第2回めのツールチェーンプログラムを用いて構築します。 上の作業をすべて終えたら LFS のインストール作業はもはやホストディストリビューションに依存しません。 ただし作動させるカーネルだけは使い続けます。

ホストシステムのツール類から新しいシステムを切り離していくこの手順は、やり過ぎのように見えるかもしれません。 5.2.「ツールチェーンの技術的情報」 にて詳細に説明しているので参照してください。

第6章 にて LFS システムが出来上がります。 chroot (ルートをチェンジする) プログラムを使って仮想的な環境に入り LFS パーティション内のディレクトリをルートディレクトリとしてシェルを起動します。 これは LFS パーティションをルートパーティションとするシステム再起動と同じことです。 ただ実際にはシステムを再起動はしません。 再起動できるシステムとするためにはもう少し作業を必要としますし、この時点ではまだそれが必要ではないので chroot を行う方法を取ります。 chroot を使うメリットは、LFS 構築作業にあたって引き続きホストシステムを利用できることです。 パッケージをコンパイルしている最中には、通常どおり別の作業を行うことができます。

インストールの仕上げとして 第7章 にて LFS ブートスクリプトを設定し、第8章 にてカーネルとブートローダーを設定します。 第9章 では LFS システム構築経験を踏まえて、その先に進むための情報を示します。 本書に示す作業をすべて実施すれば、新たな LFS システムを起動することが出来ます。

上はごく簡単な説明にすぎません。 各作業の詳細はこれ以降の章やパッケージの説明を参照してください。 内容が難しいと思っていても、それは徐々に理解していけるはずです。 読者の皆さんには、是非 LFS アドベンチャーに挑んで頂きたいと思います。