LFS 7.7を構築する[Part 5 システム設定編]

こんにちは。今回のテーマは『LFS 7.7を構築する[Part 5 システム設定編]』です。本記事はからの続きとなります。いよいよLFS構築作業も最終段階です。基本ソフトウェアのインストール作業は前回までで終了しているので、今回はシステムの設定を中心に行っていきます。詳細な作業はLFS-BOOK (*1)を参照いただくとして、作業の流れとTIPSをお届けできればと考えています。
(*1 LFS-BOOK-7.7 Copyright © 1999-2015 Gerard Beekmans 本文中のコマンドはMITライセンスに準じます。)


【目次】
ブートスクリプトのインストール
ネットワークの設定
各種システムファイルの作成と設定
Linuxカーネルのインストールとモジュールの設定
ブートローダーのインストールと設定

ブートスクリプトのインストール

以下のコマンドでブートスクリプトをインストールします。

root# cd /sources
root# tar -xvf lfs-bootscript-20150222.tar.bz2
root# cd lfs-bootscript-20150222
root# make install

ネットワークの設定

udevカスタムルールの生成

以下コマンドを実行します。

root# bash /lib/udev/init-net-rules.sh

以下のコマンドでデバイスに割り振られた名前を確認します。

root# cat /etc/udev/rules.d/70-persistent-net.rules

ネットワークインターフェースに対する設定ファイルの生成

固定IPアドレスがある場合は以下のようにIPを指定してファイルを生成して下さい。

ファイルの生成例

root# cd /etc/sysconfig/
root# cat > ifconfig.eth0 << "EOF"
ONBOOT=yes
IFACE=eth0
SERVICE=ipv4-static
IP=192.168.1.2
GATEWAY=192.168.1.1
PREFIX=24
BROADCAST=192.168.1.255
EOF

筆者の場合はdhcpcdを導入してネットワークに接続したために、以下のように設定しています。

root# cat > /etc/sysconfig/ifconfig.eth0 << "EOF"
ONBOOT="yes"
IFACE="eth0"
SERVICE="dhcpcd"
DHCP_START="-b -q "
DHCP_STOP="-k "
EOF

dhcpcdの導入はBLFSの内容になるので今回は詳しくは扱いません。詳細はlinuxfromscratch.orgをご覧ください。

/etc/resolv.confファイルの生成
以下のようなコマンドで/etc/resolv.confファイルを生成します。domainは省略可能です。ローカルネットワークではルーターのIPアドレスがIPアドレスに相当する場合が多いと思います。secondary nameserverは削除可能です。

root# cat > /etc/resolv.conf << "EOF"
# Begin /etc/resolv.conf
domain 
nameserver 
nameserver 
# End /etc/resolv.conf
EOF

ホスト名の設定

以下コマンドで/etc/hostnameファイルを作成します。

root# echo "<ホスト名>" > /etc/hostname

/etc/hostsファイルの作成

お使いの環境に合わせてIPアドレス等を設定して下さい。

root# cat > /etc/hosts << "EOF"
# Begin /etc/hosts (no network card version)
127.0.0.1   localhost
# End /etc/hosts (no network card version)
EOF

各種システムファイルの作成と設定

/etc/inittabファイルの生成

以下のコマンドで/etc/inittabファイルを生成します。

root# cat > /etc/inittab << "EOF"
# Begin /etc/inittab
id:3:initdefault:

si::sysinit:/etc/rc.d/init.d/rc S

l0:0:wait:/etc/rc.d/init.d/rc 0
l1:S1:wait:/etc/rc.d/init.d/rc 1
l2:2:wait:/etc/rc.d/init.d/rc 2
l3:3:wait:/etc/rc.d/init.d/rc 3
l4:4:wait:/etc/rc.d/init.d/rc 4
l5:5:wait:/etc/rc.d/init.d/rc 5
l6:6:wait:/etc/rc.d/init.d/rc 6

ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

su:S016:once:/sbin/sulogin

1:2345:respawn:/sbin/agetty --noclear tty1 9600
2:2345:respawn:/sbin/agetty tty2 9600
3:2345:respawn:/sbin/agetty tty3 9600
4:2345:respawn:/sbin/agetty tty4 9600
5:2345:respawn:/sbin/agetty tty5 9600
6:2345:respawn:/sbin/agetty tty6 9600

# End /etc/inittab
EOF

システムクロックの設定

/etc/sysconfig/clockファイルの生成

root# cat > /etc/sysconfig/clock << "EOF"
# Begin /etc/sysconfig/clock

UTC=1

# Set this to any options you might need to give to hwclock,
# such as machine hardware clock type for Alphas.
CLOCKPARAMS=

# End /etc/sysconfig/clock
EOF

タイムゾーンの設定

以下のコマンドでタイムゾーンを設定します。

root# TIMEZONE=Asia/Tokyo
root# cp --remove-destination /usr/share/zoneinfo/$TIMEZONE /etc/localtime

キーボードレイアウトとフォントの設定

以下のコマンドで設定ファイルを生成します。日本語キーボードならjp106を設定します。フォントは/usr/share/consolefontsにフォントがあります。お好みで設定して下さい。

root# cat > /etc/sysconfig/console << "EOF"
# Begin /etc/sysconfig/console
     
KEYMAP="jp106"
FONT="lat2-Terminus16"

# End /etc/sysconfig/console
EOF

Bashの起動初期ファイルの設定

