LFS 7.7を構築する[Part 5 システム設定編]
2015-11-03
2015-11-03
こんにちは。今回のテーマは『LFS 7.7を構築する[Part 5 システム設定編]』です。本記事はからの続きとなります。いよいよLFS構築作業も最終段階です。基本ソフトウェアのインストール作業は前回までで終了しているので、今回はシステムの設定を中心に行っていきます。詳細な作業はLFS-BOOK (*1)を参照いただくとして、作業の流れとTIPSをお届けできればと考えています。 (*1 LFS-BOOK-7.7 Copyright © 1999-2015 Gerard Beekmans 本文中のコマンドはMITライセンスに準じます。) [adsense02] 【目次】 ブートスクリプトのインストール ネットワークの設定 各種システムファイルの作成と設定 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システムを立ち上げて見ましょう。無事起動すれば作業は無事完了です。
最後に
5回目にしてようやくLFS構築の流れを書き終えることが出来ました。ブートローダーをホストシステムと共有しているので完全に独立したシステムではないですが、必要となればGRUBをブートローダーとして自力で起動可能です。この後はBLFS(Beyond Linux From Scratch)を活用してより使いやすいシステムにしていきたいと考えています。本記事が何かのお役に立てば幸いです。 【関連記事】 LFS 7.7を構築する [Part 4 基本ソフトウェアのインストール編] LFS 7.7を構築する [Part 3 一時的環境の構築編] [adsense]