トップ > 最小システムの構築 >
設定ファイルの作成

  
このページの目次

Linuxシステムとして足りないものを追加する

ここまでの作業で、最低限必要なソフトウェア群のビルド・インストールが終わりました。 ただし、現時点では、Linuxシステムとして機能するまでには完成していません

なぜなら、

  1. システム設定ファイル
  2. システム起動ファイル
  3. シェル設定ファイル
  4. root用設定ファイル
  5. ネットワークへの対応

が、不足しているからです。

ここでは、不足している上記対応を行います。

チェンジルート

まずは、チェンジルート環境に入ります。


/root/chroot.sh

 

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

まず、システム設定ファイルを作成します。

ビルド・インストール前リストの生成

最初に、ビルド・インストール前リストを生成します。


/sources/genprevlist.sh > /dev/null 2>&1

 

/etc/sysconfigディレクトリの作成

/etc/sysconfigディレクトリを作成します。 システム設定ファイルを置くディレクトリです


mkdir -vp /etc/sysconfig

 

/etc/sysconfig/rcファイルの作成 - システム起動の設定 -

/etc/sysconfig/rcファイルを作成します。 後ほど作成するシステム起動ファイルによって参照される設定ファイルです


cat > /etc/sysconfig/rc << "EOF"
export RCBASE=/etc/rc.d
export RCFUNCTIONS=${RCBASE}/init.d/functions
EOF

 

環境変数 RCBASE に、システム起動ファイルを置くトップディレクトリを設定しています。 環境変数 RCFUNCTIONS に、システム起動ファイルが呼び出すシェル関数が記述されたファイルのパスを設定しています。

/etc/sysconfig/clockファイルの作成 - クロックの設定 -

/etc/sysconfig/clockファイルを作成します。 システムクロックおよびハードウェアクロックに関する設定ファイルです


cat > /etc/sysconfig/clock << "EOF"
UTC=0
CLOCKPARAMS=
EOF

 

ハードウェアクロックをローカル時間にセットしています。

/etc/sysconfig/consoleファイルの作成 - コンソールの設定 -

/etc/sysconfig/consoleファイルを作成します。 コンソールの設定ファイルです。 なお、X Windows System上の仮想端末等には影響はしません


cat > /etc/sysconfig/console << "EOF"
KEYMAP="jp106"
EOF

 

/etc/fstabファイルの作成 -ファイルシステム情報 -

/etc/fstabファイルを作成します。 mount コマンドなどから参照される、ファイルシステム情報を記述するファイルです。

  
<@デバイス名@>を、1CD Linux用パーティションのデバイス名、およびスワップ用のパーティションのデバイス名に置き換えてください。 仮想マシンで作業しているのであれば、1CD Linux用パーティションのデバイス名が /dev/sda3、スワップ用のパーティションのデバイス名が /dev/sda2 となっているはずです。

cat > /etc/fstab << "EOF"
/dev/<@デバイス名@> /        ext4   defaults       1 1
/dev/<@デバイス名@> swap     swap   defaults       0 0
none                /dev/pts devpts gid=5,mode=620 0 0
none                /dev/shm tmpfs  defaults       0 0
none                /proc    proc   defaults       0 0
none                /sys     sysfs  defaults       0 0
EOF

  
<@デバイス名@>を置き換える必要があるため、[コピー]ボタンは設置していません。

/etc/inputrcファイルの作成 - コマンドライン入力の設定 -

/etc/inputrcファイルを作成します。 この設定ファイルは、Readlineライブラリを使ったコマンドライン入力機能によって参照されます


cat > /etc/inputrc << "EOF"
set meta-flag on
set input-meta on
set output-meta on
set convert-meta off
set bell-style none

"\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

"\e[5C": forward-word
"\e[5D": backward-word
"\e[1;5C": forward-word
"\e[1;5D": backward-word

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

# for freebsd console
"\e[H": beginning-of-line
"\e[F": end-of-line
EOF

 

インストールリストの生成

最後に、インストールリストを生成します。


/sources/genpostlist.sh > /dev/null 2>&1
/sources/gendifflist.sh systemconfigfiles

 

システム起動ファイルの作成

