LPIC Level 2 備忘録 : カーネル管理 

これは資格取得の際に勉強した時の備忘録です。
Linuxのコマンドの機能の説明と自分の環境での実行結果です。
各コマンドの動作を覚えておく為に記録しました。

環境：Ubntu14.04
クリーンインストール後

ルート権限での実行コマンド(# コマンド)
はDocker上のCentOSイメージで実行

#1.1 カーネルのバージョン
###2.6以前
開発版:2.X.Y  のXが奇数のバージョン
安定版；2.X.Y　のXが偶数のバージョン

###2.6以降
開発版：2.X.Y.Z
開発版：2.X.Y -rcN　または　2.X.Y -gitN 形式

##uname：現在稼働しているカーネルのバージョンの確認
###uname -a:すべての情報(PC名、カーネルバージョン、OS名、マシンアーキテクチャ)

```
$ uname -a
Linux keigo-desktop 3.13.0-106-generic #153-Ubuntu SMP Tue Dec 6 15:44:32 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
```

###uname -r:カーネルバージョンの表示

```
$ uname -r
3.13.0-106-generic
```
または/proc/versionの閲覧でも確認可能

```
$ cat /proc/version
Linux version 3.13.0-106-generic (buildd@lcy01-30) (gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3) ) #153-Ubuntu SMP Tue Dec 6 15:44:32 UTC 2016
```

###uname -m:ハードウェアアーキテクチャの確認

```
$ uname -m
x86_64
```

あとカーネルソースのMakefileを読みにいくと
バージョン情報なんかが書かれている

```
$ head -5 /usr/src/linux-headers-3.13.0-106-generic/Makefile
VERSION = 3
PATCHLEVEL = 13
SUBLEVEL = 11
EXTRAVERSION = -ckt39
NAME = King of Alienated Frog Porn

```

#1.1.2 カーネルイメージ

boot配下のvmlinuzで始まるファイルがカーネルイメージ
/boot/vmlinuz*
カーネルをコンパイルするとカーネルイメージが作成出来る
make zImage
make bzImage
のどちらかが作成可能だが
zImageの側はメモリ制限のため大きなサイズのカーネルの作成は不可

```
$ ls /boot/vmlinuz*
/boot/vmlinuz-3.13.0-106-generic             /boot/vmlinuz-3.13.0-24-generic
/boot/vmlinuz-3.13.0-106-generic.efi.signed
```

#1.2.1カーネルモジュール

##lsmodコマンド
現在ロードされている全モジュールを一覧表示

```
$ lsmod
*モジュール名　　　　　　　　サイズ　参照回数　依存関係
Module                  Size  Used by
bnep                   19624  2 
rfcomm                 69160  0 
bluetooth             391136  10 bnep,rfcomm
binfmt_misc            17468  1 
.
.
.
hid                   106148  2 hid_generic,usbhid
e1000e                254433  0 
ahci                   34091  3 
psmouse               106692  0 
ptp                    18933  1 e1000e
libahci                32716  1 ahci
pps_core               19382  1 ptp
```

/proc/modules内も同様の情報

```
cat /proc/modules
$ cat /proc/modules
bnep 19624 2 - Live 0x0000000000000000
rfcomm 69160 0 - Live 0x0000000000000000
bluetooth 391136 10 bnep,rfcomm, Live 0x0000000000000000
.
.
.
ptp 18933 1 e1000e, Live 0x0000000000000000
libahci 32716 1 ahci, Live 0x0000000000000000
pps_core 19382 1 ptp, Live 0x0000000000000000
```

##modinfoコマンド
▼オプション
### -a ：作者と連絡先表示
```
$ modinfo -a ptp
Richard Cochran <richardcochran@gmail.com>
```
### -d　：モジュールの説明表示
```
$ modinfo -d ptp
PTP clocks support
```
### -l ：ライセンス表示
```
$ modinfo -l ptp
GPL
```

### -n オプション：モジュールファイル名表示
```
$ modinfo -n ptp
/lib/modules/3.13.0-106-generic/kernel/drivers/ptp/ptp.ko
```

オプションを省略すればこれらすべての情報を表示



##insmodコマンド
▼オプション
### -s：syslogに実行結果を出力

### --v:詳細情報の表示（この環境ではVersionが出ました）

```
$ sudo insmod --v /lib/modules/3.13.0-106-generic/kernel/fs/ufs/ufs.ko


$ modinfo ufs
filename:       /lib/modules/3.13.0-106-generic/kernel/fs/ufs/ufs.ko
license:        GPL
alias:          fs-ufs
srcversion:     FAFD1F52DABB499EF814014
depends:        
intree:         Y
vermagic:       3.13.0-106-generic SMP mod_unload modversions 
signer:         Magrathea: Glacier signing key
sig_key:        0E:C0:33:0E:60:44:45:BD:C9:B2:40:5E:70:02:33:D5:FC:1A:2D:53
```

##rmmodコマンド
▼オプション
### -a：未使用のモジュールをすべてアンロード
### -s：syslogへ出力


##modprobeコマンド

▼オプション
###-a, --all：すべてのモジュールをロードする
###-c, --showconfig：

#カーネルへのパッチ適用

##patchコマンド
``` 
patch -p1 < patch-2.6.28
bash: patch-2.6.28: No such file or directory
```
##カーネルモジュールとカーネルのインストール
make modules_install

#カーネルパラメータの設定

/proc/sys以下のパス

kernel/ctrl-alt-del

kernel/ctrl-alt-del Ctrl+ Alt + Deleteキーの動作の設定

```
$ cat /proc/sys/net/core/rmem_max
212992

$ cat /proc/sys/net/core/wmem_default
212992

$ cat /proc/sys/net/core/wmem_max
212992

$ sudo sysctl -w net.ipv4.ip_forward=0
net.ipv4.ip_forward = 0

###設定ファイルの参照
$ cat /etc/sysctl.conf

$ sysctl -a
```




#リソース管理とキャパシティプランニング

##sarコマンド
sarが使えない場合はインストール

```
$ sudo apt-get install sysstat
```

/var/log/sysstat/sa**が開けないエラーが出たら
/etc/default/sysstat内の値をtrueにしてreboot
```
/var/log/sysstat/sa17 を開けません: そのようなファイルやディレクトリはありません
Please check if data collecting is enabled in /etc/default/sysstat
```

```
# Should sadc collect system activity informations? Valid values
# are "true" and "false". Please do not put other values, they
# will be overwritten by debconf!
#ENABLED="false"
ENABLED="true"
```

これでsarコマンドが使えます。

### -Pオプション CPU情報のみ表示
```
$ sar -P ALL
Linux 3.13.0-106-generic (keigo-desktop) 	2017年02月18日 	_x86_64_	(8 CPU)

07時50分42秒       LINUX RESTART

07時55分01秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
08時05分01秒     all      1.59      0.12      0.29      0.86      0.00     97.15
08時05分01秒       0      1.78      0.00      0.25      0.14      0.00     97.83
08時05分01秒       1      2.65      0.00      0.33      0.12      0.00     96.91
08時05分01秒       2      1.35      0.00      0.24      0.06      0.00     98.35
08時05分01秒       3      2.39      0.00      0.44      0.08      0.00     97.08
08時05分01秒       4      1.93      0.44      0.28      4.11      0.00     93.24
08時05分01秒       5      0.96      0.16      0.14      0.02      0.00     98.73
08時05分01秒       6      0.93      0.00      0.47      0.32      0.00     98.28
08時05分01秒       7      0.70      0.35      0.17      2.03      0.00     96.75
.
.
.
```

### -bオプション

```
$ sar -b
Linux 3.13.0-106-generic (keigo-desktop) 	2017年02月18日 	_x86_64_	(8 CPU)

07時50分42秒       LINUX RESTART

07時55分01秒       tps      rtps      wtps   bread/s   bwrtn/s
08時05分01秒     55.25     43.24     12.02    985.77   2830.92
08時15分01秒      4.81      1.30      3.51     78.34     73.81
08時25分01秒      4.97      0.37      4.61     15.71    217.62
08時35分01秒      8.40      2.80      5.60     74.17    275.47
08時45分01秒      7.09      0.55      6.53     41.84    325.28
.
.
.
平均値:       4.55      1.88      2.66     50.81    218.46
```


### -f オプション:
```
$ sar -f
Linux 3.13.0-106-generic (keigo-desktop) 	2017年02月18日 	_x86_64_	(8 CPU)

07時50分42秒       LINUX RESTART

07時55分01秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
08時05分01秒     all      1.59      0.12      0.29      0.86      0.00     97.15
08時15分01秒     all      1.60      0.02      0.43      0.16      0.00     97.79
08時25分01秒     all      2.38      0.00      0.51      0.23      0.00     96.88
.
.
.
平均値:      all     13.65      0.04      2.05    191179.79      0.00     84.38
```
CPU
%user:
%nice:
%system:
%iowait:
%steal:
%idle:

```
$ sar -u
Linux 3.13.0-106-generic (keigo-desktop) 	2017年02月18日 	_x86_64_	(8 CPU)

07時50分42秒       LINUX RESTART

07時55分01秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
08時05分01秒     all      1.59      0.12      0.29      0.86      0.00     97.15
08時15分01秒     all      1.60      0.02      0.43      0.16      0.00     97.79
08時25分01秒     all      2.38      0.00      0.51      0.23      0.00     96.88
.
.
.
20時35分01秒     all      9.98      0.00      0.89      0.21      0.00     88.93
20時45分01秒     all      2.19      0.00      0.24      0.06      0.00     97.51
20時55分01秒     all      3.94      0.00      0.45      0.08      0.00     95.53
平均値:      all      8.46      0.02      1.18    92521.99      0.00     90.35
```

```
$ sar -r
Linux 3.13.0-106-generic (keigo-desktop) 	2017年02月18日 	_x86_64_	(8 CPU)

07時50分42秒       LINUX RESTART

07時55分01秒 kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
08時05分01秒   5484432   2622228     32.35    167272   1317940   3624608     30.17   1429460    879700        72
08時15分01秒   5031292   3075368     37.94    169000   1346676   4608204     38.36   1894396    827196       140
08時25分01秒   5001540   3105120     38.30    170944   1358244   4684868     39.00   1938496    811484      9284
.
.
.
平均値:    4283051   3823609     47.17    239334   1685801   4629996     38.54   2411249   1024303      1186
```

#vmstat コマンド
メモリ、ディスクIO、CPU,スワップ領域、user,system,idle中のプロセス使用率がチェック出来る

swpd:スワップされた領域
free:物理メモリ

```
keigo@keigo-desktop:~$ vmstat 1 10
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 4066652 271004 1846444    0    0    18    38  158  522  4  1 95  0  0
 0  0      0 4066148 271004 1846444    0    0     0     0  118  591  1  0 99  0  0
 0  0      0 4066440 271004 1846444    0    0     0   132  154  831  1  0 99  0  0
 0  0      0 4066192 271004 1846444    0    0     0     0   83  501  1  0 99  0  0
 0  0      0 4066368 271004 1846444    0    0     0     0   66  290  0  0 100  0  0
 0  0      0 4066544 271004 1846444    0    0     0     0   79  350  0  0 100  0  0
 0  0      0 4066396 271004 1846444    0    0     0     0  160  570  1  0 99  0  0
 0  0      0 4066448 271008 1846444    0    0     0   188  130  535  0  0 99  1  0
 0  0      0 4066540 271008 1846444    0    0     0     0   85  583  0  0 100  0  0
 0  0      0 4066696 271008 1846444    0    0     0     0   87  390  0  0 100  0  0
```

#freeコマンド

```
$ free
             total       used       free     shared    buffers     cached
Mem:       8106660    4441244    3665416      96340     276476    2024732
-/+ buffers/cache:    2140036    5966624
Swap:      3905532          0    3905532
```

#topコマンド
使用率topの順にプロセスを表示
PID:プロセスID
USER
PR
NI
VIRT
RES
SHR
%CPU:CPU使用率
%MEM:メモリ使用率

```
$ top

top - 21:35:12 up 13:44,  2 users,  load average: 0.06, 0.09, 0.17
Tasks: 232 total,   2 running, 230 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1.5 us,  0.2 sy,  0.0 ni, 98.0 id,  0.2 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:   8106660 total,  4439696 used,  3666964 free,   276760 buffers
KiB Swap:  3905532 total,        0 used,  3905532 free.  2024844 cached Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                             
 1258 root      20   0  382148 217388 118908 S   4.3  2.7  13:00.92 Xorg                                                                                                
 1963 keigo     20   0 1813980 364584  91476 S   3.3  4.5   6:34.06 compiz                                                                                              
 2285 keigo     20   0 2469796 1.047g 116324 S   3.0 13.5  65:06.27 firefox                                                                                             
 8767 keigo     20   0  515860  33060  22156 S   2.3  0.4   0:51.09 gnome-system-mo                                                                                     
 7385 keigo     20   0  578004  22928  13780 S   1.3  0.3   0:11.48 gnome-terminal  

```

###swaponコマンド

```
$ swapon -s
Filename				Type		Size	Used	Priority
/dev/sdc3                               partition	3905532	0	-1
```


参考サイト
[ping-t]
(http://ping-t.com/mondai3/mondais/index)

[sarコマンドでシステムの情報を取得する](http://y0m0r.hateblo.jp/entry/20130207/1360243853)