在本文中,您将学习在Ubuntu或任何其他Linux发行版上更新grub。您还将了解有关更新grub过程如何工作的一两件事。如何更新grubUbuntu和许多其他Linux发行版提供了一个易于使用的命令行实用程序,称为update-grub。要更新grub,您只需使用sudo在终端中运行此命令。sudoupdate-grub你应该看到这样的输出:[emailprotected]:~$sudoupdate-grub[sudo]passwordforabhishek:Sourcingfile`/etc/default/grub'Generatinggrubconfigurationfile...Foundlinux映像:/boot/vmlinuz-5.0.0-37-genericFoundinitrd映像:/boot/initrd.img-5.0.0-37-genericFoundlinux映像:/boot/vmlinuz-5.0.0-36-genericFoundinitrd映像:/boot/initrd.img-5.0.0-36-genericFoundlinux映像:/boot/vmlinuz-5.0.0-31-genericFoundinitrd映像:/boot/initrd.img-5.0.0-31-genericFoundUbuntu19.10(19.10)on/dev/sda4FoundMX19patitofeo(19)on/dev/sdb1AddingbootmenuentryforEFIfirmwareconfigurationdone你可能会看到一个名为update-grub2的类似命令。无需在update-grub和update-grub2之间被吓倒或不知所措。这两个命令执行相同的操作。大约10年前,当首次引入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:sudogrub-mkconfig-o/boot/grub/grub.cfg当然,请记住update-grub命令比上面的命令简单得多,这里是为什么首先创建它的原因。更新grub如何工作?当您安装Linux发行版时,它(通常)要求您安装grub引导加载程序。部分grub安装在MBR/ESP分区上。grub的其余部分保存在Linux发行版的/boot/grub目录中。根据其手册页,update-grub通过查看/boot目录来工作。所有以vmlinuz-开头的文件都将被视为内核,并且它们将获得一个grub菜单项。它还将为具有与找到的相同内核版本的ramdisk映像添加initrd行。它还使用os-prober查找其他操作系统的所有磁盘分区。如果找到其他操作系统,它会将它们添加到grub菜单中。Grub菜单的代表性图片为什么需要更新grub?有很多场景需要更新grub。假设您修改grub配置文件(/etc/default/grub)以更改默认引导顺序或减少默认引导时间。除非您更新grub,否则您的更改不会生效。另一种情况是当你在同一个计算机系统上安装多个Linux发行版时。例如,在我的英特尔NUC上,我有两个磁盘。第一个磁盘有Ubuntu19.10,我在上面安装了Ubuntu18.04。第二个操作系统(Ubuntu18.04)安装了自己的grub,现在grub引导屏幕由Ubuntu18.04grub控制。在第二张盘上,我安装了MXLinux,但是这次没有安装grub。我希望现有的grub(由Ubuntu18.04控制)处理所有操作系统项目。现在,在这种情况下,需要更新Ubuntu18.04上的grub,以便它可以看到MXLinux。如上图,我更新grub时,发现18.04上安装了很多Linux内核,不同分区上安装了Ubntu19.10和MXLinux。如果你想让MXLinux控制grub,我可以使用grub-install命令在MXLinux上安装grub,然后MXLinux上的grub就会开始控制grub开机画面。你已经明白这一点,对吧?使用像GrubCustomizer这样的GUI工具是在grub中进行更改的简单方法。最后...最初,我打算将它保留为一篇简短的文章,作为一种快速提示。但是接下来我想解释一下与之相关的一些东西,以便(相对)新的Linux用户可以学到的不仅仅是一个简单的命令。
