ここでは、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としてログインする。
以上
コメント