LFS on VirtualBox に挑戦 その1 - 環境準備

2015.01.19 Author: Jas

あけましておめでとうございます。
開発のお部屋の住人のJasです。

今年の抱負の1つは、「Linuxの知識を(さらに)高める」に決まりました。
ということで、手始めとして、LFS(Linux From Scratch)に挑戦することにします。
LFSとは、ソースからコンパイルして自分用のLinuxシステムを構築するための入門用の教育プロジェクトです。
既存のディストリビューションが存在していますが、敢えて自分で1から組み立て、Linuxの構成要素を知ることで、よりLinuxを理解するのを今回の目的としています。

早速ですが、LFS構築に必要な環境などを準備します。
手軽に環境を用意できるので、VirtualBox上で作業を進めていきたいと思います。
LFSは、現時点での最新版(7.6)の手順に従って構築していきます。
今回使ったものは以下の通りです。


まずはLFSを構築するためのホストマシンを準備します。
チェックスクリプトが用意されているので、結果を確認しながら必要なパッケージをインストールします。
gawkやxz等、一部のパッケージはyumでインストールできるものでは古かったので、ソースコンパイルしました。

# yum install bison
# yum install patch
# yum install gcc
# yum install gcc-g++
# yum install byacc

# wget http://ftp.jaist.ac.jp/pub/GNU/gawk/gawk-4.0.1.tar.gz
# tar xvf gawk-4.0.1.tar.gz
# cd gawk-4.0.1
# ./configure
# make
# make install

# wget http://tukaani.org/xz/xz-5.2.0.tar.gz
# tar xvf xz-5.2.0.tar.gz
# cd xz-5.2.0
# ./configure
# make
# make install

ホスト要件がクリアできたら、LFS用のディスクを追加します。
VirtualBoxのストレージ設定から、SATAに仮想HDD(固定ディスク・10GB)を追加し、仮想マシンにログインしてHDDの追加を確認します。

$ dmesg | grep sdb
sd 3:0:0:0: [sdb] 20971520 512-byte logical blocks: (10.7 GB/10.0 GiB)
sd 3:0:0:0: [sdb] Write Protect is off
sd 3:0:0:0: [sdb] Mode Sense: 00 3a 00 00
sd 3:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sdb: sda1 sda2
sd 3:0:0:0: [sdb] Attached SCSI disk

問題なくHDDが認識されたので、パーティションを作成します。
今回は以下のようなディスクレイアウト(sdb1~sdb3)にしてみました。

/dev/sdb1     100MB     ext2  ... /boot パーティション
/dev/sdb2 8GB ext4 ... ルートパーティシィb
/dev/sdb3 2GB ext4 ... /home パーティション

なお、スワップパーティションはホストと共有としました。

LFSの教科書に従って、パーティションにファイルシステムを作成しマウントします。

# export LFS=/mnt/lfs
# mkdir -pv $LFS
# mount -v -t ext4 -o defaults /dev/sdb2 $LFS
# mkdir -v $LFS/home
# mount -v -t ext4 /dev/sdb3 $LFS/home
# mkdir -v $LFS/boot
# mount -v -t ext2 /dev/sdb1 $LFS/boot

これでLFSを構築する環境の準備が整いました。
次回は、LFS構築の一時的環境(ツールチェーン)の構築を行います。

名古屋のWebシステム開発・ネットワーク構築会社 コネクティボへ