2022年8月、ホームページを全面リニューアルしました! 情報を分かりやすくお伝えできるサイト作りを目指してまいります。

Linuxの初期化プロセスとランレベル!

ここでは、Linuxの電源投入からログインプロンプトを表示するまでいったい何をしているか(初期化プロセス)、さらにはスーパーサーバ(inetdの役割、NISサーバ/クライアント、NFSサービスのUnix基本サービスについて修得する。


1.初期化プロセス

1.1 initと/etc/inittab

1) Linuxのブートプロセス

電源ON
 ↓
IPL起動
 ↓
カーネルをメモリに読み込み実行(LILOが行う)
 ↓
デバイスドライバを通じてデバイスを次々に初期化
 ↓
ルートファイルシステムをマウント→initプログラム実行

2) initは全てのプロセスの「親」
initは、ユーザーがシステムを使用できる状態になるよう様々な準備を行う。
initプログラムの動作は、/etc/inittabで制御可能。

3) プロセスの証拠の確認「pstree」コマンド
initのプロセスを確認するには、以下を実行してみよう。

$pstree

・ 
initのツリー状のプロセスリストを表示

4) /etc/rc.d/init.dディレクトリのサービスの説明 
Linuxのシステム初期化スクリプトには、amd,apmd,arpwatch・・・・等がある。

1.2 /etc/inittabとシステム状態

1) もっとも重要なスクリプト「rc.sysinit」
sysinitスクリプトは以下の機能を実行する。

$PATH変数の初期値の設定
  ↓
ネットワークの設定
  ↓
仮想メモリーのスワップを開始
  ↓
システムのホスト名を設定
  ↓
rootファイルシステムが修復可能かをチェック
  ↓
rootファイルシステムの割り当てをチェック
  ↓
rootファイルシステムのユーザーとグループ割り当てを有効にする
  ↓
rootファイルシステムの読み書きを再マウント
  ↓
マウントされたファイルシステムテーブルの/etc/mtabをクリア
  ↓
rootファイルシステムをmtabへ入れる
  ↓
モジュールをロードするためにシステムを準備
  ↓
モジュールの依存関係を検出
  ↓
ファイルシステムが修復可能かチェック
  ↓
他のファイルシステムを全てマウント
  ↓
/etcディレクトリ内のファイルをいくつか消去
  ↓
UUCPロックファイルを削除
  ↓
古くなったサブシステムファイルを削除
  ↓
古くなったpidファイルを削除
  ↓
システムクロックの設定
  ↓
スワップを有効にする
  ↓
シリアルポートの初期化モジュールのロード
 

2) rc.localスクリプトの役割
initはrc.sysinitを実行したあとで、rc.localを実行する。 rc.localは、一般的にネットワークサービスをコントロールするために使用される。

3) 起動時のランレベルの変更

/etc/inittabファイルを書き換えることで起動時のランレベルを変更できる。

id:3:initdefault: ← 赤の数値を変更する。

1.3 Linuxの動作モードを表すラン・レベル・動作モード(initプログラムによる初期化プロセスを理解するために)

1) ランレベル0(/etc/rc.d/rc0.d) 
■全てのプロセスを停止する
■仮想メモリファイルのスワップをオフにする
■スワップ領域とマウントされたファイルシステムをアンマウントする

2) ランレベル1(/etc/rc.d/rc1.d)
■慣例的にシステム管理者がソフトウェアのメンテナンスを実行するときに使用するシングルユーザーモード、すなわち管理者モードである。 
■シングルユーザモードで立ち上げるにはLILOのブート画面で、

 boot:linux1

3) ランレベル2(/etc/rc.d/rc2.d)
■マルチユーザーモードである。ネットワークは使用できるが、NFSは使用できない。

4) ランレベル3(/etc/rc.d/rc3.d)
■Xとディスプレイマネージャを直接ブートしてログインするモードである。 

5) ランレベル4(/etc/rc.d/rc4.d)
このディレクトリは、空になっている。他のUnixのように、独自のランレベルを定義したい場合は、ここにプロセスの開始と停止を指示する適切なリンクを追加できる。 

6) ランレベル5(/etc/rc.d/rc5.d)
■ 
Linuxディフォルトのランレベルである。多数のネットワークサービスがデフォルトで利用できる。

7) ランレベル6(/etc/rc.d/rc6.d)
■ 
リブートのランレベルである。

1.4 Linuxシステムのシャットダウン

1) shutdown
■システムを終了させよう!

#halt もしくは shutdown -h now

2) haltとreboot
■システムをリセットしてみよう!

#reboot もしくは shutdown -r now

1.5 恐ろしいシステムクラッシュ

1) 望ましいバックアッププランや正しいバックアップ
■緊急用起動ディスク・重要なファイルのコピーを用意しておく必要がある。 
■rootとしての利用
rootとしてLinuxを使用すべきではない。

#rm -rf /*  ←危険!全てのシステムファイルが消えてしまう!!   

2) 起動ディスクの作成 起動ディスクを予め作成しておくのがベスト! 
■Linuxをインストールしたあとに起動ディスクを作る方法

#uname -r

2.2.14-5.0

リリース番号の確認

#mkbootdisk –device /dev/fd0 2.2.14-5.0

以下、メッセージに従って進める

3) とても便利なファイルツール

デバイスの診断と修復

