Linuxの起動方法
Linuxが起動すると最初に起動するものは、/sbin/initです。
Centos6の場合、upstartでの起動。
rpm -qf /sbin/init
upstart-0.6.5-12.el6.x86_64
「/sbin/init」がシステム起動時の初期スクリプトの「/etc/rc.d/rc.sysinit」を読み込む。
「/etc/rc.d/rc.sysinit」
読み込む内容
HOSTNAME=$(/bin/hostname)
set -m (ジョブ制御機能で、ctrl+Z等の終了を受け付ける設定。デフォルトっぽいが明示的に記載している)
ホスト名等を設定している模様。
if [ -f /etc/sysconfig/network ]; then
. /etc/sysconfig/network
ホスト名がなかったらlocalhostにしますって
if [ -z "$HOSTNAME" -o "$HOSTNAME" = "(none)" ]; then
HOSTNAME=localhost
-e test -e file file が存在するならば真となる。
ここでは存在しない場合は
-n マウントをする際,/etc/mtabに情報を書き込まない
-t ファイル・システムのタイプを指定する。指定できるファイル・システム・タイプは別表を参照
こんなファイルシステムが存在するのか・・・
if [ ! -e /proc/mounts ]; then
mount -n -t proc /proc /proc
mount -n -t sysfs /sys /sys >/dev/null 2>&1
fi
/proc以下にusbがなければ、そのままusbcoreのモジュールを読み込むと。。。
if [ ! -d /proc/bus/usb ]; then
modprobe usbcore >/dev/null 2>&1 && mount -n -t usbfs /proc/bus/usb /proc/bus/usb
else
mount -n -t usbfs /proc/bus/usb /proc/bus/usb
fi
やっと50行目くらい。
全部で600行あるのに。。。。
参考:プロのためのLinuxシステム構築運用(p.173)