12.29 如何在 Ubuntu 和其它 Linux 發行版上更新 grub

如何在 Ubuntu 和其它 Linux 發行版上更新 grub

在這篇文章中,你將學習在 Ubuntu 或任何其它 Linux 發行版上更新 grub 。你也將學習一個或兩個關於更新這個 grub 過程如何工作的事情。-- Abhishek Prakash(作者)

在這篇文章中,你將學習在 Ubuntu 或任何其它 Linux 發行版上更新 grub 。你也將學習一個或兩個關於更新這個 grub 過程如何工作的事情。

如何更新 grub

Ubuntu 和很多其它的 Linux 發行版提供一個易使用的稱為 update-grub 命令行實用程序。

為更新 grub ,你所要的全部工作就是使用 sudo 在終端中運行這個命令。

<code>sudo update-grub/<code>

你應該看到一個像這樣的輸出:

<code>[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/<code>

你可能看到一個類似的稱為 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 :

<code>sudo grub-mkconfig -o /boot/grub/grub.cfg/<code>

當然,記住 update-grub 命令比上面的命令容易很多,這是為什麼它在一開始被創建的原因。

update-grub 是如何工作的?

當你安裝一個 Linux 發行版時,它(通常)要求你安裝 grub 啟動引導程序 。

grub 的一部分安裝在 MBR/ESP 分區上。grub 的剩餘部分保留在 Linux 發行版的 /boot/grub 目錄中。

依據它的 man 頁面 ,update-grub 通過查找 /boot 目錄來工作。所有以 vmlinuz- 開頭的文件將被作為內核來對待,並且它們將得到一個 grub 菜單項。它也將為與所找到內核版本相同的 ramdisk 鏡像添加 initrd 行。

它也使用 os-prober 為其它操作系統查找所有磁盤分區。如果找到其它操作系統,它添加它們到 grub 菜單。

如何在 Ubuntu 和其它 Linux 發行版上更新 grub

Representational image of Grub Menu


為什麼你需要更新 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 。

如何在 Ubuntu 和其它 Linux 發行版上更新 grub

如上圖所示,當我更新 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 用戶能夠學到更多,而不僅僅是一個簡單命令。

你喜歡它嗎?你有一些問題或建議嗎?請隨意發表評論。


via: https://itsfoss.com/update-grub/

作者: Abhishek Prakash 選題: lujun9972 譯者: robsean 校對: wxy

本文由 LCTT 原創編譯, Linux中國 榮譽推出


分享到:


相關文章: