标题:[实践OK]Centos/centos是7.0,而内核是3.10.0,CentOS 7 升级内核版本至 4.20,而centos7.1.1内核是4.1.1,直接升级内核到4.1.1的办法,CentOS 7.4默认内核是:3.10.0,升级到内核是升级到4.12,我的是4.15.9,再降级到4.12.4-1。 出处:向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除 时间:Sun, 24 Jan 2016 12:23:24 +0000 作者:jackxiang 地址:http://jackxiang.com/post/8457/ 内容: 核心操作: 如何从grub提示符返回grub菜单?执行normal命令使我回到grub菜单。 ubuntu 直接在开启时,(不要和我说vi,进不了系统)修改grub修改后怎么保存?此时不能保存,只能ctrl+x或F10运行,无误引导启动能进入系统后,再用软件编辑修改相关配置文件,保存。 rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm #软件包 elrepo-release-7.0-6.el7.elrepo.noarch (比 elrepo-release-7.0-3.el7.elrepo.noarch 还要新) 已经安装 yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml -y Installing : kernel-ml-6.2.9-1.el7.elrepo.x86_64 cat /etc/grub2.cfg |grep menuentry cat /boot/efi/EFI/centos/grub.cfg | grep menuentry grub2-set-default 'CentOS Linux (4.15.9-1.el7.elrepo.x86_64) 7 (Core)' grub2-set-default 'CentOS Linux (6.2.9-1.el7.elrepo.x86_64) 7 (Core)' grub2-editenv list # uname -a Linux chatgpt4levoo 6.2.9-1.el7.elrepo.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Mar 29 20:06:17 EDT 2023 x86_64 x86_64 x86_64 GNU/Linux grub相关命令:https://wenku.baidu.com/view/452dbe11f18583d04964591f.html 背景:阿里去的Centos是到7.0,而内核是3.10.0,而centos7.1.1内核是4.1.1,Linus说是新的内核性能上应该更强一些,实践证明升级后的感觉的确要强一些,新内核真不错。 最近,那个工控机出现升级后,黑屏,乃至进入不了系统,其Grub位置还不是在/etc/grub2.cfg,而是在 /boot/efi/EFI/centos/grub.cfg,怎么办 1)改Bios:BIos里设置为:UEFI CentOS7那个。 2)修改:/boot/efi/EFI/centos/grub.cfg在100行下面,也就是linuxefi /vmlinuz-4.16.1-1.el7.elrepo.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=en_US.UTF-8 下面加一行,并将成功的那个img给拷贝过去(我用的nc),注意权限:chmod 600 /boot/initramfs-4.16.1-1.el7.elrepo.x86_64.img chown root:root /boot/initramfs-4.16.1-1.el7.elrepo.x86_64.img: initrdefi /initramfs-4.16.1-1.el7.elrepo.x86_64.img 步骤: scp /boot/initramfs-4.16.1-1.el7.elrepo.x86_64.img xiangdong@10.10.0.103:/tmp mv /tmp/initramfs-4.16.1-1.el7.elrepo.x86_64.img /boot chmod 600 /boot/initramfs-4.16.1-1.el7.elrepo.x86_64.img chown root:root /boot/initramfs-4.16.1-1.el7.elrepo.x86_64.img vi +100 /boot/efi/EFI/centos/grub.cfg initrdefi /initramfs-4.16.1-1.el7.elrepo.x86_64.img 100行下面插入一行,注意这行前面是Tab,不是空格,且和上一行对齐. initrdefi /initramfs-4.16.1-1.el7.elrepo.x86_64.img CentOS 7.4默认内核是:3.10.0,升级到内核是升级到4.12,我的是4.15.9,步骤如下,下面这个是在我的家里的小机器安装的,不是阿里云: yum --disablerepo="*" --enablerepo="elrepo-kernel" list available #主要看有无 kernel-ml-headers编译网卡之用到。 yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml kernel-ml-headers -y Installing: kernel-ml x86_64 5.17.0-1.el7.elrepo elrepo-kernel 56 M kernel-ml-devel x86_64 5.17.0-1.el7.elrepo elrepo-kernel 14 M kernel-ml-headers x86_64 5.17.0-1.el7.elrepo elrepo-kernel 1.6 M https://jackxiang.com/post/11261/ yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml -y #得安装这个,yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml -y ,否则那个系统启动项没有最新的4.15.9版本号,正在安装 : kernel-ml-4.15.9-1.el7.elrepo.x86_64。cat /boot/grub2/grub.cfg |grep menuentry #CentOS 7 升级内核版本至 4.20 rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm # #2019.01.17 update Kernel 4.20.3-1 yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml -y #2019.01.17 update Kernel 4.20.3-1 cat /etc/grub2.cfg |grep menuentry if [ x"${feature_menuentry_id}" = xy ]; then menuentry_id_option="--id" menuentry_id_option="" export menuentry_id_option menuentry 'CentOS Linux (4.20.3-1.el7.elrepo.x86_64) 7 (Core)' --class centos --class gnu-linux cat /etc/grub2.cfg |grep menuentry cat /boot/efi/EFI/centos/grub.cfg |grep menuentry grub2-set-default 'CentOS Linux (4.16.1-1.el7.elrepo.x86_64) 7 (Core)' grub2-set-default 'CentOS Linux (4.16.9-1.el7.elrepo.x86_64) 7 (Core)' grub2-set-default 'CentOS Linux (4.19.0-1.el7.elrepo.x86_64) 7 (Core)' grub2-set-default 'CentOS Linux (5.7.10-1.el7.elrepo.x86_64) 7 (Core)' if [ x"${feature_menuentry_id}" = xy ]; then menuentry_id_option="--id" menuentry_id_option="" export menuentry_id_option menuentry 'CentOS Linux (4.15.9-1.el7.elrepo.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-693.el7.x86_64-advanced-0f2e2aec-2180-46ea-bb6a-9c39d7819d60' { 设置最新版本内核为默认启动: grub2-set-default 'CentOS Linux (4.15.9-1.el7.elrepo.x86_64) 7 (Core)' grub2-set-default 'CentOS Linux (4.16.1-1.el7.elrepo.x86_64) 7 (Core)' grub2-set-default 'CentOS Linux (5.7.10-1.el7.elrepo.x86_64) 7 (Core)' 此时,查看默认启动的系统版本grub2-editenv list: [root@localhost tmp]# grub2-set-default 'CentOS Linux (4.15.9-1.el7.elrepo.x86_64) 7 (Core)' [root@localhost tmp]# grub2-editenv list saved_entry=CentOS Linux (4.15.9-1.el7.elrepo.x86_64) 7 (Core) grub2-editenv list saved_entry=CentOS Linux (4.20.3-1.el7.elrepo.x86_64) 7 (Core) [实践OK]Centos7修改grub启动菜单等待时间: https://jackxiang.com/post/10238/ reboot,重启之后再次查看 uname -a uname -a Linux localhost.localdomain 4.15.9-1.el7.elrepo.x86_64 #1 SMP Sun Mar 11 16:19:17 EDT 2018 x86_64 x86_64 x86_64 GNU/Linux 关于启动时加载哪个内核的更多设置参考:http://blog.csdn.net/wuhualong1314/article/details/79542904 升级指定旧版本的回退并指定版本的方法: http://elrepo.org/linux/kernel/el7/x86_64/RPMS/ 将rpm包下载上传到服务器上,使用下面的命令安装即可@http://mirror.rc.usf.edu/compute_lock/elrepo/kernel/el7/x86_64/RPMS/: # yum -y install kernel-ml-devel-4.12.4-1.el7.elrepo.x86_64.rpm # yum -y install kernel-ml-4.12.4-1.el7.elrepo.x86_64.rpm yum localinstall kernel-ml-4.12.4-1.el7.elrepo.x86_64.rpm yum localinstall kernel-ml-devel-4.12.4-1.el7.elrepo.x86_64.rpm cat /boot/grub2/grub.cfg |grep menuentry grub2-set-default 'CentOS Linux (4.12.4-1.el7.elrepo.x86_64) 7 (Core)' Linux localhost.localdomain 4.12.4-1.el7.elrepo.x86_64 #1 SMP Thu Jul 27 20:03:28 EDT 2017 x86_64 x86_64 x86_64 GNU/Linux 删除没有用的内核:来自:https://blog.51cto.com/u_15079076/4296146,两点:一是开机时误按键盘出现问题是新的内核无法联网。(我估计是新内核与硬件网卡不兼容,不如旧的,于是得删除新的内核和太旧的内核 ,只留下一个就可以了。) yum remove $(rpm -qa|grep kernel|grep -v $(uname -r)) ============================================================================================================================== Package 架构 版本 源 大小 ============================================================================================================================== 正在删除: kernel x86_64 3.10.0-693.21.1.el7 @updates 60 M kernel x86_64 3.10.0-862.2.3.el7 @updates 62 M kernel x86_64 3.10.0-862.3.2.el7 @updates 62 M kernel x86_64 3.10.0-862.6.3.el7 @updates 62 M kernel-ml x86_64 4.16.7-1.el7.elrepo @elrepo-kernel 199 M kernel-ml x86_64 4.16.9-1.el7.elrepo @elrepo-kernel 200 M kernel-ml x86_64 6.6.11-1.el7.elrepo @elrepo-kernel 345 M kernel-ml-devel x86_64 4.16.7-1.el7.elrepo @elrepo-kernel 45 M kernel-ml-devel x86_64 4.16.9-1.el7.elrepo @elrepo-kernel 45 M kernel-ml-devel x86_64 6.6.11-1.el7.elrepo @elrepo-kernel 62 M 事务概要 ============================================================================================================================== 移除 10 软件包 这个是用阿里云论坛里手工做好的rpm包进行升级: https://bbs.aliyun.com/read/249016.html?spm=5176.bbsr250035.0.0.ATHIBV 用二进制包升级的下载并成功升级的地址:http://down.7qy.com/Hot-kerne/rpm/hot-centos-kernel-4.x-up-1.2.0.bin ====================================================================== ====================================================================== * 热点 CentOS 6/7 内核升级程序 Ver.1.2.0 by blog.7QY.Com * *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* * 安装完成后需要重新启动系统才能使用新内核 * * 按Ctrl+C键退出本安装程序,然后输入shutdown -r now 或 reboot 重启系统 * *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* * Tips: Select < 1 > to 升级CENTOS 6.X内核 * * Tips: Select < 2 > to 升级CENTOS 7.X内核 * ========================================================================= Please input ( 1 or 2 ) to 热点 CentOs 6/7 内核升级程序 Select: (1) 升级CENTOS 6.X内核 | (2) 升级CENTOS 7.X内核 (1/2): 2 开始升级CENTOS 7.X内核... 准备中... ################################# [100%] ...... 警告:RPM 数据库已被非 yum 程序修改。 正在安装 : kernel-ml-4.4.0-1.el7.elrepo.x86_64 1/2 正在安装 : kernel-ml-devel-4.4.0-1.el7.elrepo.x86_64 2/2 验证中 : kernel-ml-devel-4.4.0-1.el7.elrepo.x86_64 1/2 验证中 : kernel-ml-4.4.0-1.el7.elrepo.x86_64 2/2 已安装: kernel-ml.x86_64 0:4.4.0-1.el7.elrepo kernel-ml-devel.x86_64 0:4.4.0-1.el7.elrepo 完毕! 会立即重新启动(有可能不是,是挂载新内核,因为后面发现内存还剩下37M,分页的那个进程占用CPU高达95%,后来把PHP-fpm重新调小一点重新启动一下php-fpm就好了,但一会儿CPU又上来了:http://jackxiang.com/post/8438/。),后一会儿就连接上了,发现内核成功升级,数据也正常(我没有挂载,就是阿里云默认的20G),新内核是相当的高效,通过ssh就能感觉得到。 [root@iZ25dcp92ckZ ~]# uname -rasp Linux iZ25dcp92ckZ 4.4.0-1.el7.elrepo.x86_64 #1 SMP Sun Jan 10 21:17:16 EST 2016 x86_64 x86_64 x86_64 GNU/Linux Generated by Jackxiang's Bo-blog 2.1.1 Release