ค้นหาเว็บไซต์

วิธีติดตั้งหรืออัปเกรดเป็น Kernel 5.0 ใน CentOS 7


แม้ว่าบางคนจะใช้คำว่า Linux เพื่อแสดงถึงระบบปฏิบัติการโดยรวม แต่สิ่งสำคัญที่ควรทราบคือ พูดอย่างเคร่งครัด Linux เป็นเพียงเคอร์เนลเท่านั้น ในทางกลับกัน การแจกจ่ายเป็นระบบที่มีฟังก์ชันเต็มรูปแบบซึ่งสร้างขึ้นบนเคอร์เนล พร้อมด้วยเครื่องมือและไลบรารีแอปพลิเคชันที่หลากหลาย

ในระหว่างการดำเนินการปกติ เคอร์เนลมีหน้าที่รับผิดชอบในการดำเนินการที่สำคัญสองประการ:

  1. ทำหน้าที่เป็นส่วนต่อประสานระหว่างฮาร์ดแวร์และซอฟต์แวร์ที่ทำงานบนระบบ
  2. การจัดการทรัพยากรระบบอย่างมีประสิทธิภาพมากที่สุด

เมื่อต้องการทำเช่นนี้ เคอร์เนลจะสื่อสารกับฮาร์ดแวร์ผ่านไดรเวอร์ที่อยู่ภายในหรือไดรเวอร์ที่สามารถติดตั้งเป็นโมดูลได้ในภายหลัง

ตัวอย่างเช่น เมื่อแอปพลิเคชันที่ทำงานบนเครื่องของคุณต้องการเชื่อมต่อกับเครือข่ายไร้สาย แอปพลิเคชันจะส่งคำขอนั้นไปยังเคอร์เนล ซึ่งในทางกลับกันจะใช้ไดรเวอร์ที่เหมาะสมเพื่อเชื่อมต่อกับเครือข่าย

แนะนำให้อ่าน: วิธีอัปเกรดเคอร์เนลใน Ubuntu

เมื่อมีอุปกรณ์และเทคโนโลยีใหม่ๆ ออกมาเป็นระยะๆ สิ่งสำคัญคือต้องทำให้เคอร์เนลของเราทันสมัยอยู่เสมอหากเราต้องการใช้ประโยชน์สูงสุดจากอุปกรณ์เหล่านั้น นอกจากนี้ การอัปเดตเคอร์เนลของเราจะช่วยให้เราใช้ประโยชน์จากฟังก์ชันเคอร์เนลใหม่และป้องกันตนเองจากช่องโหว่ที่ถูกค้นพบในเวอร์ชันก่อนหน้า

พร้อมที่จะอัปเดตเคอร์เนลของคุณบน CentOS 7 หรือหนึ่งในอนุพันธ์เช่น RHEL 7 และ Fedora แล้วหรือยัง ถ้าเป็นเช่นนั้น โปรดอ่านต่อ!

ขั้นตอนที่ 1: ตรวจสอบเวอร์ชันเคอร์เนลที่ติดตั้ง

เมื่อเราติดตั้งการแจกจ่าย จะมีเคอร์เนล Linux บางเวอร์ชันรวมอยู่ด้วย หากต้องการแสดงเวอร์ชันปัจจุบันที่ติดตั้งบนระบบของเรา เราสามารถทำได้:

uname -sr

รูปภาพต่อไปนี้แสดงผลลัพธ์ของคำสั่งข้างต้นในเซิร์ฟเวอร์ CentOS 7:

หากเราไปที่ https://www.kernel.org/ เราจะเห็นว่าเคอร์เนลเวอร์ชันล่าสุดคือ 5.0 ในขณะที่เขียนบทความนี้ (เวอร์ชันอื่น ๆ มีให้จากไซต์เดียวกัน)

Kernel 5.0 เวอร์ชันใหม่นี้เป็นเวอร์ชันระยะยาวและจะรองรับเป็นเวลา 6 ปี ส่วนก่อนหน้านี้เวอร์ชัน Linux Kernel ทั้งหมดจะรองรับเป็นเวลา 2 ปีเท่านั้น