続いて、システム起動ファイルを作成します。

本ウェブサイトの記事では、システムの起動・終了処理を行うためのソフトウェアとして、Sysvinit を導入しました。 ここでは、Sysvinit のルールに従ってシステムの起動ファイルを作成します

ビルド・インストール前リストの生成

最初に、ビルド・インストール前リストを生成します。


/sources/genprevlist.sh > /dev/null 2>&1

 

/etc/rc.dディレクトリの作成

ディレクトリを作成します。 システム起動ファイルを配置するディレクトリです。


mkdir -vp /etc/rc.d
mkdir -vp /etc/rc.d/init.d
mkdir -vp /etc/rc.d/rc0.d
mkdir -vp /etc/rc.d/rc1.d
mkdir -vp /etc/rc.d/rc2.d
mkdir -vp /etc/rc.d/rc3.d
mkdir -vp /etc/rc.d/rc4.d
mkdir -vp /etc/rc.d/rc5.d
mkdir -vp /etc/rc.d/rc6.d
ln -vsf rc.d/init.d/ /etc/
ln -vsf rc.d/rc0.d/  /etc/
ln -vsf rc.d/rc1.d/  /etc/
ln -vsf rc.d/rc2.d/  /etc/
ln -vsf rc.d/rc3.d/  /etc/
ln -vsf rc.d/rc4.d/  /etc/
ln -vsf rc.d/rc5.d/  /etc/
ln -vsf rc.d/rc6.d/  /etc/

 

/etc/rc.d/xxxx を /etc/xxxx としてもアクセスできるように、シンボリックリンクも作成しています

/etc/inittabファイルの作成 - 起動設定 -

/etc/inittabファイルを作成します。 デフォルトのランレベルの指定、システム共通初期化スクリプト、各ランレベル別初期化スクリプト、ランレベル共通初期化スクリプトの呼び出しなどを記述します。


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

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

r0:0:wait:/etc/rc.d/rc 0
r1:1:wait:/etc/rc.d/rc 1
r2:2:wait:/etc/rc.d/rc 2
r3:3:wait:/etc/rc.d/rc 3
r4:4:wait:/etc/rc.d/rc 4
r5:5:wait:/etc/rc.d/rc 5
r6:6:wait:/etc/rc.d/rc 6

lc:2345:once:/etc/rc.d/rc.local

c1:2345:respawn:/sbin/agetty tty1 9600
c2:2345:respawn:/sbin/agetty tty2 9600
c3:2345:respawn:/sbin/agetty tty3 9600
c4:2345:respawn:/sbin/agetty tty4 9600
c5:2345:respawn:/sbin/agetty tty5 9600
c6:2345:respawn:/sbin/agetty tty6 9600

ca::ctrlaltdel:/sbin/shutdown -t3 -r now
EOF

 

/etc/rc.d/init.d/functionsファイルの作成 - システム起動ファイル用のシェル関数 -

/etc/rc.d/init.d/functionsファイルを作成します。 システム起動ファイルが参照するファイルで、中身はシェル関数の集まりです


cat > /etc/rc.d/init.d/functions << "EOF"
export PATH="/bin:/usr/bin:/sbin:/usr/sbin"
EOF

 

なお、現在は環境変数 PATH を設定しているだけで関数は含んでいません。 将来的にシステム起動ファイルの共通処理が必要になった場合に、このファイルに関数を定義してください。

/etc/rc.d/rc.systemファイルの作成 - システム共通初期化スクリプト -

/etc/rc.d/rc.systemファイルを作成します。 このファイルは、システム起動時に最初に呼び出される初期化スクリプトです

  
/etc/inittab の記述により initプロセスから呼び出されます。

cat > /etc/rc.d/rc.sysinit << "EOF"
. /etc/sysconfig/rc
. ${RCFUNCTIONS}

echo "mounting /proc"
mount -n /proc

echo "mounting /sys"
mount -n /sys

echo "remounting root filesystem"
mount -n -o remount /

echo "mounting filesystems"
mount -a

#echo "enable swap"
#swapon -a

touch /var/run/utmp
chgrp -v utmp /var/run/utmp
chmod -v 0664 /var/run/utmp

