如何在Ubuntu和其他Linux发行版上更新Grub
在本教程中,我们将学习在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菜单。