2012年2月22日水曜日

"SUZ-LAB CentOS AMI"を6.0から6.2に(カーネルも)アップデート

スズキです。

以前、カーネルのアップデート(2.6.32-71.29.1 → 2.6.32-220.4.2)
を試したのですがブートできなくなってしまって、
それ以降、ずっとできないものと思っていました…

しかし出来ました!
カーネルをアップデートすると、アタッチしているEBSのデバイスファイルが
"/dev/xvda1"から"/dev/xvde1"に変更されていたのが問題でした!

ということでアップデート方法です。

まずは、アップデート前のカーネルやOSのバージョンです。
# uname -a
Linux ip-10-156-21-210 2.6.32-71.29.1.el6.i686 #1 SMP Mon Jun 27 18:07:00 BST 2011 i686 i686 i386 GNU/Linux
# cat /etc/redhat-release 
CentOS Linux release 6.0 (Final)

今までは、上記のことから"yum"のアップデートからカーネル類を外していたのですが、
今回は"yum.conf"から、その"exclude=kernel*"の記述を外し、アップデートします。
# cd /etc/
# diff yum.conf.old yum.conf
13d12
< exclude=kernel*
# yum -y update
新しいカーネルがインストールされていることがわかります。
# ls -1 /boot/
System.map-2.6.32-220.4.2.el6.i686
System.map-2.6.32-71.29.1.el6.i686
config-2.6.32-220.4.2.el6.i686
config-2.6.32-71.29.1.el6.i686
efi
grub
initramfs-2.6.32-220.4.2.el6.i686.img
initramfs-2.6.32-71.29.1.el6.i686.img
symvers-2.6.32-220.4.2.el6.i686.gz
symvers-2.6.32-71.29.1.el6.i686.gz
vmlinuz-2.6.32-220.4.2.el6.i686
vmlinuz-2.6.32-71.29.1.el6.i686
この状態でリブート後、カーネルとOSのバージョンを確認すると、 OSは"6.2"になっていますが、カーネルはまだ"2.6.32-71.29.1"のままです。
# uname -a
Linux ip-10-156-21-210 2.6.32-71.29.1.el6.i686 #1 SMP Mon Jun 27 18:07:00 BST 2011 i686 i686 i386 GNU/Linux
# cat /etc/redhat-release
CentOS release 6.2 (Final)
カーネルのバージョンアップを行うには、"/boot/grub/menu.lst"を 新しいカーネルのものに変更する必要があります。
# cd /boot/grub/
# diff menu.lst.old menu.lst
6,7c6,7
<         kernel /boot/vmlinuz-2.6.32-71.29.1.el6.i686 ro root=/dev/xvda1
<         initrd /boot/initramfs-2.6.32-71.29.1.el6.i686.img
---
>         kernel /boot/vmlinuz-2.6.32-220.4.2.el6.i686 ro root=/dev/xvde1
>         initrd /boot/initramfs-2.6.32-220.4.2.el6.i686.img
また最初に述べましたが、ルートディスクのデバイスファイルも "/dev/xvda1"から"/dev/xvde1"に変更する必要があります! 当然、"/etc/fstab"のルートデバイスの記述も同様に変更します。
# cd /etc/
# diff fstab.old fstab
1c1
< /dev/xvda1      /        ext4   defaults       1 1
---
> /dev/xvde1      /        ext4   defaults       1 1
この状態でリブート後、カーネルとOSのバージョンを確認すると、 無事カーネルもアップデートされ、最新の"CentOS 6.2"になっていることがわかります。
# uname -a
Linux ip-10-153-59-73 2.6.32-220.4.2.el6.i686 #1 SMP Tue Feb 14 00:24:28 GMT 2012 i686 i686 i386 GNU/Linux
# cat /etc/redhat-release 
CentOS release 6.2 (Final)
最後に、もう利用していない古いカーネルを削除します。
# yum erase kernel-2.6.32-71.29.1.el6
SUZ-LAB謹製 CentOS AMI 6.2 Comming Soon! -------- http://www.suz-lab.com

0 コメント: