restofwaterimpのぎじゅつMemo

SIerに所属。企画から運用まで幅広くやってます。C#中心に書いてます。

【メモ】LPIC level2研修 1日目(更新中)

今日から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はクライアントとして、linuxunixを触れるか。

 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/grub.conf に設定

   設定ファイルの場所の確認

   /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はまた今度(続く)