关于Linux升级内核时报错-grub2-editenv: error: environment block too small.
Posted on 2023-02-19 16:10 520_1351 阅读(1508) 评论(0) 编辑 收藏 举报先说一下本文的初始环境
OS版本: Red Hat Enterprise Linux release 8.1 (Ootpa)
内核版本:4.18.0-425.10.1.el8_7.x86_64
在运维中,有时一个报错,可能表面原因可能简单,但有时要找到根本原因,需要让问题重现还是有点难的
先说一下笔者这次遇到的问题的根本原因,及让问题重现的方法
默认情况下,是不建议直接 /boot/grub2/grubenv
如果手动修改了,再通过如下命令,升级内核时,kernel-相关的包是会被更新
[root@QQ-5201351 ~]# yum update kernel-* -y
最后也会显示完成,但中间的过程会看到报错信息:grub2-editenv: error: environment block too small.
然后查看当前的默认内核输出,依然是旧的版本,这也意味着重启OS后、还是应用旧版本的内核
[root@QQ-5201351 ~]# grubby --default-kernel /boot/vmlinuz-4.18.0-147.el8.x86_64 [root@QQ-5201351 ~]#
如果问题已经出现了,该如何解决呢,笔者整理了一下处理方法,步骤如下
1、备份/boot/grub2/grubenv文件,再通过如下命令重新生成/boot/grub2/grubenv
mv /boot/grub2/grubenv /boot/grub2/grubenv.bak.20230219 grub2-mkconfig -o /boot/grub2/grub.cfg
2、最后再重新安装一下新版本的kernel-core就可以了
yum reinstall kernel-core-4.18.0-425.10.1.el8_7.x86_64
然后就可以通过 grubby --default-kernel 命令看到已经配置已经将最新的内核版本设置为下次启动时的选项,查看/boot/grub2/grubenv 文件也会被更新
另外最后,还总结一下,最好不要直接修改/boot/grub2/grubenv
如果修改某些选项,应该是修改/etc/default/grub,再通过grub2-mkconfig –o /boot/grub2/grub.cfg 命令,就可以将修改更新到/boot/grub2/grubenv这个文件了
尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/17134924.html
作者:一名卑微的IT民工
出处:https://www.cnblogs.com/5201351
本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。
由于博主的水平不高,文章没有高度、深度和广度,只是凑字数,不足和错误之处在所难免,希望大家能够批评指出。
博主是利用读书、参考、引用、复制和粘贴等多种方式打造成自己的文章,请原谅博主成为一个卑微的IT民工!