Linux Kernel là gì?
Linux kernel (nhân Linux) là một hạt nhân monolithic cho các hệ điều hành tương tự Unix. Hệ điều hành Linux dựa trên hạt nhân này và được triển khai trên cả hai hệ thống máy tính truyền thống là máy tính cá nhân và máy chủ.
Linux kernel được tạo ra bởi Linus Torvalds vào năm 1991 và các bản phân phối của Linux (Linux distro) như Ubuntu, CentOS, Debian…. đều sử dụng Linux Kernel.
Cách nâng cấp Linux Kernel trên CentOS 7
Khi bạn tạo một VPS chạy hệ điều hành CentOS 7 thì Linux Kernel mặc định của nó là 3.10, trong khi đó Linux Kernel bản mới nhất là 5.3.11. Các bạn có thể dùng lệnh sau để check phiên bản Linux Kernel.
uname -sr
kết quả
Linux 3.10.0-1062.1.2.el7.x86_64
Bây giờ ta sẽ nâng cấp Linux Kernel bằng các bước sau.
1Cài đặt ELRepo repository.
Thêm ELRepo gpg key.
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
Cài đặt ELRepo
rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
Kết quả
Retrieving https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm Preparing... ################################# [100%] Updating / installing... 1:elrepo-release-7.0-3.el7.elrepo ################################# [100%]
Kiểm tra xem ELRepo đã cài hay chưa bằng lệnh sau:
yum repolist
Nếu thấy
“elrepo ELRepo.org Community Enterprise Linux Repository – el7″
tức là đã cài đặt thành công.
Failed to set locale, defaulting to C Loaded plugins: fastestmirror, priorities, versionlock Loading mirror speeds from cached hostfile * base: mirror.newmediaexpress.com * elrepo: mirrors.thzhost.com * epel: sg.fedora.ipserverone.com * extras: mirror.newmediaexpress.com * rpmforge: kartolo.sby.datautama.net.id * updates: centos.netonboard.com elrepo | 2.9 kB 00:00:00 elrepo/primary_db | 529 kB 00:00:00 287 packages excluded due to repository priority protections repo id repo name status base/7/x86_64 CentOS-7 - Base 7786+2311 elrepo ELRepo.org Community Enterprise Linux Repository - el7 128+19 *epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 12483+974 extras/7/x86_64 CentOS-7 - Extras 305 mariadb MariaDB 33+10 rpmforge RHEL 7 - RPMforge.net - dag 141+104 updates/7/x86_64 CentOS-7 - Updates 591+147 repolist: 21467
2 Cài đặt Linux Kenel stable bản mới nhất từ kernel.org
Sử dụng lệnh sau để cài đặt Linux Kernel
yum --enablerepo=elrepo-kernel install kernel-ml
Quá trình cài đặt bắt đầu
Failed to set locale, defaulting to C Loaded plugins: fastestmirror, priorities, versionlock Loading mirror speeds from cached hostfile * base: mirror.newmediaexpress.com * elrepo: elrepo.mirror.angkasa.id * elrepo-kernel: elrepo.mirror.angkasa.id * epel: sg.fedora.ipserverone.com * extras: mirror.newmediaexpress.com * rpmforge: kartolo.sby.datautama.net.id * updates: centos.netonboard.com elrepo-kernel | 2.9 kB 00:00:00 elrepo-kernel/primary_db | 1.8 MB 00:00:00 295 packages excluded due to repository priority protections Resolving Dependencies --> Running transaction check ---> Package kernel-ml.x86_64 0:5.3.11-1.el7.elrepo will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================================ Package Arch Version Repository Size ================================================================================================ Installing: kernel-ml x86_64 5.3.11-1.el7.elrepo elrepo-kernel 48 M Transaction Summary ================================================================================================ Install 1 Package Total download size: 48 M Installed size: 216 M Is this ok [y/d/N]: y Downloading packages: kernel-ml-5.3.11-1.el7.elrepo.x86_64.rpm | 48 MB 00:00:08 Running transaction check Running transaction test Transaction test succeeded Running transaction Warning: RPMDB altered outside of yum. Installing : kernel-ml-5.3.11-1.el7.elrepo.x86_64 1/1 Verifying : kernel-ml-5.3.11-1.el7.elrepo.x86_64 1/1 Installed: kernel-ml.x86_64 0:5.3.11-1.el7.elrepo Complete!
Kiểm tra xem Linux Kernel 5.3.11 đã được cài hay chưa bằng lệnh:
rpm -qa | grep kernel
Bạn sẽ thấy kernel-ml-5.3.11-1.el7.elrepo.x86_64 xuất hiện trong danh sách
kernel-headers-3.10.0-1062.4.3.el7.x86_64 kernel-3.10.0-1062.1.2.el7.x86_64 kernel-3.10.0-1062.4.1.el7.x86_64 kernel-devel-3.10.0-1062.4.3.el7.x86_64 kernel-ml-5.3.11-1.el7.elrepo.x86_64 kernel-tools-libs-3.10.0-1062.4.3.el7.x86_64 kernel-3.10.0-1062.4.3.el7.x86_64 kernel-3.10.0-1062.el7.x86_64 kernel-devel-3.10.0-1062.4.1.el7.x86_64 kernel-tools-3.10.0-1062.4.3.el7.x86_64
3 Kích hoạt Linux Kernel mới
Tuy đã được cài đặt nhưng phiên bản Linux Kernel 5.3.11 vẫn chưa được kích hoạt, khi bạn khởi động lại VPS thì CentOS vẫn sử dụng Linux Kernel 3.10.
Bạn có thể kiểm tra các phiên bản Linux Kernel trong bộ nạp khởi động (Grub2) bằng lệnh sau:
sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
Kết quả
0 : CentOS Linux (5.3.11-1.el7.elrepo.x86_64) 7 (Core) 1 : CentOS Linux (3.10.0-1062.4.3.el7.x86_64) 7 (Core) 2 : CentOS Linux 7 Rescue b7b2f94704fd4768bfdb1f3cdd123206 (3.10.0-1062.4.1.el7.x86_64) 3 : CentOS Linux (3.10.0-1062.4.1.el7.x86_64) 7 (Core) 4 : CentOS Linux (3.10.0-1062.1.2.el7.x86_64) 7 (Core) 5 : CentOS Linux (3.10.0-1062.el7.x86_64) 7 (Core) 6 : CentOS Linux (0-rescue-f8fd78b65c424d5ead635c5b7f572837) 7 (Core)
Để kích hoạt và sử dụng Linux Kernel 5.3.11 làm Linux Kernel mặc định ta sử dụng lệnh sau:
sudo grub2-set-default 0
0 – Chính là số thứ tự của Linux Kernel 5.3.11 ta đã có ở trên, nếu muốn sử dụng Linux Kernel phiên bản khác có thể sử dụng lại lệnh trên với số thứ tự của kernel đó.
Bây giờ ta khởi động lại VPS bằng lệnh
reboot
Sau đó đăng nhập lại VPS và kiểm tra lại thì lúc này CentOS đã sử dụng Linux Kernel mới nhất là 5.3.11
[06:41][[email protected] ~]# uname -r 5.3.11-1.el7.elrepo.x86_64 [06:41][[email protected] ~]#
Như vậy là CentOS 7 của bạn đã sử dụng Linux Kernel mới nhất.
Cách xoá Lixnux Kernel cũ.
Sau khi nâng cấp lên Linux Kernel cũ có thể xoá Linux Kernel phiên bản cũ hơn để tiết kiệm ổ cứng bằng lệnh:
package-cleanup --oldkernels
Lệnh này sẽ liệt kê các phiên bản Linux Kernel cũ và hỏi bạn xem có muốn xoá chúng không.
[06:53][[email protected] ~]# package-cleanup --oldkernels Failed to set locale, defaulting to C Loaded plugins: fastestmirror, priorities, versionlock --> Running transaction check ---> Package kernel.x86_64 0:3.10.0-1062.el7 will be erased ---> Package kernel.x86_64 0:3.10.0-1062.1.2.el7 will be erased --> Finished Dependency Resolution Dependencies Resolved ================================================================================================ Package Arch Version Repository Size ================================================================================================ Removing: kernel x86_64 3.10.0-1062.el7 @CentOS 64 M kernel x86_64 3.10.0-1062.1.2.el7 @updates 64 M Transaction Summary ================================================================================================ Remove 2 Packages Installed size: 128 M Is this ok [y/N]: y Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction Erasing : kernel.x86_64 1/2 Erasing : kernel.x86_64 2/2 Verifying : kernel-3.10.0-1062.1.2.el7.x86_64 1/2 Verifying : kernel-3.10.0-1062.el7.x86_64 2/2 Removed: kernel.x86_64 0:3.10.0-1062.el7 kernel.x86_64 0:3.10.0-1062.1.2.el7 Complete!
ubuntu di ban
nice
Thanks.