首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >升级内核后,CentOS 7停留在grub提示符下

升级内核后,CentOS 7停留在grub提示符下
EN

Unix & Linux用户
提问于 2019-05-16 19:28:16
回答 1查看 2.3K关注 0票数 2

我试着用百胜升级内核,当我运行时

代码语言:javascript
复制
[root@AFIBAMBOO bin]# grub2-mkconfig -o /boot/grub2/grub.cfg
No path or device is specified. 
Usage: grub2-probe [OPTION...] [OPTION]... [PATH|DEVICE] 
Try 'grub2-probe --help' or 'grub2-probe --usage' for more information.
No path or device is specified. Usage: grub2-probe [OPTION...] [OPTION]... [PATH|DEVICE] 
Try 'grub2-probe --help' or 'grub2-probe --usage' for more information. 
No path or device is specified. Usage: grub2-probe [OPTION...] [OPTION]... [PATH|DEVICE] 
Try 'grub2-probe --help' or 'grub2-probe --usage' for more information.
EN

回答 1

Unix & Linux用户

发布于 2019-05-16 21:11:42

顺便说一句

问题是在AskUbuntu S&E中解决,它引入了grub2-probe,因为内核更新脚本中断后的grub.cfg

检查您的grub.cfg是否丢失缩进并重复grub2-mkconfig

关于通过yum更新内核的Detailed描述:

CentOS通过RPM包分发内核,并将其存储在自己的存储库中。

使用存储库时,可以安装/删除/重新安装.RPM包裹。

存储内核的RPM包有postinstposttrans部分,这些部分完成了在CentOS中采用新内核的所有必要步骤。这个步骤包括一些重要的内容,如initramfs生成,在引导加载器中设置新条目.

让我们在3.10.0-957.el7.x86_64.rpm后安装部分中看到:

代码语言:javascript
复制
/usr/sbin/new-kernel-pkg --package kernel --install 3.10.0-957.el7.x86_64 || exit $?

译后

代码语言:javascript
复制
if [ -x /usr/sbin/weak-modules ]
then
    /usr/sbin/weak-modules --add-kernel 3.10.0-957.el7.x86_64 || exit $?
fi
/usr/sbin/new-kernel-pkg --package kernel --mkinitrd --dracut --depmod --update 3.10.0-957.el7.x86_64
rc=$?
if [ $rc != 0 ]; then
    /usr/sbin/new-kernel-pkg --remove 3.10.0-957.el7.x86_64
    ERROR_MSG="ERROR: installing kernel-3.10.0-957.el7.x86_64: no space left for creating initramfs. Clean up /boot partition and re-run '/usr/sbin/new-kernel-pkg --package kernel --mkinitrd --dracut --depmod --install 3.10.0-957.el7.x86_64'"
    if [ -e /usr/bin/logger ]; then
        /usr/bin/logger -p syslog.warn "$ERROR_MSG"
    elif [ -e /usr/bin/cat ]; then
        /usr/bin/cat "$ERROR_MSG" > /dev/kmsg
    fi
    echo "$ERROR_MSG"
    exit $rc
fi
/usr/sbin/new-kernel-pkg --package kernel --rpmposttrans 3.10.0-957.el7.x86_64 || exit $?

这些后置脚本使用new-kernel-pkg脚本,这是grubby项目的一部分。男人8-新内核-prkg写道:

Description新内核pkg是一种用于打包的工具,用于自动安装新内核,包括创建初始ram文件系统映像、更新引导加载程序配置和其他相关任务。

new-kernel-pkg脚本调用grubby ( grubby项目中的程序)来更新引导加载器配置。来自男人8肮脏

Description grubby是一个命令行工具,用于更新和显示grub、lilo、elilo (ia64)、yaboot (powerpc)和zipl (s390)引导加载程序的配置文件信息。它主要用于从安装新内核的脚本中使用,并需要查找有关当前引导环境的信息。

new-kernel-pkg脚本调用grubby的片段:

代码语言:javascript
复制
ARGS="--grub2 -c $grub2Config --add-kernel=$kernelImage $INITRD \
                --copy-default --title \"$title\$debugtitle\" \
                ${mbkernel:+--add-multiboot=\"$mbkernel\"} \
                ${mbargs:+--mbargs=\"$mbargs\"} \
                --args=\"root=$rootdevice $kernargs \$debugargs\" \
                --remove-kernel=\"TITLE=$title\$debugtitle\""
        rungrubby ${ARGS} $makedefault

如果您需要了解如何构建引导加载器配置的更多具体信息,可以使用详细模式(-v选项)运行D22(涉及必要的内核版本和参数)。

因此,没有必要在内核更新后手动调用grub2-mkconfig

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/519357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档