CentOS6.4をLinuxカーネル3.10.0にアップデートしてみました(カーネル再構築)

HOMEリナックスマスター.JP 公式ブログLinux情報・技術・セキュリティ > CentOS6.4をLinuxカーネル3.10.0にアップデートしてみました(カーネル再構築)

2013年06月30日にLinuxカーネル3.10.0がリリースされました。

今回のアップデートでは、SSDをハードディスクのキャッシュとして利用することで高速化する
「bcache」が導入されています。

また、タイマーを使わずにマルチタスクを実現する「Timer free multitasking」を導入したことで、
CPUの消費電力削減や処理パフォーマンスの向上といった効果が期待できます。

早速、CentOS6.4にLinuxカーネル3.10.0を導入(カーネル再構築)してみたので、
その手順を紹介します。
(基本的に本サイトで過去行なってきたカーネル再構築と同じ手順で出来ます。)

※本ページで紹介しているアップデートは自己責任でお願いいたします。

1.現在のバージョンを確認します。
カーネルバージョンが2.6、CentOS6.4です。
[pakira@Tiger ~]$ su -
パスワード:
[root@Tiger ~]# cd /usr/local/src
[root@Tiger src]# uname -r
2.6.32-358.el6.i686
[root@Tiger src]# cat /etc/redhat-release
CentOS release 6.4 (Final)


2.Linuxカーネル3.10をダウンロードします。
[root@Tiger ~]# wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.10.tar.bz2
--2013-07-03 14:37:00-- https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.10.tar.bz2
www.kernel.org をDNSに問いあわせています... 198.145.20.140, 149.20.4.69
www.kernel.org|198.145.20.140|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 87164931 (83M) [application/x-bzip2]
`linux-3.10.tar.bz2' に保存中

100%[===========================================>] 87,164,931 26.6K/s 時間 47m 59s

2013-07-03 15:25:00 (29.6 KB/s) - `linux-3.10.tar.bz2' へ保存完了 [87164931/87164931]


3.ダウンロードしたlinux-3.10.tar.bz2ファイルを解凍、展開します。
[root@Tiger ~]# tar xvfj linux-3.10.tar.bz2
[root@Tiger ~]# cd linux-3.10


4.現在のカーネルビルド設定を引き継ぐ為、/bootディレクトリにある
 「config-2.6.32-358.el6.i686」ファイルを「.config」ファイルにリネームして
  カレントディレクトリ(/usr/local/src/linux-3.10)にコピーします。

[root@Tiger linux-3.10]# cp /boot/config-2.6.32-358.el6.i686 ./.config


5.4でコピーした設定ファイルを用いて新しい設定ファイルを作成します。
[root@Tiger linux-3.10]# make oldconfig
この後、古い設定ファイルと新しいKernelとの機能差の部分について対話的に設定する
作業になりますが、非常に多くのステップがあるため、「Enter」キーを押下し続けて
デフォルト設定にします。

6.コンパイルを行います。
[root@Tiger linux-3.10]# make

7.Kernel Moduleをインストールします。
[root@Tiger linux-3.10]# make modules_install

8.Kernelをインストールします。
[root@Tiger linux-3.10]# make install

今回、make installで、「ERROR: modinfo: could not find module vmware_balloon
というエラーが発生しました。
このエラーがvmware関連のものということと、カーネル自体はインストール出来ているようなので、
今回はこのまま先に進みます。

9.インストール後の確認をします。
/bootディレクトリには、Linuxカーネル3.10がインストールされています。
[root@Tiger linux-3.10]# ls -l /boot
合計 32094
lrwxrwxrwx 1 root root 23 7月 3 17:34 2013 System.map -> /boot/System.map-3.10.0
-rw-r--r--. 1 root root 1898529 2月 22 07:13 2013 System.map-2.6.32-358.el6.i686
-rw-r--r-- 1 root root 2070555 7月 3 17:34 2013 System.map-3.10.0
-rw-r--r--. 1 root root 108872 2月 22 07:13 2013 config-2.6.32-358.el6.i686
drwxr-xr-x. 3 root root 1024 6月 26 19:10 2013 efi
drwxr-xr-x. 2 root root 1024 7月 3 17:35 2013 grub
-rw-r--r--. 1 root root 15040644 6月 26 19:15 2013 initramfs-2.6.32-358.el6.i686.img
-rw-r--r-- 1 root root 5526622 7月 3 17:35 2013 initramfs-3.10.0.img
drwx------. 2 root root 12288 6月 26 18:53 2013 lost+found
-rw-r--r--. 1 root root 182272 2月 22 07:14 2013 symvers-2.6.32-358.el6.i686.gz
lrwxrwxrwx 1 root root 20 7月 3 17:34 2013 vmlinuz -> /boot/vmlinuz-3.10.0
-rwxr-xr-x. 1 root root 3917440 2月 22 07:13 2013 vmlinuz-2.6.32-358.el6.i686
-rw-r--r-- 1 root root 4091584 7月 3 17:34 2013 vmlinuz-3.10.0

