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

HOMEリナックスマスター.JP 公式ブログLinux情報・技術・セキュリティ > CentOS6.3をLinuxカーネル3.6にアップデートしてみました(カーネル再構築)
Linux入門マニュアルを無料プレゼントしています。

ダウンロードは今すぐこちらをクリック

10月1日にリリースされたばかりのLinuxカーネル3.6を
CentOS6.3に導入してみたので、その時の手順を紹介します。(カーネル再構築)

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

1.現在のバージョンを確認します。
カーネルバージョンが2.6、CentOS6.3です。
[root@Tiger ~]# cd /usr/local/src
[root@Tiger src]# uname -r
2.6.32-279.el6.i686
[root@Tiger src]# cat /etc/redhat-release
CentOS release 6.3 (Final)


2.Linuxカーネル3.6をダウンロードします。
[root@Tiger src]# wget http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.6.tar.bz2
--2012-10-03 13:02:15-- http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.6.tar.bz2
www.kernel.org をDNSに問いあわせています... 149.20.4.69, 149.20.20.133
www.kernel.org|149.20.4.69|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 82296001 (78M) [application/x-bzip2]
`linux-3.6.tar.bz2' に保存中

100%[====================================================================>] 82,296,001 1.49M/s 時間 80s

2012-10-03 13:03:35 (1008 KB/s) - `linux-3.6.tar.bz2' へ保存完了 [82296001/82296001]


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

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

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

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

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

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

9.インストール後の確認をします。
/bootディレクトリには、Linuxカーネル3.6がインストールされています。
[root@Tiger linux-3.6]# ls -l /boot
合計 38295
lrwxrwxrwx 1 root root 22 10月 3 14:45 2012 System.map -> /boot/System.map-3.6.0
-rw-r--r--. 1 root root 1846041 6月 22 20:23 2012 System.map-2.6.32-279.el6.i686
-rw-r--r-- 1 root root 2018153 10月 3 14:45 2012 System.map-3.6.0
-rw-r--r--. 1 root root 106611 6月 22 20:23 2012 config-2.6.32-279.el6.i686
drwxr-xr-x. 3 root root 1024 8月 18 18:30 2012 efi
drwxr-xr-x. 2 root root 1024 10月 3 14:46 2012 grub
-rw-r--r--. 1 root root 14695111 8月 18 18:34 2012 initramfs-2.6.32-279.el6.i686.img
-rw-r--r-- 1 root root 12496007 10月 3 14:46 2012 initramfs-3.6.0.img
drwx------. 2 root root 12288 8月 18 18:17 2012 lost+found
-rw-r--r--. 1 root root 175903 6月 22 20:24 2012 symvers-2.6.32-279.el6.i686.gz
lrwxrwxrwx 1 root root 19 10月 3 14:45 2012 vmlinuz -> /boot/vmlinuz-3.6.0
-rwxr-xr-x. 1 root root 3856608 6月 22 20:23 2012 vmlinuz-2.6.32-279.el6.i686
-rw-r--r-- 1 root root 3992928 10月 3 14:45 2012 vmlinuz-3.6.0

/lib/modulesディレクトリには、Linuxカーネル3.6のカーネルモジュールがインストールされています。
[root@Tiger linux-3.6]# ls -l /lib/modules
合計 8
drwxr-xr-x. 7 root root 4096 8月 18 18:33 2012 2.6.32-279.el6.i686
drwxr-xr-x 3 root root 4096 10月 3 14:46 2012 3.6.0

/etc/grub.confファイルには、Linuxカーネル3.6用のエントリーが追加されています。
[root@Tiger linux-3.6]# 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.6.0)
root (hd0,0)
kernel /vmlinuz-3.6.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.6.0.img
title CentOS (2.6.32-279.el6.i686)
root (hd0,0)
kernel /vmlinuz-2.6.32-279.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-279.el6.i686.img

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

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

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

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

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

14.ログイン後、再度バージョンを確認します。
[root@Tiger ~]# uname -r
3.6.0
[root@Tiger ~]# cat /etc/redhat-release
CentOS release 6.3 (Final)


今後、デフォルト起動をカーネル3.6.0にしたい場合には、/etc/grub.confファイルを編集します。
編集箇所は、「default=1」の箇所を「default=0」に変更して保存します。
[root@Tiger linux-3.6]# 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.6.0)
root (hd0,0)
kernel /vmlinuz-3.6.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.6.0.img
title CentOS (2.6.32-279.el6.i686)
root (hd0,0)
kernel /vmlinuz-2.6.32-279.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-279.el6.i686.img


今回、参考にさせて頂いたサイト様
nkjmkzk.net様



P.S
CentOS6.3をLinuxカーネル3.6にアップデートしてみました(カーネル再構築)のもっと高い技術を身につけたいならこちら


<<関連記事>>
・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)