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

วิธีลบเคอร์เนลเก่าที่ไม่ได้ใช้ใน CentOS, RHEL และ Fedora


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

หากต้องการติดตั้งหรืออัปเกรดเคอร์เนลเป็นเวอร์ชันล่าสุดในระบบ RHEL/CentOS/Fedora โปรดอ่านคู่มือนี้:

  1. วิธีติดตั้งหรืออัปเกรดเป็นเคอร์เนลเวอร์ชันล่าสุดใน CentOS 7

โปรดทราบ: ในทางกลับกัน แนะนำให้เก็บเคอร์เนลเก่าอย่างน้อยหนึ่งหรือสองเคอร์เนลไว้ใช้ในกรณีที่มีปัญหาในการอัปเดต

หากต้องการแสดงเวอร์ชันปัจจุบันของ Linux (เคอร์เนล) ที่ทำงานบนระบบของคุณ ให้รันคำสั่งนี้

uname -sr

Linux 3.10.0-327.10.1.el7.x86_64

แสดงรายการเคอร์เนลที่ติดตั้งทั้งหมดบนระบบ

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

rpm -q kernel

kernel-3.10.0-229.el7.x86_64
kernel-3.10.0-229.14.1.el7.x86_64
kernel-3.10.0-327.3.1.el7.x86_64
kernel-3.10.0-327.10.1.el7.x86_64

การลบเคอร์เนลเก่า/ไม่ได้ใช้บน CentOS/RHEL

คุณต้องติดตั้ง yum-utils ซึ่งเป็นกลุ่มโปรแกรมอรรถประโยชน์ที่ทำงานร่วมกับ yum เพื่อให้มีประสิทธิภาพและใช้งานง่ายยิ่งขึ้น โดยขยายคุณสมบัติดั้งเดิมในคุณสมบัติต่างๆ มากมาย วิธี

yum install yum-utils

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

package-cleanup --oldkernels --count=2
Loaded plugins: fastestmirror, langpacks, product-id, versionlock
--> Running transaction check
---> Package kernel.x86_64 0:3.10.0-229.el7 will be erased
---> Package kernel.x86_64 0:3.10.0-229.14.1.el7 will be erased
---> Package kernel-devel.x86_64 0:3.10.0-229.1.2.el7 will be erased
---> Package kernel-devel.x86_64 0:3.10.0-229.14.1.el7 will be erased
--> Finished Dependency Resolution

Dependencies Resolved

===============================================================================================================================================================================================
 Package                                       Arch                                    Version                                                Repository                                  Size
===============================================================================================================================================================================================
Removing:
 kernel                                        x86_64                                  3.10.0-229.el7                                         @anaconda                                  131 M
 kernel                                        x86_64                                  3.10.0-229.14.1.el7                                    @updates                                   131 M
 kernel-devel                                  x86_64                                  3.10.0-229.1.2.el7                                     @updates                                    32 M
 kernel-devel                                  x86_64                                  3.10.0-229.14.1.el7                                    @updates                                    32 M

Transaction Summary
===============================================================================================================================================================================================
Remove  4 Packages

Installed size: 326 M
Is this ok [y/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Erasing    : kernel-devel.x86_64                            1/4 
  Erasing    : kernel.x86_64                                  2/4 
  Erasing    : kernel-devel.x86_64                            3/4 
  Erasing    : kernel.x86_64                                  4/4 
Loading mirror speeds from cached hostfile
 * base: centos.mirror.snu.edu.in
 * epel: repo.ugm.ac.id
 * extras: centos.mirror.snu.edu.in
 * rpmforge: kartolo.sby.datautama.net.id
 * updates: centos.mirror.snu.edu.in
  Verifying  : kernel-3.10.0-229.el7.x86_64                   1/4 
  Verifying  : kernel-devel-3.10.0-229.14.1.el7.x86_64        2/4 
  Verifying  : kernel-3.10.0-229.14.1.el7.x86_64              3/4 
  Verifying  : kernel-devel-3.10.0-229.1.2.el7.x86_64         4/4 

Removed:
  kernel.x86_64 0:3.10.0-229.el7           kernel.x86_64 0:3.10.0-229.14.1.el7           kernel-devel.x86_64 0:3.10.0-229.1.2.el7           kernel-devel.x86_64 0:3.10.0-229.14.1.el7          

Complete!

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

การลบเคอร์เนลเก่า/ไม่ได้ใช้บน Fedora

ตอนนี้ Fedora ใช้ตัวจัดการแพ็คเกจ dnf ซึ่งเป็นตัวจัดการแพ็คเกจ yum เวอร์ชันใหม่ ดังนั้นคุณจึงจำเป็นต้องใช้คำสั่งด้านล่างนี้เพื่อลบเคอร์เนลเก่าบน Fedora

dnf remove $(dnf repoquery --installonly --latest-limit 2 -q) 

อีกทางเลือกหนึ่งในการลบเคอร์เนลเก่าโดยอัตโนมัติคือการตั้งค่าขีดจำกัดเคอร์เนลในไฟล์ yum.conf ดังที่แสดง

installonly_limit=2		#set kernel count

บันทึกและปิดไฟล์ ครั้งถัดไปที่คุณรันการอัพเดต ระบบจะเหลือเคอร์เนลเพียงสองเคอร์เนลเท่านั้น

คุณอาจต้องการอ่านบทความที่เกี่ยวข้องต่อไปนี้เกี่ยวกับเคอร์เนล Linux

  1. วิธีโหลดและยกเลิกการโหลดโมดูลเคอร์เนลใน Linux
  2. วิธีอัปเกรดเคอร์เนลเป็นเวอร์ชันล่าสุดใน Ubuntu
  3. วิธีการเปลี่ยนพารามิเตอร์รันไทม์เคอร์เนลในลักษณะถาวรและไม่ถาวร

ในบทความนี้ เราได้อธิบายวิธีลบอิมเมจเคอร์เนลเก่า/ที่ไม่ได้ใช้บนระบบ RHEL/CentOS/Fedora คุณสามารถแบ่งปันความคิดใด ๆ ผ่านข้อเสนอแนะจากด้านล่าง