วิธีติดตั้งหรืออัปเกรดเป็น Kernel 5.0 ใน CentOS 7
แม้ว่าบางคนจะใช้คำว่า Linux เพื่อแสดงถึงระบบปฏิบัติการโดยรวม แต่สิ่งสำคัญที่ควรทราบคือ พูดอย่างเคร่งครัด Linux เป็นเพียงเคอร์เนลเท่านั้น ในทางกลับกัน การแจกจ่ายเป็นระบบที่มีฟังก์ชันเต็มรูปแบบซึ่งสร้างขึ้นบนเคอร์เนล พร้อมด้วยเครื่องมือและไลบรารีแอปพลิเคชันที่หลากหลาย
ในระหว่างการดำเนินการปกติ เคอร์เนลมีหน้าที่รับผิดชอบในการดำเนินการที่สำคัญสองประการ:
- ทำหน้าที่เป็นส่วนต่อประสานระหว่างฮาร์ดแวร์และซอฟต์แวร์ที่ทำงานบนระบบ
- การจัดการทรัพยากรระบบอย่างมีประสิทธิภาพมากที่สุด
เมื่อต้องการทำเช่นนี้ เคอร์เนลจะสื่อสารกับฮาร์ดแวร์ผ่านไดรเวอร์ที่อยู่ภายในหรือไดรเวอร์ที่สามารถติดตั้งเป็นโมดูลได้ในภายหลัง
ตัวอย่างเช่น เมื่อแอปพลิเคชันที่ทำงานบนเครื่องของคุณต้องการเชื่อมต่อกับเครือข่ายไร้สาย แอปพลิเคชันจะส่งคำขอนั้นไปยังเคอร์เนล ซึ่งในทางกลับกันจะใช้ไดรเวอร์ที่เหมาะสมเพื่อเชื่อมต่อกับเครือข่าย
แนะนำให้อ่าน: วิธีอัปเกรดเคอร์เนลใน 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 บนระบบของคุณอย่างง่ายดาย ยังมีอีกวิธีหนึ่งที่เราไม่ได้กล่าวถึง เนื่องจากเป็นการรวบรวมเคอร์เนลจากแหล่งที่มา ซึ่งสมควรได้รับหนังสือทั้งเล่ม และไม่แนะนำให้ใช้กับระบบที่ใช้งานจริง
แม้ว่านี่จะเป็นประสบการณ์การเรียนรู้ที่ดีที่สุดอย่างหนึ่งและช่วยให้สามารถกำหนดค่าเคอร์เนลได้อย่างละเอียด แต่คุณอาจทำให้ระบบของคุณใช้งานไม่ได้และอาจต้องติดตั้งใหม่ตั้งแต่ต้น
หากคุณยังคงสนใจที่จะสร้างเคอร์เนลเป็นประสบการณ์การเรียนรู้ คุณจะพบคำแนะนำเกี่ยวกับวิธีการได้ที่หน้าเคอร์เนลมือใหม่
และเช่นเคย โปรดใช้แบบฟอร์มด้านล่างหากคุณมีคำถามหรือความคิดเห็นเกี่ยวกับบทความนี้