首页 > 解决方案 > 自定义构建的内核无法正确安装 - Centos7

问题描述

我正在尝试在我的机器上构建和安装多个内核,所有版本完全相同(4.19.10此处找到),但具有不同的抢占模型(用于基准测试)。我在最初的 vanilla 内核构建和安装方面取得了成功,但所有后续安装都无法启动。

我将内核构建为 rpm 包。同样,除了 2 处更改外,所有内容都完全相同make menuconfig

所有这些(有和没有CONFIG_RT_PREEMPT补丁)都构建良好,没有错误。我正在安装rpm -ivh kernel-4.19.10_lld-1.x86_64.rpm,在达到 100% 并挂起之前,它似乎是成功的。最终,我终止了安装ctrl+c并检查正在运行的内容,top并且可以看到grub2-editenv仍在运行。

从这里开始,可能会发生一些不同的事情,但结果都是一样的。重新启动通常会挂起,第二次重新启动要么将我带到 grub 命令行,要么返回带有Welcome to emergency mode!.

我可以将新内核添加到 grub 中grub2-mkconfig -o /boot/grub2/grub.cfg,这没有问题。但无论是直接从 grub 命令行选择启动映像,还是将其添加到 grub 并在启动期间选择它,我都会得到相同的文本:

error: invalid magic number.
error: you need to load the kernel first

我认识到这里可能没有足够的信息来确定我的问题,但我希望至少能得到一些指导并回答几个问题:

谢谢


更新:我能够rpm -Uvh kernel-4.19.10_lld-1.x86_64.rpm成功升级我的内核并让它正确启动,尽管我不能用其他内核之一做到这一点。不确定这表明什么,但我认为问题可能是尝试并行安装相同的内核版本,并且构建本身可能还可以。


更新 2:我放弃了 rpm 解决方案并尝试了make modules_installmake install. 安装没有问题,但运行grub2-mkconfig挂起。引导在黑屏时挂起,重新引导将我带到 grub 命令行。然后手动加载内核不会出现任何错误,但在识别硬件后启动最终会导致内核崩溃。消息是Kernel Panic - not syncing: VFS: Unable to mount

可能相关 - 我在 VM(intel i7 硬件)上构建了第一个(工作)内核,但一直在 intel atom e3950 芯片组上构建其他内核。我认为这可能是问题所在,因为 menuconfig 最终会有所不同。我认为我还没有在那个芯片组上建立一个健康的构建。

标签: linux-kernelcentosrpmbuild

解决方案


推荐阅读