gpt4 book ai didi

linux-kernel - 自定义构建的内核在 Centos 7 上生成不可引导的 initramfs

转载 作者:行者123 更新时间:2023-12-04 19:42:00 25 4
gpt4 key购买 nike

我一直在构建自己的内核(4.19.37)并且在构建(make)或安装(make install_modules + make install)期间没有问题。在我执行 grub2-mkconfig -o /boot/grub2/grub.cfg 之前,一切似乎都很顺利.执行此命令时,grub 会找到我现有的和新的 vmlinuz-* /boot/ 中的内核以及它们对应的initramfs-*.img .但是,此时系统无限期挂起(> 几个小时)。 Ctrl+C似乎没有停止它,我必须重新启动。我已经研究过这个问题,我发现可能是一个问题是探测可引导操作系统的删除磁盘,我已经通过删除它们和添加 GRUB_DISABLE_OS_PROBER=true 来消除它。至/etc/default/grub根据 this SE post .两者都没有帮助。

重新启动后,我最终到达 grub>命令行,大概是因为grub2-mkconfig从未完成并损坏了 grub 配置文件。在这里,我可以毫无问题地加载新旧内核以及 initramfs,但是当我执行引导时,我得到内核 panic :

end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0)

end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0)

当然,我的假设是我的 initramfs-4.19.37.img 有问题。这是由我的构建过程创建的。作为一个实验,我测试了我是否可以加载新内核,但使用旧的 initramfs (4.19.10),并且确实可以启动到 emergency mode .然而,我不能用新的 initramfs 做相反的旧内核。所以我的新 initramfs 图像有些可疑。

变得更聪明了,我的最后一个实验是使用 mount 安装新旧 initramfs 镜像.它们都成功安装且没有错误,并且似乎具有相同的文件结构。我还比较了我的新旧 .config内核构建的文件,差异是微不足道的。

其他一些注释/观察:
  • 在上图中,您可以看到 List of all partions:什么都不产生,所以我想知道文件系统类型是否有问题?我的硬盘是xfsinitramfs 的文件系统是什么? ? CPIO?
  • grub>命令行,ls /产生我希望在 /boot 中看到的内容.它包含我所有的vmlinuz-*initramfs-*.img文件
  • 我的文件系统是 xfs
  • 我尝试了各种其他内核版本,结果相同
  • 我有两次成功构建和安装,一次是现有内核 (4.19.10),它是升级,第二次使用相同的内核和 low-latency抢占模式。我一生都无法弄清楚我当时做了什么不同的事情。

  • 所以最后的问题是 - initramfs 有什么问题?形成这些构建?我还能做些什么来验证它的完整性?有没有 .config在为 xfs 构建内核时我应该做的更改文件系统?

    免责声明:所以这实际上是 [this question][3] 的延续,但我稍微简化了问题。那里的一些背景信息可能是相关的。

    最佳答案

    使用 yum update 更新内核后,使用新内核重新启动 VM,您会收到内核崩溃错误。
    以下命令将解决此问题。

    yum 删除内核

    百胜更新

    关于linux-kernel - 自定义构建的内核在 Centos 7 上生成不可引导的 initramfs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56411718/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com