สิ่งสำคัญประการหนึ่งที่ต้องพิจารณาคือวงจรชีวิตของเวอร์ชันเคอร์เนล หากเวอร์ชันที่คุณกำลังใช้อยู่ใกล้จะสิ้นสุดอายุการใช้งาน จะไม่มีการแก้ไขข้อบกพร่องอีกต่อไปหลังจากวันดังกล่าว สำหรับข้อมูลเพิ่มเติม โปรดดูที่หน้าการเผยแพร่เคอร์เนล

ขั้นตอนที่ 2: การอัพเกรดเคอร์เนลใน CentOS 7

การกระจายที่ทันสมัยส่วนใหญ่จะมีวิธีในการอัพเกรดเคอร์เนลโดยใช้ระบบการจัดการแพ็คเกจ เช่น yum และพื้นที่เก็บข้อมูลที่ได้รับการสนับสนุนอย่างเป็นทางการ

ข้อสำคัญ: หากคุณต้องการรันเคอร์เนลที่คอมไพล์แบบกำหนดเอง คุณควรอ่านบทความของเราที่อธิบายวิธีการคอมไพล์เคอร์เนล Linux บน CentOS 7 จากแหล่งที่มา

อย่างไรก็ตาม การดำเนินการนี้จะอัปเกรดเป็นเวอร์ชันล่าสุดที่มีอยู่ในคลังเก็บของการแจกจ่ายเท่านั้น ไม่ใช่เวอร์ชันล่าสุดที่มีอยู่ใน https://www.kernel.org/ น่าเสียดายที่ Red Hat อนุญาตให้อัพเกรดเคอร์เนลโดยใช้ตัวเลือกเดิมเท่านั้น

ต่างจาก Red Hat CentOS อนุญาตให้ใช้ ELRepo ซึ่งเป็นพื้นที่เก็บข้อมูลของบุคคลที่สามที่ทำการอัพเกรดเคอร์เนลเป็นเวอร์ชันล่าสุด

หากต้องการเปิดใช้งานพื้นที่เก็บข้อมูล ELRepo บน CentOS 7 ให้ทำดังนี้

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm 

เมื่อเปิดใช้งานพื้นที่เก็บข้อมูลแล้ว คุณสามารถใช้คำสั่งต่อไปนี้เพื่อแสดงรายการแพ็คเกจ kernel. related ที่พร้อมใช้งาน:


yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * elrepo-kernel: mirror-hk.koddos.net
Available Packages
kernel-lt.x86_64                        4.4.176-1.el7.elrepo        elrepo-kernel
kernel-lt-devel.x86_64                  4.4.176-1.el7.elrepo        elrepo-kernel
kernel-lt-doc.noarch                    4.4.176-1.el7.elrepo        elrepo-kernel
kernel-lt-headers.x86_64                4.4.176-1.el7.elrepo        elrepo-kernel
kernel-lt-tools.x86_64                  4.4.176-1.el7.elrepo        elrepo-kernel
kernel-lt-tools-libs.x86_64             4.4.176-1.el7.elrepo        elrepo-kernel
kernel-lt-tools-libs-devel.x86_64       4.4.176-1.el7.elrepo        elrepo-kernel
kernel-ml.x86_64                        5.0.0-1.el7.elrepo          elrepo-kernel
kernel-ml-devel.x86_64                  5.0.0-1.el7.elrepo          elrepo-kernel
kernel-ml-doc.noarch                    5.0.0-1.el7.elrepo          elrepo-kernel
kernel-ml-headers.x86_64                5.0.0-1.el7.elrepo          elrepo-kernel
kernel-ml-tools.x86_64                  5.0.0-1.el7.elrepo          elrepo-kernel
kernel-ml-tools-libs.x86_64             5.0.0-1.el7.elrepo          elrepo-kernel
kernel-ml-tools-libs-devel.x86_64       5.0.0-1.el7.elrepo          elrepo-kernel
perf.x86_64                             5.0.0-1.el7.elrepo          elrepo-kernel
python-perf.x86_64                      5.0.0-1.el7.elrepo          elrepo-kernel

ถัดไป ติดตั้งเคอร์เนล mainline ที่เสถียรล่าสุด:


yum --enablerepo=elrepo-kernel install kernel-ml

Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: centos.mirror.net.in
 * elrepo: mirror-hk.koddos.net
 * elrepo-kernel: mirror-hk.koddos.net
 * epel: repos.del.extreme-ix.org
 * extras: centos.mirror.net.in
 * updates: centos.mirror.net.in