sleep 1
EOF
chmod 0755 /etc/rc.d/rc.sysinit
ln -vsf rc.d/rc.sysinit /etc/

 

/etc/rc.d/rcファイルの作成 - 各ランレベル別初期化スクリプト -

/etc/rc.d/rcファイルを作成します。 このファイルは、システム共通初期化スクリプト(/etc/rc.d/rc.system)の後に呼び出される初期化スクリプトです

  
/etc/inittab の記述により initプロセスから呼び出されます。 ランレベルがパラメータとして渡されます。

cat > /etc/rc.d/rc << "EOF"
. /etc/sysconfig/rc
. ${RCFUNCTIONS}

previous=${PREVLEVEL}
runlevel=${1}

if [ "${previous}" = "" ] ; then
  previous="N"
fi

echo "previous = [${previous}]"
echo "runlevel = [${runlevel}]"

if [ "${previous}" != "N" ] ; then
  for script in /etc/rc${runlevel}.d/K* ; do
    if [ -f "${script}" ] ; then
      ${script} stop > /dev/null 2>&1
    fi
  done
fi

for script in /etc/rc${runlevel}.d/S* ; do
  if [ -f "${script}" ] ; then
    ${script} start > /dev/null 2>&1
  fi
done
EOF
chmod 0755 /etc/rc.d/rc
ln -vsf rc.d/rc /etc/

 

/etc/rc.d/rc.localファイルの作成 - ランレベル共通初期化スクリプト -

/etc/rc.d/rc.localファイルを作成します。 このファイルは、各ランレベル別初期化スクリプト(/etc/rc.d/rc)の後に呼び出される初期化スクリプトです

  
/etc/inittab の記述により initプロセスから呼び出されます。

cat > /etc/rc.d/rc.local << "EOF"
. /etc/sysconfig/rc
. ${RCFUNCTIONS}

EOF
chmod 0755 /etc/rc.d/rc.local
ln -vsf rc.d/rc.local /etc/

 

/etc/rc.d/init.d/haltファイルの作成 - システム停止スクリプト -

/etc/rc.d/init.d/haltファイルを作成します。 このファイルは、システムを停止するスクリプトです

  
/etc/rc.d/rcファイルから呼び出されます。

cat > /etc/rc.d/init.d/halt << "EOF"
# chkconfig: 0 99 99
# description: Execute The Halt Command.

. /etc/sysconfig/rc
. ${RCFUNCTIONS}

case "${1}" in
  start)
    halt -d -f -i -p
    ;;
  *)
    exit 1
    ;;
esac
EOF
chmod 0755 /etc/rc.d/init.d/halt
ln -vsf ../init.d/halt /etc/rc.d/rc0.d/S99halt
ln -vsf ../init.d/halt /etc/rc.d/rc1.d/K99halt
ln -vsf ../init.d/halt /etc/rc.d/rc2.d/K99halt
ln -vsf ../init.d/halt /etc/rc.d/rc3.d/K99halt
ln -vsf ../init.d/halt /etc/rc.d/rc4.d/K99halt
ln -vsf ../init.d/halt /etc/rc.d/rc5.d/K99halt
ln -vsf ../init.d/halt /etc/rc.d/rc6.d/K99halt

 

/etc/rc.d/init.d/rebootファイルの作成 - システム再起動スクリプト -

/etc/rc.d/init.d/rebootファイルを作成します。 このファイルは、システムを再起動するスクリプトです

  
/etc/rc.d/rcファイルから呼び出されます。

cat > /etc/rc.d/init.d/reboot << "EOF"
# chkconfig: 6 99 99
# description: Execute The Reboot Command.

. /etc/sysconfig/rc
. ${RCFUNCTIONS}

case "${1}" in
  start)
    reboot -d -f -i
    ;;
  *)
    exit 1
    ;;
esac
EOF
chmod 0755 /etc/rc.d/init.d/reboot
ln -vsf ../init.d/reboot /etc/rc.d/rc0.d/K99reboot
ln -vsf ../init.d/reboot /etc/rc.d/rc1.d/K99reboot
ln -vsf ../init.d/reboot /etc/rc.d/rc2.d/K99reboot
ln -vsf ../init.d/reboot /etc/rc.d/rc3.d/K99reboot
ln -vsf ../init.d/reboot /etc/rc.d/rc4.d/K99reboot
ln -vsf ../init.d/reboot /etc/rc.d/rc5.d/K99reboot
ln -vsf ../init.d/reboot /etc/rc.d/rc6.d/S99reboot

 

