今日からLPI Linux 認定試験のLevel2の研修を受けている。
私自身の復習のために、メモ書きを残す。
1.はじめに
LPICの試験が2012/10よりrelease 3になっている。
release2の時と差があるらしい。が、過去のバージョンの問題も出る可能性があるため、簡単に新バージョンのみとはいえない。
kernelのバージョンは2.6
2.4系の内容と困惑させる問題もあるようなので注意。
ちなみに、最新はkernel3.x系みたい(2013/1/21時点)
2.LPIC2はLPIC1と何が違うの?
詳しくはLPIのHP http://www.lpi.or.jp/lpic2/を参照
level1はクライアントとして、linuxやunixを触れるか。
level2はサーバの設定ができるか。ただし、すでにある環境を設定するという意味。
ゼロから作成するスキルはlevel 3 Coreで求められるようである。
また、level1は短絡的な問題が多い。と、いうのもこういうことならこういう回答と結構画一的に確定する。
しかし、level2は「コマンド」「コマンドを打ち込むための前提条件」「コマンドのパス」「結果」「何を使用しているか」
など、複合的に背景を知っていないと解けない問題が多いようである。
そのため、man manual 等を閲覧し、ただの暗記ではなく、理解をしないと行けないようである。
------------------------------------
では、早速、201から
1.Linux kernel version
<カーネルのバージョンを知る方法>
①unameコマンド
$ uname -a カーネルのバージョンを詳細に見せる
Linux ip-10-132-81-138 3.2.34-55.46.amzn1.x86_64 #1 SMP Tue Nov 20 10:06:15 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
$ uname -v OSのバージョンを表示
#1 SMP Tue Nov 20 10:06:15 UTC 2012
$ uname -m ハードウェアアーキテクチャ情報を載せる
x86_64
$ uname -r カーネルバージョンのみ表示
3.2.34-55.46.amzn1.x86_64
②/proc/versionを確認
$ cat /proc/version
Linux version 3.2.34-55.46.amzn1.x86_64 (mockbuild@gobi-build-31003) (gcc version 4.6.2 20111027 (Red Hat 4.6.2-2) (GCC) ) #1 SMP Tue Nov 20 10:06:15 UTC 2012
③Makefileを確認(/usr/src/kernels/バージョン/Makefile
VERSION メジャー
PATCHLEVEL パッチ
SUBLEVEL サブ
EXTRAVERSION 拡張 ← 利用ユーザがカーネルをベースに変えた時に自由に設定可能
<カーネルモジュールの依存性>
/proc/module
ここにロードされているカーネルモジュールがある
基本構成
モジュール構成 ← モジュール 依存関係を見る modprobe
lsmod(構成を見る) insmod
→ モジュール
rmmod
/lib/modules/'uname -r'/modules.dep
依存関係情報が記載されている
ここで、モジュールの設定を行う
modprobe → depmod
/etc/modprobe.confに依存性関係情報を更新する
<カーネルパラメータ>
ロード時などの設定は、modprobeで行う。(/proc/sys/kernel/modprobeで立ち上げ時に読み出している)
その時にカーネルパラメータが指定されているが、起動中も一時的に変更したい場合、カーネルパラメータの設定ができる
場所
/proc/sys
確認コマンド
#sysctl パラメータ名 → /etc/sysctl.confを参照している
cat /proc/sys/パラメータが設定されているディレクトリ
2.パッチの利用
- 一種類だけパッチを当てるとき
#patch …オプションによって、やれることが違うので、覚えること。
通常は、gzip,bzip2で圧縮されているファイルを利用する
- 複数のパッチファイルを適用するとき
#linux/scripts/patch-kernel
ただし、使用するカレントディレクトリに適用するパッチファイルを格納しておくことが前提
何もない場合、適用するパッチがないというメッセージが表示される
<カーネルの再構築>
手順
step1 カーネルソースツリーの初期化
#make mrproper・・.configファイルが削除される
step2 カーネルを設定
#make xconfig
#make menuconfig
#make oldconfig・・・カーネルバージョンアップの時に利用。前のバージョン.configファイルが有るならば、新しく追加された項目を対話形式で設定可能
#make gconfig
step3 カーネルとカーネルモジュールのコンパイル
#make
step4 カーネルのインストール
#make modules_install・・・/lib/modules/カーネルバージョンディレクトリにインストール
step5 カーネルイメージの作成
#installkernel カーネルバージョン xxx System.map
step6 初期RAMディスクの作成
#mkinitrd
step7 ブートローダの設定変更
設定ファイルの場所の確認
/boot/grub/menu.lst
/boot/grub/grub.conf のどちらかが本体で、どちらかがsymbolic linkが貼ってある
/etc/grub.confは/boot/grub.confをリンク先として見ている
3.システムの起動
<システム起動の流れ>
BIOSの起動 → MBRのロード → ブートローダの起動 → カーネル → initプロセス起動(/sbin/init)
↓
カーネルリングバッファを出力(起動時のログ)
↓
dmesgで確認可能
/var/log/dmseg /var/log/messages
<initの設定>
/etc/inittabに設定されている
id : ランレベル : アクション指示子 : コマンド
※順番を覚えておく
/etc/init.d/サービス名
↑ symbolic link
/etc/rcランレベル.d/S[K]99+サービス名
<サービスの自動起動設定>
chkconfig (RedHat系)
update-rc.d(Debian系)
・・・・と、ブートローダと初期RAMはまた今度(続く)