Resolving Dependencies
--> Running transaction check
---> Package kernel-ml.x86_64 0:5.0.0-1.el7.elrepo will be installed
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================
 Package                Arch        Version                 Repository        Size
====================================================================================
Installing:
 kernel-ml              x86_64      5.0.0-1.el7.elrepo      elrepo-kernel     47 M

Transaction Summary
====================================================================================
Install  1 Package

Total download size: 47 M
Installed size: 215 M
Is this ok [y/d/N]: y
Downloading packages:
kernel-ml-5.0.0-1.el7.elrepo.x86_64.rpm                           |  47 MB  00:01:21     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : kernel-ml-5.0.0-1.el7.elrepo.x86_64                1/1 
  Verifying  : kernel-ml-5.0.0-1.el7.elrepo.x86_64                1/1 

Installed:
  kernel-ml.x86_64 0:5.0.0-1.el7.elrepo                                                                                                                                                                            

Complete!

สุดท้าย รีบูต เครื่องของคุณเพื่อใช้เคอร์เนลล่าสุด จากนั้นเลือกเคอร์เนลล่าสุดจากเมนูดังที่แสดง

เข้าสู่ระบบในฐานะ root และรันคำสั่งต่อไปนี้เพื่อตรวจสอบเวอร์ชันเคอร์เนล:

uname -sr

ขั้นตอนที่ 3: ตั้งค่าเวอร์ชันเคอร์เนลเริ่มต้นใน GRUB

เพื่อให้เวอร์ชันที่ติดตั้งใหม่เป็นตัวเลือกการบูตเริ่มต้น คุณจะต้องแก้ไขการกำหนดค่า GRUB ดังนี้:

เปิดและแก้ไขไฟล์ /etc/default/grub และตั้งค่า GRUB_DEFAULT=0 ซึ่งหมายความว่าเคอร์เนลแรกในหน้าจอเริ่มต้นของ GRUB จะถูกใช้เป็นค่าเริ่มต้น

GRUB_TIMEOUT=5
GRUB_DEFAULT=0
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap crashkernel=auto rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

จากนั้นให้รันคำสั่งต่อไปนี้เพื่อสร้างการกำหนดค่าเคอร์เนลใหม่


grub2-mkconfig -o /boot/grub2/grub.cfg

Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.0.0-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-5.0.0-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-4.20.0-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-4.20.0-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-4.19.11-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-4.19.11-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-4.19.0-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-4.19.0-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-957.1.3.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-957.1.3.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-693.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-693.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-1e2b46dbc0c04b05b592c837c366bb76
Found initrd image: /boot/initramfs-0-rescue-1e2b46dbc0c04b05b592c837c366bb76.img
done

รีบูตและตรวจสอบว่าเคอร์เนลล่าสุดถูกใช้เป็นค่าเริ่มต้นแล้ว

ยินดีด้วย! คุณได้อัปเกรดเคอร์เนลของคุณใน CentOS 7!

สรุป

ในบทความนี้ เราได้อธิบายวิธีอัปเกรดเคอร์เนล Linux บนระบบของคุณอย่างง่ายดาย ยังมีอีกวิธีหนึ่งที่เราไม่ได้กล่าวถึง เนื่องจากเป็นการรวบรวมเคอร์เนลจากแหล่งที่มา ซึ่งสมควรได้รับหนังสือทั้งเล่ม และไม่แนะนำให้ใช้กับระบบที่ใช้งานจริง

แม้ว่านี่จะเป็นประสบการณ์การเรียนรู้ที่ดีที่สุดอย่างหนึ่งและช่วยให้สามารถกำหนดค่าเคอร์เนลได้อย่างละเอียด แต่คุณอาจทำให้ระบบของคุณใช้งานไม่ได้และอาจต้องติดตั้งใหม่ตั้งแต่ต้น

หากคุณยังคงสนใจที่จะสร้างเคอร์เนลเป็นประสบการณ์การเรียนรู้ คุณจะพบคำแนะนำเกี่ยวกับวิธีการได้ที่หน้าเคอร์เนลมือใหม่

และเช่นเคย โปรดใช้แบบฟอร์มด้านล่างหากคุณมีคำถามหรือความคิดเห็นเกี่ยวกับบทความนี้