如何在Ubuntu和其他Linux发行版上更新Grub

时间:2020-01-09 10:45:44  来源:igfitidea点击:

在本教程中,我们将学习在Ubuntu或者任何其他Linux发行版上更新grub。我们还将学到有关此grub更新过程如何工作的一两件事。

如何更新grub

Ubuntu和许多其他Linux发行版提供了一个方便的命令行实用程序,称为update-grub。

要更新grub,我们所需要做的就是在终端中使用sudo运行此命令。

sudo update-grub

我们应该看到如下输出:

theitroad@localhost:~$ sudo update-grub
[sudo] password for abhishek: 
Sourcing file `/etc/default/grub'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.0.0-37-generic
Found initrd image: /boot/initrd.img-5.0.0-37-generic
Found linux image: /boot/vmlinuz-5.0.0-36-generic
Found initrd image: /boot/initrd.img-5.0.0-36-generic
Found linux image: /boot/vmlinuz-5.0.0-31-generic
Found initrd image: /boot/initrd.img-5.0.0-31-generic
Found Ubuntu 19.10 (19.10) on /dev/sda4
Found MX 19 patito feo (19) on /dev/sdb1
Adding boot menu entry for EFI firmware configuration
done

我们可能会看到类似的命令update-grub2. 无需在update-grub和update-grub2之间惊慌或者困惑。这两个命令都执行相同的操作。

在刚引入grub2时,还引入了update-grub2命令。今天,update-grub2只是指向update-grub的符号链接,并且两者都更新grub2的配置(因为grub2是默认设置)。

找不到update-grub命令?在这种情况下,该怎么办

Linux发行版可能没有可用的update-grub命令。

在这种情况下我们会怎么做?我们如何在这样的Linux发行版上更新grub?

update-grub命令只是用于运行" grub-mkconfig -o /boot/grub/grub.cfg"以生成grub2配置文件的存根。

这意味着我们可以在任何Linux发行版上使用以下命令更新grub:

sudo grub-mkconfig -o /boot/grub/grub.cfg

当然,记住update-grub命令比上面的命令容易得多,这就是首先创建它的原因。

update-grub如何工作?

当我们安装Linux发行版时,它通常会要求我们安装grub引导加载程序。

grub的一部分安装在MBR / ESP分区上。其余的grub位于Linux发行版的/ boot / grub目录中。

按照其手册页,update-grub通过查看/ boot目录来工作。所有以vmlinuz开头的文件都将被视为内核,并且它们将获得grub菜单项。它还会为与发现的内核版本相同的ramdisk映像添加initrd行。

它还使用os-prober查看其他操作系统的所有磁盘分区。如果找到其他操作系统,则会将其添加到grub菜单。