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ủ.
Theo mặc định, CentOS 7 sử dụng phiên bản linux Kernel cũ là 3.10.x. Nhưng kernel cũ không hỗ trợ một số phần cứng và công nghệ mới. Điều này giúp tận dụng tối đa thế mạnh tài nguyên phần cứng của chúng. Ngoài ra, cập nhật kernel còn giúp khai thác tối đa những tính năng mới của nó và vá các lỗ hổng bảo mật đã được phát hiện trong phiên bản tiền nhiệm.
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ả
Bây giờ ta sẽ nâng cấp Linux Kernel bằng các bước sau.
[10:49][root@nguyenhongson ~]# uname -sr
Linux 3.10.0-1160.71.1.el7.x86_64
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
[11:13][root@nguyenhongson ~]# uname -sr
Linux 5.18.15-1.el7.elrepo.x86_64
[11:13][root@nguyenhongson ~]#
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.
[10:59][root@nguyenhongson ~]# package-cleanup --oldkernels
Loaded plugins: fastestmirror, priorities, versionlock
--> Running transaction check
---> Package kernel.x86_64 0:3.10.0-1160.25.1.el7 will be erased
---> Package kernel.x86_64 0:3.10.0-1160.31.1.el7 will be erased
---> Package kernel-devel.x86_64 0:3.10.0-1160.31.1.el7 will be erased
--> Finished Dependency Resolution
Dependencies Resolved
=========================================================================================================================================================
Package Arch Version Repository Size
=========================================================================================================================================================
Removing:
kernel x86_64 3.10.0-1160.25.1.el7 @updates 64 M
kernel x86_64 3.10.0-1160.31.1.el7 @updates 64 M
kernel-devel x86_64 3.10.0-1160.31.1.el7 @updates 38 M
Transaction Summary
=========================================================================================================================================================
Remove 3 Packages
Installed size: 167 M
Is this ok [y/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Erasing : kernel-devel-3.10.0-1160.31.1.el7.x86_64 1/3
Erasing : kernel.x86_64 2/3
Erasing : kernel.x86_64 3/3
Verifying : kernel-3.10.0-1160.25.1.el7.x86_64 1/3
Verifying : kernel-3.10.0-1160.31.1.el7.x86_64 2/3
Verifying : kernel-devel-3.10.0-1160.31.1.el7.x86_64 3/3
Removed:
kernel.x86_64 0:3.10.0-1160.25.1.el7 kernel.x86_64 0:3.10.0-1160.31.1.el7 kernel-devel.x86_64 0:3.10.0-1160.31.1.el7
Complete!
Như vậy là chúng ta đã hoàn thành quá trình nâng cấp linux kernel trên CentOS 7 rồi nhé, chúc các bạn thành công!
ubuntu di ban
nice
Thanks.