upgrade kernel บน CentOS 5.6

ด้วยเหตุผลทางด้านประสิทธิภาพ ต้องการลงโปรแกรม library หรือ driver ของอุปกรณ์บางตัว ที่ต้องใช้ kernel เวอร์ชั่นใหม่

ในบทความนี้ ขอแนะนำวิธีการ upgrade kernel บน CentOS 5.6  โดยการดาวน์โหลดไฟล์ rpm แล้วนำมาติดตั้งเองด้วยคำสั่ง rpm

คำเตือน
 – การ upgrade kernel อาจมีผลกระทบกับระบบ เช่น driver ที่ติดตั้งเอง ลองบนเครื่องทดสอบให้แน่ใจก่อนปรับปรุงจริง
 – หลัง upgrade kernel ต้องรีบู๊ตเครื่อง เพื่อให้ kernel ใหม่มีผล แนะนำให้อยู่หน้าเครื่องตอนรีบู๊ต เผื่อมีปัญหาจะได้แก้ไขได้

ใช้คำสั่ง uname -a เพื่อตรวจสอบเวอร์ชั่น kernel ที่รันอยู่

[root@cent56 ~]# uname -a
Linux cent56.example.com 2.6.18-238.el5 #1 SMP Thu Jan 13 15:51:15 EST 2011 x86_64 x86_64 x86_64 GNU/Linux

ใช้คำสั่ง rpm เพื่อดูไฟล์ rpm ของ kernel

[root@cent56 ~]# rpm -qa | grep kernel
kernel-headers-2.6.18-238.el5.x86_64
kernel-2.6.18-238.el5.x86_64
kernel-devel-2.6.18-238.el5.x86_64

สำหรับ CentOS สามารถดาวน์โหลดไฟล์ rpm มาจากเว็บ updates

เช่นเว็บ updates ของ CentOS 5.6 ในเมืองไทย สามารถดาวน์โหลดได้ที่

http://mirror1.ku.ac.th/centos/5.6/updates/x86_64/RPMS/

ตัวอย่างไฟล์ kernel ที่ต้องดาวน์โหลด เวอร์ชั่นล่าสุด ณ ตอนที่เขียนคือ 2.6.18-238.19.1

  • kernel-2.6.18-238.19.1.el5.x86_64.rpm
  • kernel-headers-2.6.18-238.19.1.el5.x86_64.rpm
  • kernel-devel-2.6.18-238.19.1.el5.x86_64.rpm

ใช้คำสั่ง rpm ด้วยออปชั่น ‘-U’ เพื่อปรับปรุง (upgrade) ไฟล์ rpm เป็นเวอร์ชั่นใหม่

[root@cent56 ~]# rpm -U kernel-2.6.18-238.19.1.el5.x86_64.rpm
[root@cent56 ~]# rpm -U kernel-headers-2.6.18-238.19.1.el5.x86_64.rpm
[root@cent56 ~]# rpm -U kernel-devel-2.6.18-238.19.1.el5.x86_64.rpm

ตรวจสอบหลังจากปรับปรุง

[root@cent56 ~]# rpm -qa | grep kernel
kernel-2.6.18-238.19.1.el5.x86_64
kernel-headers-2.6.18-238.19.1.el5.x86_64
kernel-devel-2.6.18-238.19.1.el5.x86_64

หากใช้วิธีนี้ในการ upgrade แบบ rpm นี้ จะมีการแก้ไขไฟล์ grub.conf โดยอัตโนมัติ

[root@cent56 ~]# cat /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/sda2
#          initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-238.19.1.el5)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-238.19.1.el5 ro root=LABEL=/
        initrd /initrd-2.6.18-238.19.1.el5.img

ตรวจสอบความถูกต้องของไฟล์ grub.conf  แล้วรีบู๊ตเครื่องหลังจากการ upgrade
เมื่อบู๊ตเสร็จเรียบร้อย ใช้คำสั่ง uname เพื่อตรวจสอบเวอร์ชั่น kernel

[root@cent56 ~]# uname -a
Linux cent56.example.com 2.6.18-238.19.1.el5 #1 SMP Fri Jul 15 07:31:24 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux

Leave a Reply

Your email address will not be published.