LFS on Ubuntu(1) 準備作業の仕上げまで

$ df -k
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/sda1              9614116   3433216   5692528  38% /
varrun                  253176       104    253072   1% /var/run
varlock                 253176         0    253176   0% /var/lock
udev                    253176        56    253120   1% /dev
devshm                  253176       288    252888   1% /dev/shm
lrm                     253176     40000    213176  16% /lib/modules/2.6.24-27-generic/volatile
/dev/sda2              9614148    152688   8973084   2% /mnt/lfs
/dev/scd0              1153706   1153706         0 100% /media/cdrom0

ホストシステムが機能拡張しているかどうかを確認

# debugfs -R feature /dev/sda2
debugfs 1.40.8 (13-Mar-2008)
Filesystem features: has_journal resize_inode dir_index filetype needs_recovery sparse_super large_file

環境変数 LFS を設定

$ export LFS=/mnt/lfs
$ sudo su -
# export LFS=/mnt/lfs

// パッケージやパッチをダウンロードするディレクトリを作成
# mkdir -v $LFS/sources
mkdir: created directory `/mnt/lfs/sources'

// 書き込み権限とスティッキー (*1) を付与
# chmod -v a+wt $LFS/sources
`/mnt/lfs/sources' のモードを 1777 (rwxrwxrwt) に変更しました

$ cd $LFS/sources

$ emacs wget-list
リンクの内容を貼り付けて ^X ^S
http://www.linux.or.jp/JF/JFdocs/LFS-BOOK/wget-list.txt

// バックアップ
$ cp -pv wget-list wget-list.orig
`wget-list' -> `wget-list.orig'

// 国内から入手可能なものは国内から入手するよう置換
$ sed -e 's|http://ftp\.gnu\.org/gnu/|http://ftp.riken.jp/GNU/ftp/gnu/|g' \
-e 's|http://www\.kernel\.org/pub/linux/|http://ftp.riken.jp/Linux/kernel.org/linux/|g' \
wget-list.orig > wget-list

// 必要なパッケージソースやパッチの一括取得
$ wget -N -i wget-list

wget-list内の必須のパッチに加えて LFS コミュニティが提供する任意のパッチが数多くあるので必要に応じて適用する。http://www.linuxfromscratch.org/patches/

$ echo $LFS
/mnt/lfs

# mkdir -v $LFS/tools

// ホストシステム上に /tools のシンボリックリンクを作成
# ln -sv $LFS/tools /
`/tools' -> `/mnt/lfs/tools'

// LFS ユーザーの追加
# groupadd lfs
# useradd -s /bin/bash -g lfs -m -k /dev/null lfs
# passwd lfs

// $LFS/tools ディレクトリの所有者を lfs ユーザーとする
# chown -v lfs $LFS/tools
// 作業ディレクトリの所有者を lfs ユーザーとする
# chown -v lfs $LFS/sources

// lfs でログイン (ログインシェルを起動)
$ su - lfs
$ echo $LFS
$ export LFS=/mnt/lfs
$ cd $LFS

// 動作環境設定
$ cat > ~/.bash_profile << "EOF"
exec env -i HOME=$HOME TERM=$TERM PS1='\u\w\$ ' /bin/bash
EOF

// .bashrc ファイルの生成
$ cat > ~/.bashrc << "EOF"
set +h
umask 022
LFS=/mnt/lfs
LC_ALL=POSIX
LFS_TGT=$(uname -m)-lfs-linux-gnu
PATH=/tools/bin:/bin:/usr/bin
export LFS LC_ALL LFS_TGT PATH
EOF

$ source ~/.bash_profile
|