Linuxを日常的に使う実験ブログ

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

 2015-11-03

 LFS

こんにちは。今回のテーマは『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システムを立ち上げて見ましょう。無事起動すれば作業は無事完了です。 02

最後に

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