LoginSignup
7
5

More than 3 years have passed since last update.

Linux From Scratch 10.0 の構築

Posted at

Linux From Scratch 10.0 の構築

はじめに

Linux From Scratch (以下、LFS)は、 Linux システムをゼロから構築する手順を提供しているプロジェクトです。
長年のリリースの末、今年で LFS のバージョンが 10.0 を迎えました。
本記事では LFS 10.0 の構築手順を書き残して行きたいと思います。

ドキュメント

LFSブック日本語版プロジェクトで LFS の日本語訳が公開されています。
基本はこちらに順に従えば、最終的に LFS の構築が完了するようになっています。

公式ドキュメントは 公式サイト から
LFSRead OnlineStable LFS
とリンクを進めば閲覧できます。

必要なもの

  • Linux システムが動作している実機( x86 または x86_64 )
  • LFS 専用ストレージ( HDD / SSD ) ※ 40G もあれば十分です

構築手順

具体的な構築手順は、以下の3段階で構成されています。

ビルド準備

LFS 用ストレージ上にファイルシステムを構築しマウントします。
そこへビルドに必要なファイルやディレクトリを配置します。

ツールチェーン構築

ツールチェーン(tool chain)と呼ばれる、ホストシステムから独立した最小限のビルド環境を構築します。

LFS 構築

ツールチェーンを用いて、各パッケージをビルドします。
また LFS 用ストレージへブートローダーをインストールします。

つまづきどころ

初めての構築ではドキュメントの指示通りに構築することを強くお勧めします。
そうしないと構築失敗時に何が失敗の原因か判らなくなってしまいます。

手順の中では自分の環境に合わせて設定しなければならず、
しかもその設定内容が重要という箇所が複数存在します。

ここでは、私はこのように考えて設定しているという所を紹介します。

新しいパーティションの生成

特にこだわりがなければ LFS 用ストレージを
以下の4つのパーティションに区切ると良いかと思います。

パーティション番号 マウントポイント パーティションサイズ
1 /boot 200MB
2 / 20GB 〜 任意
3 /home 任意
4 swap メモリ容量の2倍

/boot パーティションには、以下の2点に気をつけて下さい。

  1. パーティションの先頭にする
  2. ブート可能フラグを付ける

それぞれのパーティションの妥当なサイズはドキュメントで説明されています。
最初にストレージの全容量から機械的に計算ができる /boot, swap パーティションの容量を引き、
残りの容量を / と /home で好みで分けてあげるよう計算すると迷わないかと思います。

ファイルシステムの生成

ファイルシステムの選択に自信がなければ EXT4 が無難です。

Linux-5.8.3

Linux カーネルのビルドになります。

多くの設定項目がありますが、最初から大きくカスタマイズしようとはしない方が良いでしょう。
下手の多くをいじるとカーネルが起動しなかった場合に何の設定が原因が突き止められなくなります。

ここでは、必要と判っている機能やドライバを確実に有効にすることに重点を置いて設定すると良いかと思います。
カスタマイズは、LFS の構築が完了し、確実にブートするカーネルがある状態が揃ってから少しずつ行えば良いです。

項目にカーソルが重なっている状態で <Help> または ? キーを押下すると、その項目の説明を読むことができます。
項目の説明を読んでもどのような機能か良く判らない場合、説明の末尾を見ましょう。
大抵の場合 If unsure say Y.(よく判らなければ「はい」を選択) のような記述があります。

手順の注記で説明されている項目は、必ずそのように設定するようにして下さい。

Device Drivers  --->
  Generic Driver Options  --->
   [ ] Support for uevent helper [CONFIG_UEVENT_HELPER]
   [*] Maintain a devtmpfs filesystem to mount at /dev [CONFIG_DEVTMPFS]

GRUB を用いたブートプロセスの設定

上述の通りにパーティションを分割した場合、grub 設定ファイルの記述は下記のようになります。
(パーティション番号1番を /boot パーティション、パーティション番号2番を / パーティションとした場合)

# Begin /boot/grub/grub.cfg

set default=0
set timeout=5

insmod ext2
set root=(hd0,1)

menuentry "GNU/Linux, Linux 5.8.3-lfs-10.0" {
        linux   /vmlinuz-5.8.3-lfs-10.0 root=/dev/sda2 ro
}

Beyond Linux From Scratch

Beyond Linux From Scratch(以下、 BLFS)は、LFS 構築を終えたユーザ向けに、追加パッケージの構築方法を提供しているプロジェクトです。
LFSブック日本語版と同様にBLFSブック日本語版 がありますが、扱われている範囲が広く、全ては翻訳されていません。

BLFS では必要なパッケージを自分で取捨選択する必要があります。
多くの選択肢がありますが、利便性のためにも最初は以下のパッケージ辺りから手を付けると良いかと思います。

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5