centos 升級內核方法


方法1:rpm安裝方式

rpm安裝包可以通過這個網站下載:

這個是CentOS6 x64 : http://elrepo.org/linux/kernel/el6/x86_64/RPMS/

這個是CentOS7 x64 : http://elrepo.org/linux/kernel/el7/x86_64/RPMS/ 或者 http://mirror.rc.usf.edu/compute_lock/elrepo/kernel/el7/x86_64/RPMS/

ubuntu的內核地址 http://kernel.ubuntu.com/~kernel-ppa/mainline/

RPM-GPG-KEY-elrepo.org : https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

Kernel-lt是長期維護版一般選這個,Kernel-ml是Linus親自維護的主分支版本

下載所需的內核版本

yum install kernel-lt-4.4.103-1.el7.elrepo.x86_64.rpm -y		#yum安裝內核包
awk '$1=="menuentry" {print $2,$3,$4}' /etc/grub2.cfg                          #查看默認啟動順序

#如果沒有外網先安裝key,下載地址:https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm --import RPM-GPG-KEY-elrepo.org
rpm -ivh kernel-lt-4.4.103-1.el7.elrepo.x86_64.rpm -y

#設置默認啟動項,0是按menuentry順序。比如要默認從第四個菜單項啟動,數字改為3,若改為 saved,則默認為上次啟動項。
sed -i "s/GRUB_DEFAULT=saved/GRUB_DEFAULT=0/g" /etc/default/grub	
grub2-mkconfig -o /boot/grub2/grub.cfg
reboot		#重啟機器

uname -r	#重啟后查看內核版本

#注:裝新內核是占用/boot空間的,可以使用yum remove kernel-ml-4.10.11-1.el6.elrepo.x86_64方式清理不用的kernel

方法2:源碼安裝方式

下載linux內核官網地址 : https://www.kernel.org/

一般選着stable(穩定的內核版本),mainline(開發的內核版本),longterm(之前的內核版本)

tarball:完整的代碼

pgp:驗證簽名

patch:基於上一個版本的補丁

編碼內核選擇界面(生成.config的方法):

make help 支持更新模式進行配置
make menuconfig 基於curses的文本窗口界面
make gconfig 基於GTK(GOME)環境窗口界面
make xconfig 基於QT(KDE) 環境的窗口界面
make oldconfig 透過已經存在的./.config文件內容,並使用該文件內設定值為默認值,只將新版本核心的新功能列出讓用戶選擇,可以簡化核心功能挑選過程。對與升級內核很好選擇。
make defconfig 基於內核為目標平台執行提供的“默認”配置進行配置
make allyesconfig 所有選項均回答為”yes”
make allnoconfig 所有選項均回答為”no”
make mrproper 清理所有編譯生成的文件、 config及某些備份文件
make clean 清理大多數編譯生成的文件,但會保留config文件等
make distclean mrproper、 patches以及編輯器備份文件
# 准備編譯環境

yum -y groups install "Development Tools"
yum -y install ncurses-devel elfutils-libelf-devel bc openssl-devel.x86_64
tar xvf linux-4.14.12.tar.xz
cp /boot/config-3.10.0-693.el7.x86_64 /kernel/linux-4.14.12
cd /kernel/linux-4.14.12/
make menuconfig
make
make modules_install
make install
# 安裝好之后,會在/boot內生成對應的內核相關文件,模塊目錄也會生成/lib/modules/4.14.12

cat grub2/grub.cfg |grep Core
# 然后重啟系統,檢查內核

卸載內核

#刪除/lib/modules/目錄下不需要的內核庫文件
rm -rf 4.14.12
# 刪除源碼目錄
# 刪除/usr/src/linux/目錄下不需要的內核源碼
# 刪除/boot目錄下啟動的內核和內核映像文件
rm *-4*
rm: remove regular file ‘initramfs-4.14.12hunk-2018-1.0.img’? y
rm: remove regular file ‘initramfs-4.14.12hunk-2018-1.0.img.gz’? y
rm: remove regular file ‘System.map-4.14.12hunk-2018-1.0’? y
rm: remove regular file ‘vmlinuz-4.14.12hunk-2018-1.0’? y

#更改grub的配置文件,刪除不需要的內核啟動列表
vim /boot/grub2/grub.cfg
#!/bin/sh

set -e
cd `dirname $0`

rpm --import RPM-GPG-KEY-elrepo.org
rpm -ivh kernel-lt-4.4.103-1.el7.elrepo.x86_64.rpm
sed -i s/saved/0/ /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg

echo -e "\033[32m"請重啟機器!"\033[0m"  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM