定制内核在Centos 7上产生不可引导的initramfs

时间:2019-06-02 02:03:21

标签: linux-kernel centos kernel centos7 initramfs

我一直在构建自己的内核(4.19.37),并且在构建(library(tidyr) melt(setDT(data), measure = patterns('^score', "^weight"), value.name = c("score", "weight")) %>% group_by(group, type) %>% ungroup %>% complete(group, type, score, fill = list(n = 0)) )或安装(make + make install_modules)期间没有问题。在执行make install之前,一切似乎都正常。执行此命令时,grub在grub2-mkconfig -o /boot/grub2/grub.cfg中找到我现有的内核和新的vmlinuz-*内核,以及它们对应的/boot/。但是,此时系统无限期挂起(>几个小时)。 initramfs-*.img似乎没有停止它,我必须重新启动。我调查了这个问题,发现所有可能是问题的是对可引导操作系统的删除磁盘的探测,通过删除它们并在[[{1}}和Ctrl+C中添加GRUB_DISABLE_OS_PROBER=true该SE职位] [1]。都没有帮助。

重新启动后,我最终进入了/etc/default/grub命令行,大概是因为grub>从未完成并破坏了grub配置文件。在这里,我可以加载新旧内核,也可以加载initramfs,没有任何问题,但是执行引导时,我会出现内核崩溃:

grub2-mkconfig

[![结束内核崩溃-不同步:VFS:无法在未知块(1,0)上安装根fs] [2]] [2]

很自然地,我以为我的end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0) 发生了问题,这是由我的构建过程创建的。作为实验,我测试了是否可以加载新内核,但使用旧的initramfs(4.19.10),并且确实可以引导到initramfs-4.19.37.img中。但是我不能用新的initramfs做相反的旧内核。因此,使用新的initramfs图像有些麻烦。

变得越来越聪明,我的上一个实验是用emergency mode挂载新旧的initramfs映像。它们都成功安装,没有错误,并且似乎具有相同的文件结构。我还比较了新的mount和旧的.config文件的内核版本,差异很小。

其他一些注释/观察:

  • 在上图中,您可以看到List of all partions:没有产生任何结果,因此我想知道文件系统类型是否存在问题?我的硬盘驱动器是xfsinitramfs的文件系统是什么? CPIO?
  • grub>命令行上,ls /产生了我期望在/boot中看到的内容。它包含我所有的vmlinuz-*initramfs-*.img文件
  • 我的文件系统为xfs
  • 我尝试了其他各种内核版本,但结果相同
  • 我有两次成功的构建和安装,一次是现有内核(4.19.10),这是一次升级,第二次是使用具有low-latency抢占模型的同一内核。我无法为自己的一生弄清楚当时的所作所为。

最后一个问题是-这些构建的initramfs怎么了?我还能做些什么来验证其完整性?为.config文件系统构建内核时,我应该做任何xfs更改吗?


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

1 个答案:

答案 0 :(得分:0)

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

yum删除内核

yum更新