/etc/rc.d/init.d/sysklogdファイルの作成 - システムロギング -

/etc/rc.d/init.d/sysklogdファイルを作成します。 このファイルは、システムログデーモンとカーネルメッセージデーモンを起動 / 停止するスクリプトです

  
/etc/rc.d/rcファイルから呼び出されます。

cat > /etc/rc.d/init.d/sysklogd << "EOF"
# chkconfig: 2345 10 90
# description: Start/Stop System And Kernel Logger.

. /etc/sysconfig/rc
. ${RCFUNCTIONS}

case "${1}" in
  start)
    /sbin/syslogd -m 0
    /sbin/klogd -c 1
    ;;
  stop)
    killall -s KILL syslogd
    killall -s KILL klogd
    ;;
  restart)
    $0 stop
    sleep 1
    $0 start
    ;;
  *)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
    ;;
esac
EOF
chmod 0755 /etc/rc.d/init.d/sysklogd
ln -vsf ../init.d/sysklogd /etc/rc.d/rc0.d/K90sysklogd
ln -vsf ../init.d/sysklogd /etc/rc.d/rc1.d/K90sysklogd
ln -vsf ../init.d/sysklogd /etc/rc.d/rc2.d/S10sysklogd
ln -vsf ../init.d/sysklogd /etc/rc.d/rc3.d/S10sysklogd
ln -vsf ../init.d/sysklogd /etc/rc.d/rc4.d/S10sysklogd
ln -vsf ../init.d/sysklogd /etc/rc.d/rc4.d/S10sysklogd
ln -vsf ../init.d/sysklogd /etc/rc.d/rc6.d/K90sysklogd

 

/etc/rc.d/init.d/udevファイルの作成 - デバイス管理 -

/etc/rc.d/init.d/udevファイルを作成します。 このファイルは、デバイスを管理するデーモンを起動 / 停止するスクリプトです

  
/etc/rc.d/rcファイルから呼び出されます。

cat > /etc/rc.d/init.d/udev << "EOF"
# chkconfig: 12345 20 80
# description: Save And Restore Random Seed Between Restarts.

. /etc/sysconfig/rc
. ${RCFUNCTIONS}

case "${1}" in
  start)
    /sbin/udevd --daemon

    /sbin/udevadm trigger --action=add    --type=subsystems
    /sbin/udevadm trigger --action=add    --type=devices
    /sbin/udevadm trigger --action=change --type=devices

    sleep 1
    ;;
  stop)
    ;;
  *)
    echo "Usage: $0 {start}"
    exit 1
    ;;
esac
EOF
chmod 0755 /etc/rc.d/init.d/udev
ln -vsf ../init.d/udev /etc/rc.d/rc0.d/K80udev
ln -vsf ../init.d/udev /etc/rc.d/rc1.d/S20udev
ln -vsf ../init.d/udev /etc/rc.d/rc2.d/S20udev
ln -vsf ../init.d/udev /etc/rc.d/rc3.d/S20udev
ln -vsf ../init.d/udev /etc/rc.d/rc4.d/S20udev
ln -vsf ../init.d/udev /etc/rc.d/rc5.d/S20udev
ln -vsf ../init.d/udev /etc/rc.d/rc6.d/K80udev

 

/etc/rc.d/init.d/randomファイルの作成 - 乱数生成 -

/etc/rc.d/init.d/randomファイルを作成します。 このファイルは、乱数生成に関連するデバイスファイルを初期化するスクリプトです

  
/etc/rc.d/rcファイルから呼び出されます。

cat > /etc/rc.d/init.d/random << "EOF"
# chkconfig: 12345 20 80
# description: Save And Restore Random Seed Between Restarts.

. /etc/sysconfig/rc
. ${RCFUNCTIONS}