以下のコマンドで/etc/profileファイルを生成します。筆者はen_US.UTF-8で設定しています。その他お好みで環境変数を設定してください。

root# cat > /etc/profile << "EOF"
# Begin /etc/profile
     
export LANG=en_US.UTF-8
export PS1="[\u@\h:\W]\$ "

# End /etc/profile
EOF

/etc/inputrcファイルの生成

以下のコマンドで/etc/inputrcファイルを生成します。

cat > /etc/inputrc << "EOF"
# Begin /etc/inputrc
# Modified by Chris Lynn 

# Allow the command prompt to wrap to the next line
set horizontal-scroll-mode Off

# Enable 8bit input
set meta-flag On
set input-meta On

# Turns off 8th bit stripping
set convert-meta Off

# Keep the 8th bit for display
set output-meta On

# none, visible or audible
set bell-style none

# All of the following map the escape sequence of the value
# contained in the 1st argument to the readline specific functions
"\eOd": backward-word
"\eOc": forward-word

# for linux console
"\e[1~": beginning-of-line
"\e[4~": end-of-line
"\e[5~": beginning-of-history
"\e[6~": end-of-history
"\e[3~": delete-char
"\e[2~": quoted-insert

# for xterm
"\eOH": beginning-of-line
"\eOF": end-of-line

# for Konsole
"\e[H": beginning-of-line
"\e[F": end-of-line

# End /etc/inputrc
EOF

/etc/shellファイルの生成

以下のコマンドで/etc/shellファイルを生成します。

root# cat > /etc/shells << "EOF"
# Begin /etc/shells

/bin/sh
/bin/bash

# End /etc/shells
EOF

/etc/fstab/ファイルの生成

基本的にはLFS-BOOK-7.7に沿って作成すれば良いのですが、筆者はブートローダーをデュアルブートしている(今回のホストシステム)SlackwareのLILOで統一するため、/bootはSlackwareと共用することにします。なのでfstabファイルにおいても/bootにはSlackwareの/bootと同じデバイスを指定します。
筆者のfstab作成のためのコマンド実行例は以下のとおりです。お使いの環境に合わせて設定下さい。

root# cat > /etc/fstab << "EOF"
# Begin /etc/fstab

# file system  mount-point  type     options             dump  fsck
#                                                              order

/dev/sda9     /             ext4     defaults            0     1
/dev/sda6     /boot         ext2     defaults            1     2
/dev/sda7     swap          swap     pri=1               0     0
proc           /proc        proc     nosuid,noexec,nodev 0     0
sysfs          /sys         sysfs    nosuid,noexec,nodev 0     0
devpts         /dev/pts     devpts   gid=5,mode=620      0     0
tmpfs          /run         tmpfs    defaults            0     0
devtmpfs       /dev         devtmpfs mode=0755,nosuid    0     0

# End /etc/fstab
EOF

/etc/lfs-releaseファイルの生成

構築したシステムを判別しやすくするために以下のコマンドでファイルを生成します。

root# cat > /etc/lsb-release << "EOF"
DISTRIB_ID="Linux From Scratch"
DISTRIB_RELEASE="7.7"
DISTRIB_CODENAME=""
DISTRIB_DESCRIPTION="Linux From Scratch"
EOF

Linuxカーネルのインストールとモジュールの設定

カーネルのビルドとインストール

ここではカーネル設定の詳細は割愛したいと思います。カーネルのビルドを行ったことがある方ならば問題ない作業だと思います。簡単に実行するコマンドを列挙します。

root# cd /sources/linux-3.19
root# make mrproper
root# make menuconfig
root# make && make modules_install
root# cp -v arch/x86/boot/bzImage /boot/vmlinuz-3.19-lfs-7.7
root# cp -v arch/x86/boot/bzImage /boot/vmlinuz-3.19-lfs-7.7
root# cp -v .config /boot/config-3.19
root# install -d /usr/share/doc/linux-3.19
root# cp -r Documentation/* /usr/share/doc/linux-3.19

モジュールロード順の設定

以下のコマンドで/etc/modprobe.d/usb.confファイルを生成します。

root# install -v -m755 -d /etc/modprobe.d
root# cat > /etc/modprobe.d/usb.conf << "EOF"
# Begin /etc/modprobe.d/usb.conf

install ohci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i ohci_hcd ; true
install uhci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i uhci_hcd ; true

# End /etc/modprobe.d/usb.conf
EOF

ブートローダーのインストールと設定

筆者は今回LFS側ではブートローダの設定を行いませんでした。Slackware側で/etc/lilo.confにLFSシステムを読み込む設定を書き込みました。(そのために/bootをSlackwareと共有しました)LFS単体で起動したい場合はブートローダの設定が必要ですのでコチラを参考に設定して下さい。GRUBの設定はArchやGentooとほとんど変わりません。

システムを再起動してブートローダーから構築したLFSシステムを立ち上げて見ましょう。無事起動すれば作業は無事完了です。
02

最後に

5回目にしてようやくLFS構築の流れを書き終えることが出来ました。ブートローダーをホストシステムと共有しているので完全に独立したシステムではないですが、必要となればGRUBをブートローダーとして自力で起動可能です。この後はBLFS(Beyond Linux From Scratch)を活用してより使いやすいシステムにしていきたいと考えています。本記事が何かのお役に立てば幸いです。
【関連記事】
LFS 7.7を構築する [Part 4 基本ソフトウェアのインストール編]
LFS 7.7を構築する [Part 3 一時的環境の構築編]

Sponsored Link


コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です