/lib/modulesディレクトリには、Linuxカーネル3.10のカーネルモジュールがインストールされています。
[root@Tiger linux-3.10]# ls -l /lib/modules
合計 8
drwxr-xr-x. 7 root root 4096 6月 26 19:14 2013 2.6.32-358.el6.i686
drwxr-xr-x 3 root root 4096 7月 3 17:35 2013 3.10.0

/etc/grub.confファイルには、Linuxカーネル3.10用のエントリーが追加されています。
[root@Tiger linux-3.10]# view /etc/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/mapper/vg_tiger-lv_root
# initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=1
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (3.10.0)
root (hd0,0)
kernel /vmlinuz-3.10.0 ro root=/dev/mapper/vg_tiger-lv_root rd_LVM_LV=vg_tiger/lv_swap rd_NO_LUKS rd_NO_MD rd_LVM_LV=vg_tiger/lv_root crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=jp106 LANG=ja_JP.UTF-8 rd_NO_DM rhgb quiet
initrd /initramfs-3.10.0.img

title CentOS (2.6.32-358.el6.i686)
root (hd0,0)
kernel /vmlinuz-2.6.32-358.el6.i686 ro root=/dev/mapper/vg_tiger-lv_root rd_LVM_LV=vg_tiger/lv_swap rd_NO_LUKS rd_NO_MD rd_LVM_LV=vg_tiger/lv_root crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=jp106 LANG=ja_JP.UTF-8 rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-358.el6.i686.img

10.Linuxを再起動します。
[root@Tiger linux-3.10]# shutdown -r now

デフォルトでは、カーネル2.6で起動するので、3.10.0で起動するように操作します。

11.「Press any key・・・」の画面で「ESC」キーを押下します。
centos64_3_10_0_001.jpg

12.CentOS(3.10.0)を選択して「Enter」キーを押下します。
centos64_3_10_0_002.jpg

13.カーネルバージョンが3.10.0で起動します。
centos64_3_10_0_003.jpg

14.ログイン後、再度バージョンを確認します。
[pakira@Tiger ~]$ su -
パスワード:
[root@Tiger ~]# uname -r
3.10.0
[root@Tiger ~]# cat /etc/redhat-release
CentOS release 6.4 (Final)

今後、デフォルト起動をカーネル3.10.0にしたい場合には、/etc/grub.confファイルを編集します。
編集箇所は、「default=1」の箇所を「default=0」に変更して保存します。
[root@Tiger ~]# vi /etc/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/mapper/vg_tiger-lv_root
# initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0  ←「default=0」に変更します。
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (3.10.0)
root (hd0,0)
kernel /vmlinuz-3.10.0 ro root=/dev/mapper/vg_tiger-lv_root rd_LVM_LV=vg_tiger/lv_swap rd_NO_LUKS rd_NO_MD rd_LVM_LV=vg_tiger/lv_root crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=jp106 LANG=ja_JP.UTF-8 rd_NO_DM rhgb quiet
initrd /initramfs-3.10.0.img
title CentOS (2.6.32-358.el6.i686)
root (hd0,0)
kernel /vmlinuz-2.6.32-358.el6.i686 ro root=/dev/mapper/vg_tiger-lv_root rd_LVM_LV=vg_tiger/lv_swap rd_NO_LUKS rd_NO_MD rd_LVM_LV=vg_tiger/lv_root crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=jp106 LANG=ja_JP.UTF-8 rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-358.el6.i686.img

上記の設定を行うことで、次回起動時よりLinuxカーネル3.8で起動します。

Linuxカーネル3.10の情報については、下記サイトが参考になります。
新たなSSDキャッシュ「bcache」を実験的に導入、Linuxカーネル3.10が登場
Linux 3.10 カーネル登場 ― マルチタスクと SSD キャッシングを向上



P.S
CentOS6.4をLinuxカーネル3.10.0にアップデートしてみました(カーネル再構築)など、より高度な現場のLinux技術をマスターしたいなら

詳しくはこちらをクリック

P.P.S
Linuxインストールマニュアルのダウンロードはこちら


<<関連記事>>
・RHEL7/CentOS7が重要カーネルセキュリティアップデートをリリース【CVE-2019-14821/CVE-2019-15239】
・PostgreSQL 12が公開と2019年10月データベース人気ランキング
・CentOS8とCentOS7の違い、変更点のまとめ
・Apacheに脆弱性(CVE-2017-9798)、メモリから情報漏えいの恐れ
・Apache Tomcat の複数の脆弱性に対するアップデート(CVE-2017-7674、CVE-2017-7675)