case "${1}" in
  start)
    if [ -f /var/tmp/randomseed ] ; then
      cat /var/tmp/randomseed > /dev/urandom
    fi

    dd if=/dev/urandom of=/var/tmp/randomseed count=1 > /dev/null 2>&1
    ;;
  stop)
    dd if=/dev/urandom of=/var/tmp/randomseed count=1 > /dev/null 2>&1
    ;;
  *)
    echo "Usage: $0 {start|stop}"
    exit 1
    ;;
esac
EOF
chmod 0755 /etc/rc.d/init.d/random
ln -vsf ../init.d/random /etc/rc.d/rc0.d/K80random
ln -vsf ../init.d/random /etc/rc.d/rc1.d/S20random
ln -vsf ../init.d/random /etc/rc.d/rc2.d/S20random
ln -vsf ../init.d/random /etc/rc.d/rc3.d/S20random
ln -vsf ../init.d/random /etc/rc.d/rc4.d/S20random
ln -vsf ../init.d/random /etc/rc.d/rc5.d/S20random
ln -vsf ../init.d/random /etc/rc.d/rc6.d/K80random

 

インストールリストの生成

最後に、インストールリストを生成します。


/sources/genpostlist.sh > /dev/null 2>&1
/sources/gendifflist.sh systembootfiles

 

シェル設定ファイルの作成

続いて、シェル設定ファイルを作成します。 シェルが起動された時に読み込まれます

ビルド・インストール前リストの生成

最初に、ビルド・インストール前リストを生成します。


/sources/genprevlist.sh > /dev/null 2>&1

 

/etc/profileファイルの作成 - ログイン時の初期化処理 -

/etc/profileファイルを作成します。 ログインシェルが Bash の場合にログイン時に読み込まれます


cat > /etc/profile << "EOF"
export PATH=/bin:/usr/bin

if [ $EUID -eq 0 ] ; then
  export PATH=$PATH:/sbin:/usr/sbin
fi