# e2fsck -p /dev/hda3

デバイスの不良ブロックを探す

#badblocks
注:-wスイッチは絶対に付けないこと!パーティションデータを壊してしまう!

4) しまった、システムが起動しない!!
緊急用起動ディスクは必ず作成しておく。 

5) システムを復旧する方法 

# mount /mnt/cdrom

CD-ROMをマウントしておく

#dd if=/mnt/cdrom/images/rescue.img of=/dev/fd0 bs=1440k

空フロッピーを挿入して、復旧ディスクを作成する

boot:rescue ← rescueと入力!

起動ディスクからブートする。あとは、メッセージに従って復旧ディスクを挿入する。


2.NISはYellowPages?(ネットワークのディレックトリサービス)

2.1 NISって何?

NIS(Network Infomation Service)は、ネットワーク上でパスワードやグループファイルを共有するために使われる。

1) NISとは
頻繁に更新を必要とする設定ファイル/etc/passwdと/etc/groupの格納されるマスターサーバをセットアップし、このサーバに対するクライアントとしてネットワーク上の各マシンを設定できるようにする。クライアントが/etc/passwdファイルからのエントリを必要とする場合は、必ずNISサーバに紹介する。

2) NISドメイン
NISサーバとクライアントは、互いに通信するため同じNISドメイン内になければならない。NISドメインはDNSドメインとは違うが、同じ名前を使うことが出来る。

3) NISサーバの種類
NISマスターサーバは、事実を保持する。DBMファイルを作るためのテキストファイルを保持し、データベースファイルへの変更は全てこれらのファイルに反映しなければならない。NISスレーブサーバは、NISマスターサーバの負荷を減らし、補完的に機能させる目的で設計されている。サーバ上のファイルが更新されると、サーバプッシュが始まり、スレーブNISサーバは更新されたDBMファイルのコピーを取得する。

4) NISソフトのインストール NISソフトのインストール方法

# cd /mnt/cdrom/RedHat/RPMS

# rpm -ivh yp-tools-2.4-1.i386.rpm

# rpm -ivh ypbind-3.3-28.i386.rpm 

# rpm -ivh ypserv-1.3.9-3.i386.rpm

2.2 NISマスターサーバの設定

1) マスターサーバの設定(ドメイン名は/etc/hostsに記載する)

# domainname hoge.hogehoge.com

NISドメイン名を決める。

ドメイン名は、区別するためにDNSドメイン名と違うものにする。 

# vi /etc/sysconfig/network

省略 NIS_DOMAIN=hoge.hogehoge.com

上記の/etc/sysconfig/networkの一行を編集する。

# vi /var/yp/Makefile

省略

PASSWD = $(YPPWDDIR)/passwd.yp

省略

# all: ・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・

all: ・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・

/var/yp/Makefileの上記の部分を編集する。(.ypを付ける)下へスクロールして#all:の部分を下へコピーしてコメントアウトする。

# /usr/lib/yp/ypinit -m

上記のコマンドを実行して、マスターサーバを初期化する。

デーモンの起動 システムデーモンを起動するため、ランレベル3に登録する。

# cd /etc/rc.d/rc3.d

# ln -s ../init.d/ypserv S60ypserv

上記の要領で、NISサーバを自動起動設定を行う。

# cd /etc/rc.d/rc3.d

# ln -s ../init.d/ypserv S61yppasswdd

上記の要領の設定で、NISクライアントからNISサーバのパスワードが変更できる。

# /etc/rc.d/init.d/ypserv start

# /etc/rc.d/init.d/yppasswdd start

上記は、手動でNISサーバデーモンを起動する場合。

2.3 NISクライアントの設定・クライアントの設定

1) NISクライアントの設定方法

# vi /etc/yp.conf

省略

domain hoge.hogehoge.com

server HOSTNAME

/etc/yp.confを編集する。
サーバのIPアドレスは/etc/hostsに記載する。 

# vi /etc/sysconfig/network

省略

NISDOMAIN=hoge.hogehoge.com

/etc/sysconfig/networkファイルを編集する。
NISドメインは/etc/yp.confに設定した名前を記入する。

2) クライアントの検査

NISクライアントを開始させるためには、システムを再起動する必要はない。

# domainname

hoge.hogehoge.com

#

クライアントの検査をする。

# /etc/rc.d/init.d/ypbind start

NISクライアントを起動する。

# ypcat passwd

正しく設定されていれば、/etc/passwd.ypファイルの内容が表示される。

3) NISセカンダリサーバの設定

マシンをNISセカンダリサーバをして設定する場合は、まずそのマシンをNISクライアントとして設定する。

# /usr/lib/ypinit -s mastwr

上記のコマンドでスレーブサーバを初期化する。
masterはNISマスターサーバのホスト名である。

2.4 NISの豆知識

1) 特定のユーザーに対してのアクセス許可を行う(/etc/passwd)

2) ネットグループ 

3) トラブルシューティング
プロセスが適切に実行されているか確認する。

# ps auxw

プロセスが適切に動いているか確認!

4) システムログを確認する

5) プロセスは実行してるが、適切に反応していない場合は、一度停止して再起動する。

6) /etc/nsswitch.confの設定が正しい事を確認する

7) デーモンを手動で起動する場合は、必ずrootとしてログインする。

以上

コメント