站在阳光下

Good Luck To You!

centos系统怎样升级系统内核

平常大家用惯了Windows系统,或许你可能不知道对于Linux系统启动系统的关键在kernel内核。内核也有版本之分,内核版本过老会导致需要使用新内核的程序无法使用,因此就必须要升级一下内核了。对于使用Linux服务器科学上网的朋友来说,虽然对主程序并没有什么影响,什么内核都能跑那种程序,但是如果你要用它来看视频的话那么效果就不理想了。这个时候你就需要加装一个神奇的加速程序,这就是我们以前提到的谷歌BBR。但是这个BBR由于是2016年发布的新程序,此时kernel内核已经升级到4.9版本了,因此4.9以下的内核版本就无缘这款看视频加速的神器了,想要使用就必须得升级一下内核。由于新版Ubuntu 16/18以及Debian 8/9就已经集成了4.9或者4.10版本的内核,因此只要找到BBR一键脚本就可自动安装。但是CentOS的就麻烦点了,CentOS 6集成的kernel内核只有2.6版本,最新的CentOS 7也只有3.10的版本,要想使用就必须得升级到4.10以上的版本。目前CentOS系统升级后的自带稳定可用源是4.4版本,虽然没有达到标准,但是只要来到4以上版本就可以安装BBR,一键脚本自带4.18内核可以自动安装这一版本从而达到BBR的使用标准,因此我们升级内核首先需要将低版本的2.6、3.10升级到4.4版本。


首先查看当前系统内核版本 uname -a / uname -r / uname -sr 都可以查看


系统内核可以自己到 https://www.kernel.org/ 查找合适的版本下载后自行配置,考虑到自行配置比较复杂,我们建议使用系统自带的elrepo自动安装


接下来我们启动自动升级


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


这一步如果出现错误,报错内容是关于 SSL KEY 的,那就需要升级一下NSS(Network Security Services)网络安全服务


yum update nss


接下来输入输入下面的命令


CentOS 6 


rpm -Uvh http://www.elrepo.org/elrepo-release-6-8-el6.elrepo.noarch.rpm


CentOS 7


rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm


如果显示错误则需要更新一下系统,输入 yum update 更新系统


如果还是无法自动安装,那就是系统版本过低则需要找到下面四个内核升级工具rpm,记住:一个都不能少(版本不重要,重要的是文件名字)


module-init-tools-3.2.tar.bz2


mkinitrd-4.1.18-2.i386.rpm


lvm2-2.00.25-1.01.i386.rpm


device-mapper-1.00.19-2.i386.rpm


下载到服务器后开始执行下面的命令


cd /usr/src


tar jvxf module-init-tools-..tar.bz2
cd module-init-tools-.
./configure --prefix=/ 
make moveold
make all install
./generate-modprobe.conf /etc/modprobe.conf


rpm -ivh --nodeps mkinitrd-..-.i386.rpm
rpm -ivh --nodeps lvm2-..-..i386.rpm
rpm -ivh --nodeps device-mapper-..-.i386.rpm


注:我们省略了版本号,点那里就是你们这个文件的版本号,说白了就是复制的文件名(放在目录的需要加目录,除非是root目录可以不用加目录名称)


只要没有报错,出现的满屏的#在不停的跑那就是安装成功了,接下来执行下面的命令开始自动安装


安装稳定版


yum --enablerepo=elrepo-kernel install kernel-lt -y


安装最新版


yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml -y


当再次出现满屏#跑的时候那基本上就是告诉你新的内核已经开始安装,等待一会就可自动安装成功


此时需要输入 reboot 重启服务器,在重启之后我们再次使用uname (-a/-r/-sr)命令发现还是原来的版本号,这是因为还有一步没有执行


那就是引导grub在启动的时候默认启动最新安装的内核版本,还需要我们做接下来的这个步骤


CentOS 6


sed -i 's/^default=.*/default=0/g' /boot/grub/grub.conf


CentOS 7


grub2-set-default 0


(这个不是输入的命令)-bash: grub2-set-default: command not found(会返回这么一个命令,不用管直接重启服务器)


接下来我们再次输入 reboot 重启服务器,稍后再次登录之后我们再次输入uname (-a/-r/-sr)命令,此时我们就会看到你的新版本内核已经正式启动并生效了


如果执行的是稳定版则会安装4.4,执行最新版则会安装最新的比如4.19或者4.20之类的内核,建议安装稳定版,如果安装BBR无所谓,一键安装脚本会自带4.18内核的,只要你升到4.4了,剩下的就交给自动脚本吧。


如果有多内核的我们还需要设置默认启动内核,最新的版本为0,往后以此类推的递增,如果使用最新的内核则不用更改默认配置的数字0


(内核具体的编号详情可到grub配置页面查询)


grub2-set-default 0


接下来输入 reboot 重启一下系统,再次登录后可通过SFTP查看boot目录下是否有4.4内核的文件,如果有那就是成功了。此时我们打开SSH再次输入uname -a / -r / -sr 命令如果出现的数字变为4.4了那么我们的新内核就安装成功并启用了。


接下来需要安装BBR的朋友请直接参考之前的文章 http://www.shibushi.cc/post/125.html 安装之后只要是能正常的跑#那就没问题,完成后重启一下服务器。再次打开执行内核查询命令时由于默认数值为0,因此将使用BBR自动脚本自带内核4.18,出现了4.18起码在服务器的底层架构跑BBR完全是没有压力的。到这里我们的内核更新就算是完成了。

发表评论:

Powered By Z-BlogPHP 1.5.1 Zero

Copyright 2017-2019 站在阳光下(shibushi.cc)All Rights Reserved. 鲁ICP备17054101号