编译Linux内核并使用UEFI启动

编译Linux内核并使用UEFI启动

我最近在我的 Kubuntu 计算机上编译并安装了 Linux 内核。我这样做的方法是,我从 kernel.org 下载了源代码 .tar.gz,将其解压并使用以下命令(在源代码包的顶级目录中运行)来编译和安装它:

make oldconfig
make -j4
sudo make modules_install
sudo make install

然而,当我重新启动时,我收到一条消息说“错误:内存不足”,当我按下一个键继续时,它给出了一个内核恐慌屏幕,显示“不同步:VFS:无法在未知块上安装根文件系统(0 ,0)”。

我的其他内核工作正常,所以我仍然可以正常启动。但我很想知道为什么该内核不起作用以及我可以做些什么来让它工作。

我尝试了几个版本(5.9.12、5.9.14 和 5.10.2)并得到了相同的结果,所以确切的版本似乎不是这里的问题。但我知道我以前一直这样编译内核并且它们运行没有问题。所以我尝试了很多东西,最终发现 UEFI 似乎是罪魁祸首。如果我将它安装在旧系统上,这个相同的内核将可以工作。安全启动在相关的 (UEFI) PC 上被禁用,因此我认为这与安全启动密钥无关。这似乎与 UEFI 有关,但与安全启动无关,这导致了它的崩溃。

然而,在搜索互联网时,我找不到任何关于使用 UEFI 启动已编译的 Linux 内核的信息。那么我真的需要做一些额外的事情吗?或者问题是别的什么?

编辑:我不明白为什么我的问题被关闭。但如果需要更多说明,我会问如下:如果我从 kernel.org 下载 linux 内核源代码或从此处构建 Ubuntu 内核的代码(https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.10.4/)并使用上面的命令编译它,我发现它可以在 BIOS 中正常启动,但不能在 UEFI 中启动。我的问题是为什么。

答案1

sudo update-initramfs 应该可以解决问题。

相关内容