ด้วยเหตุผลทางด้านประสิทธิภาพ ต้องการลงโปรแกรม 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