在这篇文章中,你将学习在 Ubuntu 或任何其它 Linux 发行版上更新 grub 。你也将学习一个或两个关于更新这个 grub 过程如何工做的事情。html
Ubuntu 和不少其它的 Linux 发行版提供一个易使用的称为 update-grub
命令行实用程序。node
为更新 grub ,你所要的所有工做就是使用 sudo
在终端中运行这个命令。linux
sudo update-grub
复制代码
你应该看到一个像这样的输出:git
[email protected]:~$ 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
之间感到惧怕或不知所措。这两个命令执行相同的动做。github
大约在 10 年前,当 grub2 刚刚被引进时,update-grub2
命令也被引进。如今,update-grub2
只是一个连接到 update-grub
的符号,它们都更新 grub2 配置(由于 grub2 是默认的)。ubuntu
它多是,你的 Linux 发行版可能没有可用的 update-grub
命令。bash
在这种状况下你该作什么?你如何在这样一个 Linux 发行版上更新 grub ?工具
在这里不须要惊慌。update-grub
命令只是一个入口,用于运行 grub-mkconfig -o /boot/grub/grub.cfg
来生成 grub2 配置文件。学习
这意味着你能够在任意 Linux 发行版上使用下面的命令更新 grub :atom
sudo grub-mkconfig -o /boot/grub/grub.cfg
复制代码
固然,记住 update-grub
命令比上面的命令容易不少,这是为何它在一开始被建立的缘由。
当你安装一个 Linux 发行版时,它(一般)要求你安装 grub 启动引导程序。
grub 的一部分安装在 MBR/ESP 分区上。grub 的剩余部分保留在 Linux 发行版的 /boot/grub
目录中。
依据它的 man 页面,update-grub
经过查找 /boot
目录来工做。全部以 vmlinuz- 开头的文件将被做为内核来对待,而且它们将获得一个 grub 菜单项。它也将为与所找到内核版本相同的 ramdisk 镜像添加 initrd 行。
它也使用 os-prober 为其它操做系统查找全部磁盘分区。若是找到其它操做系统,它添加它们到 grub 菜单。
在有不少场景下你须要更新 grub。
假设你修改 grub 配置文件(/etc/default/grub
)以 更改默认启动顺序 或减小默认启动时间。除非你更新 grub ,不然你的修改将不会生效。
另外一种状况是,你在同一个电脑系统上安装多个 Linux 发行版。
例如,在个人 Intel NUC 上,我有两个磁盘。第一个磁盘有 Ubuntu 19.10 ,而且我在其上面安装了 Ubuntu 18.04 。第二个操做系统(Ubuntu 18.04)安装了其本身的 grub ,如今 grub 启动屏幕由 Ubuntu 18.04 grub 控制。
在第二个磁盘上,我安装了 MX Linux ,可是此次我没有安装 grub。我但愿现有的 grub(由 Ubuntu 18.04 控制)来处理全部的操做系统项目。
如今,在这种状况中,在 Ubuntu 18.04 上的 grub 须要更新,以便它可以看到 MX Linux 。
如上图所示,当我更新 grub 时,它在 18.04 上找到不少安装的 Linux 内核, 以及在不一样的分区上 Ubntu 19.10 和 MX Linux 。
若是你想让 MX Linux 控制 grub ,我可使用 grub-install 命令来在 MX Linux 上安装 grub,而后在 MX Linux 上的 grub 将开始控制 grub 启动屏幕。你已经明白这点,对吧?
使用一个像 Grub Customizer 的 GUI 工具是在 grub 中进行更改的一种简单的方法。
最初,我打算保持它为一篇短文做为一种快速提示。可是后来我想解释一些与之相关的东西,以便(相对)新的 Linux 用户可以学到更多,而不只仅是一个简单命令。
你喜欢它吗?你有一些问题或建议吗?请随意发表评论。
做者:Abhishek Prakash 选题:lujun9972 译者:robsean 校对:wxy