如何向grub2添加新内核


24

我们如何向grub2添加内核?我知道我们可以使用以前的版本进行处理,但是似乎已经改变。我们应该编辑哪些文件?

Answers:


11

要将新内核添加到grub2:

  1. 将您的内核移至/ boot /
  2. 运行sudo update-grub

update-grub将在您的计算机上扫描内核,并在启动时创建可用内核的列表。

为了让您选择在引导时引导哪个内核,您可能必须在BIOS发布后立即按下SHIFT按钮。

您可以编辑/ etc / default / grub来更改默认的引导选项和所需的参数。

非Debian Linux

请参阅供您使用的grub注释,例如这些Fedora GRUB 2文档

  • grub2-mkconfig -o /boot/grub2/grub.cfg

如果您有2个Linux发行版而没有单独的/ boot分区怎么办?您是否必须将内核从辅助rootfs复制到主要rootfs?还是“ grub-update”还会检查其他分区中的新内核?
jiggunjer

这是一个单独的问题,但是使用的任何可执行文件都应/boot/正确读取并生成。/etc/default/grub每个操作系统的grub配置文件(例如:)可能有所不同,因此请确保将它们同步。最佳实践可能是让一个操作系统为您生成grub条目。
EarthmeLon

这并不是一个单独的问题,OP没有指定他的配置,双靴子a很常见。认为它可以为您的答案增加价值,这已经很好。因此,换句话说,辅助操作系统甚至不需要它自己的grub,来自主操作系统的grub将扫描所有分区上的/ boot文件夹并找到内核。
jiggunjer

1
如何将内核移至/ boot?mv kernel /boot?在哪里可以找到可以移至/ boot的内核?
Thomas Weller

3

我正在运行Fedora 20,更新grub2的命令是grub2-mkconfig。同样,整个过程可以通过内核构建make来完成:

make xconfig (make config, etc)
make bzImage
make modules
sudo make modules_install
sudu make install

此步骤(最后一步)会将内核复制到/ boot,并更新grub2引导加载程序。非常简单,在我的情况下它可以正常工作。我唯一的问题是,您实际上并没有真正学习该过程的任何重要细节,而是一切都是自动化的。如果您有问题并且必须找出问题所在,则可能会卡住。


sudo make install告诉我:Cannot find LILO
勒内Nyffenegger

可能您正在构建内核的旧版本?LILO用于3.x之前的内核版本(不确定确切的版本)您正在使用什么发行版?
philbrooksjazz

这是在Arch Linux上,带有最新的rc(4.6.0-rc5),我从Linux Torvalds仓库中git克隆了它。
雷内·尼芬格

0

/boot/grub/grub.cfgmenu.lst从grub1 替换的文件

在Debian / Ubuntu系统中,这是由生成的update-grub,它/etc/grub.d使用类似于的方式运行脚本run-parts


0

如果新内核是用dpkg安装的(就像它是用make-kpkg编译的一样),则update-grub2就足够了(它也不会删除现有的内核)。


0

您不再“编辑”添加内核。它扫描并动态添加它们。如果您必须添加一个扫描未找到,则应查看/etc/grub.d并进行修改或复制和custom40(它最后添加了,因此在将其放在顶部之前是测试配置的好地方清单)。


0

尝试update-grubupdate-grub2取决于您的grub版本。您将必须以root身份运行它们sudo。当我安装第二个Linux发行版而不重新安装grub时,这对我有用。


我意识到我的答案与Alan的答案相似,但是我添加了grub2命令。
Beatgammit 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.