if [ -d /etc/profile.d ] ; then
  for script in /etc/profile.d/*.sh ; do
    if [ -x $script ] ; then
      . $script
    fi
  done
fi

if [ "@""$SKIPPS1" = "@" ] ; then
    PS1='[\u@\h \w]\$ '
fi
EOF

 

/etc/profile.dディレクトリの作成

/etc/profile.dディレクトリを作成します。 このディレクトリに置いたスクリプトは、/etc/profile によって探し出され、実行されます


mkdir -vp /etc/profile.d

 

/etc/profile.d/readline.shファイルの作成 - Readline -

/etc/profile.d/readline.shファイルを作成します。 Readlineライブラリのコマンドライン入力時に/etc/inputrcファイルが参照されるようにするスクリプトです


cat > /etc/profile.d/readline.sh << "EOF"
if [ "@""$INPUTRC" = "@" ] ; then
  export INPUTRC=/etc/inputrc
fi

if [ -f "$HOME/.inputrc" ] ; then
  export INPUTRC=$HOME/.inputrc
fi
EOF
chmod 0755 /etc/profile.d/readline.sh

 

/etc/profile.d/i18n.shファイルの作成 - 国際化 -

/etc/profile.d/i18n.shファイルを作成します。 環境変数 LANG を日本語UTF-8に設定するスクリプトです


cat > /etc/profile.d/i18n.sh << "EOF"
export LANG="ja_JP.UTF-8"
EOF
chmod 0755 /etc/profile.d/i18n.sh

 

/etc/bashrcファイルの作成 - Bash -

/etc/bashrcファイルを作成します。 Bash の起動時に読み込まれます


cat > /etc/bashrc << "EOF"
alias ll='ls -l'
EOF

 

/etc/skel/.bash_profileファイルの作成 - Bash -

/etc/skel/.bash_profileファイルを作成します。 このファイルは、ユーザを追加した際にユーザのホームディレクトリに .bash_profile という名称でコピーされ、ログインシェルが Bash の場合にログイン時に読み込まれます


cat > /etc/skel/.bash_profile << "EOF"
if [ -f "$HOME/.bashrc" ] ; then
  . $HOME/.bashrc
fi
EOF

 

/etc/skel/.bashrcファイルの作成 - Bash -

/etc/skel/.bashrcファイルを作成します。 このファイルは、ユーザを追加した際にユーザのホームディレクトリに .bashrc という名称でコピーされ、Bash の起動時に読み込まれます


cat > /etc/skel/.bashrc << "EOF"
if [ -f "$HOME/.bash_aliases" ] ; then
  . $HOME/.bash_aliases
fi
EOF

 

/etc/skel/.bash_logoutファイルの作成 - Bash -

/etc/skel/.bash_logoutファイルを作成します。 このファイルは、ユーザを追加した際にユーザのホームディレクトリに .bash_logout という名称でコピーされ、ログインシェルが Bash の場合にログアウト時に読み込まれます


cat > /etc/skel/.bash_logout << "EOF"
EOF

 

/etc/shellsファイルの作成 - ログインシェルの一覧 -

/etc/shellsファイルを作成します。 ログインシェルとして利用できるシェルのパスを記述します


cat > /etc/shells << "EOF"
/bin/sh
/bin/bash
EOF

 

インストールリストの生成

最後に、インストールリストを生成します。


/sources/genpostlist.sh > /dev/null 2>&1
/sources/gendifflist.sh shellrcfiles

 

root用設定ファイルの作成

rootのホームディレクトリである /root には、まだ何の設定ファイルもありません。 ここで設定ファイルを用意しておきます

ビルド・インストール前リストの生成

最初に、ビルド・インストール前リストを生成します。


/sources/genprevlist.sh > /dev/null 2>&1

 

スケルトンのコピー

雛形をコピーします。 /etc/skelの下に作成したシェル設定ファイル、およびVimの設定ファイルをコピーします


cp -va /etc/skel/.bash_profile /root/.bash_profile
cp -va /etc/skel/.bashrc       /root/.bashrc
cp -va /etc/skel/.bash_logout  /root/.bash_logout
cp -va /etc/skel/.exrc         /root/.exrc

 

インストールリストの生成

最後に、インストールリストを生成します。


/sources/genpostlist.sh > /dev/null 2>&1
/sources/gendifflist.sh rootrcfiles

 

ネットワークへの対応

最後にネットワークへの対応を行います。 システム設定ファイルおよびシステム起動ファイルの修正や追加を行います

ビルド・インストール前リストの生成

最初に、ビルド・インストール前リストを生成します。


/sources/genprevlist.sh > /dev/null 2>&1

 

/etc/sysconfig/rcファイルに追記 - システム起動の設定 -

/etc/sysconfig/rcファイルに追記します。 ネットワークデバイスの設定ファイルを置く場所を、環境変数 NETWORKDEVICES に設定します。


cat >> /etc/sysconfig/rc << "EOF"
export NETWORKDEVICES=/etc/sysconfig/networkdevices
EOF

 

/etc/sysconfig/networkファイルの作成 - ネットワーク設定 -

/etc/sysconfig/networkファイルを作成します。 ネットワークに関する設定を記述するファイルです。

  
<@ホスト名@>を任意のホスト名(例 : my1cdlinux)に置き換えてください。

cat > /etc/sysconfig/network << "EOF"
HOSTNAME=<@ホスト名@>
EOF

 

ホスト名を設定しています。

/etc/rc.d/init.d/networkファイルの作成

/etc/rc.d/init.d/networkファイルを作成します。 このファイルは、ネットワークを起動 / 停止するスクリプトです

  
/etc/rc.d/rcファイルから呼び出されます。

cat > /etc/rc.d/init.d/network << "EOF"
# chkconfig: 345 30 70
# description: Start/Stop Network Interfaces.

. /etc/sysconfig/rc
. ${RCFUNCTIONS}

case "${1}" in
  start)
    for script in ${NETWORKDEVICES}/ifconfig.* ; do
      if [ -f "${script}" ] ; then
        device=${script##*/ifconfig.}

        . ${script}

        if [ ${BOOTPROTO} = "static" ] ; then
          if [ ${ONBOOT} = "yes" ] ; then
            ip link set ${device} up

            if [ ${device} != "lo" ] ; then
              ip addr add ${ADDRESS}/${CIDRMASK} broadcast ${BROADCAST} dev ${device}
            fi
          fi
        fi

        if [ ${BOOTPROTO} = "dhcp" ] ; then
          if [ ${ONBOOT} = "yes" ] ; then
            dhcpcd -t 10 ${device} &
          fi
        fi
      fi
    done

    if [ -f /etc/sysconfig/network ] ; then
      . /etc/sysconfig/network

      hostname ${HOSTNAME}

      ip route add default via ${GATEWAY}
    fi
    ;;
  stop)
    for script in ${NETWORKDEVICES}/ifconfig.* ; do
      if [ -f "${script}" ] ; then
        device=${script##*/ifconfig.}

        . ${script}

        if [ ${BOOTPROTO} = "static" ] ; then
          ip link set ${device} down

          if [ ${device} != "lo" ] ; then
            ip addr del ${ADDRESS}/${CIDRMASK} broadcast ${BROADCAST} dev ${device}
          fi
        fi

        if [ ${BOOTPROTO} = "dhcp" ] ; then
          dhcpcd -k ${device} &
        fi
      fi
    done
    ;;
  *)
    exit 1
    ;;
