首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >即使内核成功编译,也无法安装它

即使内核成功编译,也无法安装它
EN

Stack Overflow用户
提问于 2020-06-20 22:52:29
回答 1查看 1.2K关注 0票数 3

我正试图在我的ubuntu20.04中安装一个linux-Kernel version 4.9.228。内核编译成功,没有任何错误。我还执行了以下命令:

代码语言:javascript
复制
sudo make modules_install install

当我重新启动我的系统时,为了检查它是否做了正确的输入,我检查了/boot/目录下的文件:

  • System.map-4.9.228
  • vmlinuz-4.9.228
  • initrd.img-4.9.228
  • config-4.9.228

我不知道为什么,但是当我运行uname -r时。它没有更新我的版本。上面仍然写着5.4.0-37-generic

如果我遗漏了什么,请指点我。

注意:所有这些的唯一目的是学习如何添加系统调用和如何编译内核。如果你有什么建议的话,我很乐意接受。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-21 10:45:04

您可能已经成功地安装了不同的内核版本,但是为了引导到它,您需要告诉引导加载程序这样做。

我将假设您使用GRUB2作为引导加载程序,因为它是大多数发行版(包括Ubuntu )的标准。为了引导新内核,您有多个选项。

备选案文1

这是最安全和建议的选项。

  1. 编辑GRUB配置文件/etc/default/grub (您需要是根文件,所以使用类似于sudo visudo nano的东西),并确保有GRUB_TIMEOUT=NN是几秒。如果你没有,那就把它添加到一个新的行。您希望N至少为5或10,以便在GRUB启动时有时间选择正确的内核版本。

此外,确保您做了而不是有以下任何一行(您不应该有它们,但是如果您这样做了,则删除它们或注释它们):

GRUB_TIMEOUT_STYLE=hidden GRUB_DISABLE_RECOVERY=“真”GRUB_DISABLE_SUBMENU=y GRUB_HIDDEN_TIMEOUT=N

  1. 保存对/etc/default/grub的更改并运行sudo update-grub。这将检测当前安装的内核,并在启动计算机并输入GRUB.

时将它们添加到可引导列表中。

  1. 重新启动您的PC,当GRUB启动时,您将看到一个选项列表。如果您不做任何事情,默认内核将启动,否则您可以使用箭头键和ENTER键导航到"Advanced“,在那里您将找到可用内核的列表,并且您将能够选择您喜欢的内核。

它应该是这样的:

选项2

只有在选项1不起作用时才使用它作为后盾(应该这样做,但您永远也不知道)。这并不像选项1那样干净,因为它改变了默认内核,并且更改可能也会被当前内核的升级所覆盖(从技术上讲,更新默认版本正是这样做的)。

  1. 通过更改/initrd.img/vmilunuz两个符号链接来指向内核和initrd映像的正确版本,从而使内核成为默认的内核。这可以手动完成,也可以通过linux-update-symlinks命令完成。

$linux版本列表-路径.获取正确的版本和路径.$ sudo linux更新-符号链接安装版本路径

  1. 运行sudo update-grub让GRUB检测更改.

  1. 重新启动您的PC.

选项3

从GRUB命令行手动引导到所需的内核。这是一个高级选项,我只是把它作为最后的手段,除非您已经完全破坏了系统配置,否则您永远不需要这样做。

  1. 将PC重新引导到GRUB中,一旦您看到它,请按C键进入GRUB命令行。
  2. 从现在起跟随this answer

无论如何,请记住,如果您不确定自己在做什么,那么在您自己的机器上进行内核开发并不是一个好主意。我建议您使用虚拟机对内核进行实验,这样,如果有任何问题,您只需丢弃它并创建一个新的。

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

https://stackoverflow.com/questions/62492610

复制
相关文章

相似问题

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