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

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

無料Linux入門マニュアル無料ダウンロード

今だけ2,200円のLinux入門PDFマニュアルが【数量限定】で無料ダウンロードできます。
Linux入門マニュアル無料ダウンロードはこちらをクリック

2013年02月20日にLinuxカーネル3.8がリリースされました。

今回のアップデートでは、
Ext4(fourth extended file system)ファイルシステムで、
inode内にファイルを埋め込む機能が追加されたことで、
ディスク容量の無駄な消費を低減し、読み込み速度の向上を図っています。

また、既に多くのディストリビューションで採用されている
次世代ファイルシステム「Btrfs(B-tree file system)」の強化も行われ、
複数のストレージデバイスに渡ってファイルシステムを利用している場合、
新たに追加されたreplace機能により、ファイルシステムをアンマウントせずとも
ストレージデバイスの置き換えが可能になっています。

さらに、現状では実験的な位置づけですが、
SSD向けファイルシステム「F2FS (Flash-Friendly File System) 」が
新たに導入されています。

この他に、ARMプロセッサのサポートが進化したのと同時に、
以前よりアナウンスされていた386プロセッサのサポートが廃止されています。

早速、CentOS6.3にLinuxカーネル3.8を導入(カーネル再構築)してみたので、その手順を紹介します。

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

1.現在のバージョンを確認します。
カーネルバージョンが2.6、CentOS6.3です。
[pakira@Tiger ~]$ su -
パスワード:
[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.8をダウンロードします。
[root@Tiger src]# wget http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.8.tar.bz2
--2013-02-22 14:13:50-- http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.8.tar.bz2
www.kernel.org をDNSに問いあわせています... 149.20.20.133, 149.20.4.69
www.kernel.org|149.20.20.133|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 84623657 (81M) [application/x-bzip2]
`linux-3.8.tar.bz2' に保存中

100%[====================================================================>] 84,623,657 202K/s 時間 7m 7s

2013-02-22 14:20:58 (193 KB/s) - `linux-3.8.tar.bz2' へ保存完了 [84623657/84623657]


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


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

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


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

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

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

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

9.インストール後の確認をします。
/bootディレクトリには、Linuxカーネル3.8がインストールされています。
[root@Tiger linux-3.8]# ls -l /boot
合計 38742
lrwxrwxrwx 1 root root 22 2月 22 16:08 2013 System.map -> /boot/System.map-3.8.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 2073645 2月 22 16:08 2013 System.map-3.8.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 2月 22 16:10 2013 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 12775412 2月 22 16:10 2013 initramfs-3.8.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 2月 22 16:08 2013 vmlinuz -> /boot/vmlinuz-3.8.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 4116000 2月 22 16:08 2013 vmlinuz-3.8.0

/lib/modulesディレクトリには、Linuxカーネル3.8のカーネルモジュールがインストールされています。
[root@Tiger linux-3.8]# 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 2月 22 16:09 2013 3.8.0

/etc/grub.confファイルには、Linuxカーネル3.8用のエントリーが追加されています。
[root@Tiger linux-3.8]# 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.8.0)
root (hd0,0)
kernel /vmlinuz-3.8.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.8.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.8]# shutdown -r now

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

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

12.CentOS(3.8.0)を選択して「Enter」キーを押下します。
linux_kernel_var_up3.8.0_01.jpg

13.カーネルバージョンが3.8.0で起動します。
linux_kernel_var_up3.8.0_02.jpg

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


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

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

Linuxカーネル3.6の時は、ext4を破壊するバグがあった為、
Linuxカーネル3.8も、しばらく様子を見るか、テスト的に運用するのが良いでしょう。
https://www.facebook.com/miyazakiandFriends2/posts/431627296898923

Linuxカーネル3.8の情報については、下記サイトが参考になります。
386プロセッササポートを廃止した「Linux 3.8」リリース
Linux 3.8「Unicycling Gorilla(一輪車に乗るゴリラ)」がリリース


無料Linux入門マニュアル無料ダウンロード

今だけ2,200円のLinux入門PDFマニュアルが【数量限定】で無料ダウンロードできます。
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)

Linux入門マニュアル無料ダウンロード