esac
EOF
chmod 0755 /etc/rc.d/init.d/network
ln -vsf ../init.d/network /etc/rc.d/rc0.d/K70network
ln -vsf ../init.d/network /etc/rc.d/rc1.d/K70network
ln -vsf ../init.d/network /etc/rc.d/rc2.d/K70network
ln -vsf ../init.d/network /etc/rc.d/rc3.d/S30network
ln -vsf ../init.d/network /etc/rc.d/rc4.d/S30network
ln -vsf ../init.d/network /etc/rc.d/rc5.d/S30network
ln -vsf ../init.d/network /etc/rc.d/rc6.d/K70network

 

/etc/sysconfig/networkdevicesディレクトリの作成

/etc/sysconfig/networkdevicesディレクトリを作成します。 ネットワークデバイスの設定ファイルを置くディレクトリです


mkdir -vp /etc/sysconfig/networkdevices

 

/etc/sysconfig/networkdevices/ifconfig.eth0ファイルの作成

/etc/sysconfig/networkdevices/ifconfig.eth0ファイルを作成します。 ネットワークデバイス用のインタフェースの設定を記述します


cat > /etc/sysconfig/networkdevices/ifconfig.eth0 << "EOF"
ONBOOT=yes
BOOTPROTO=dhcp
EOF

 

/etc/sysconfig/networkdevices/ifconfig.loファイルの作成

/etc/sysconfig/networkdevices/ifconfig.loファイルを作成します。 ローカルループバック用のインタフェースの設定を記述します


cat > /etc/sysconfig/networkdevices/ifconfig.lo << "EOF"
ONBOOT=yes
BOOTPROTO=static
ADDRESS=127.0.0.1
CIDRMASK=255.0.0.0
EOF

 

インストールリストの生成

最後に、インストールリストを生成します。


/sources/genpostlist.sh > /dev/null 2>&1
/sources/gendifflist.sh networkconfigfiles

 
  

後始末

チェンジルートを終了し、不要ファイルを削除します。

チェンジルートの終了

チェンジルートから抜けます。


exit

 

不要ファイルの削除

続いて、不要ファイルを削除します。


cd $MYLINUX/tmp
rm -fr * .[a-zA-Z0-9]*
cd $MYLINUX/var/log
mv btmp    $MYLINUX/tmp/
mv wtmp    $MYLINUX/tmp/
mv lastlog $MYLINUX/tmp/
rm -fr * .[a-zA-Z0-9]*
mv $MYLINUX/tmp/btmp    .
mv $MYLINUX/tmp/wtmp    .
mv $MYLINUX/tmp/lastlog .

 
  
$MYLINUX/tmp以下の全てのファイル、および、$MYLINUX/var/log以下の btmp, wtmp, lastlog 以外のファイルを削除しています。
  

バックアップ

1CD Linux用のパーティションをバックアップしておきます。


cd $MYLINUX
tar cvfj ./backups/mylinux.backup-08.tar.bz2 . --exclude=backups --exclude=sources --exclude=lost+found

 

各種設定ファイル作成後のバックアップです。

 
メニュー