centos 更新linux內核


    之前一直使用centos 7系統進行開發,centos 7.0 系統自帶的linux內核版本為 linx 3.10,最近開發需要使用到socket的reuse port特性,該特性在linux 3.9及以上才被支持,因此需要將系統升級到linux的3.9及以上版本。

    從網上查找了升級內核的教程,發現主要有兩種:

一、使用 elrepo 的rpm包升級

查看當前系統內核版本 uname -r 
1. 導入key 
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org 
2. 安裝 elrepo 的yum源 
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm 
3. 安裝內核 
在yum的elrepo源中,有最新版本內核。直接yum安裝即可。 
yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml -y 
5. 設置系統啟動順序 
查看系統啟動項: 
cat /boot/grub2/grub.cfg |grep menuentry 

(如果沒有發現 grub.cfg 文件,則可以使用命令 grub2-mkconfig --output=/boot/grub2/grub.cfg,它會生成配置文件)


可以發現有最新版本的內核,此時可以設置最新版本內核為默認啟動: 
grub2-set-default 'CentOS Linux (4.8.5-1.el7.elrepo.x86_64) 7 (Core)' 
    此時,查看默認啟動的系統版本grub2-editenv list 
顯示為'CentOS Linux (4.8.5-1.el7.elrepo.x86_64) 7 (Core)' 
6. reboot,重啟之后再次查看 uname -r

二、使用源碼編譯安裝升級

1 下載內核源碼 
下載網址為 https://www.kernel.org/ 
wget xxx 
2 解壓並進入源碼目錄 
3 更新系統並安裝依賴軟件

    #yum update
    #yum upgrade
    #yum groups install Development Tools
    #yum install ncurses-devel qt-devel hmaccalc zlib-devel binutils-devel elfutils-libelf-devel

 

4 將當前內核配置文件拷貝到當前目錄 
    本來是應該執行make menuconfig來自定義內核配置的,生成配置文件.config; 但是可以直接使用原來系統的內核配置,也就是拷貝/boot目錄下的配置文件到當前目錄。 
cp /boot/config-2.6.32-431.11.2.el6.x86_64 .config

5 使用當前內核的配置

    #sh -c 'yes "" | make oldconfig' #centos 6
    #sh -c 'y "" | make oldconfig' #centos 7

6 編譯安裝

    #make bzImage
    #make modules
    #make modules_install
    #make install

 

7 設置系統啟動順序 
查看系統啟動項: 
cat /boot/grub2/grub.cfg |grep menuentry 

(如果沒有發現 grub.cfg 文件,則可以使用命令 grub2-mkconfig --output=/boot/grub2/grub.cfg,它會生成配置文件)
可以發現有最新版本的內核,此時可以設置最新版本內核為默認啟動: 
grub2-set-default 'CentOS Linux (4.8.5-1.el7.elrepo.x86_64) 7 (Core)' 
    此時,查看默認啟動的系統版本grub2-editenv list 
顯示為'CentOS Linux (4.8.5-1.el7.elrepo.x86_64) 7 (Core)' 
8 reboot,重啟之后再次查看 uname -r


免責聲明!

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



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