如何在Ubuntu和其它Linux發(fā)行版上更新grub
在這篇文章中,你將學(xué)習(xí)在 Ubuntu 或任何其它 Linux 發(fā)行版上更新 grub 。你也將學(xué)習(xí)一個(gè)或兩個(gè)關(guān)于更新這個(gè) grub 過程如何工作的事情。
如何更新 grub
Ubuntu 和很多其它的 Linux 發(fā)行版提供一個(gè)易使用的稱為 update-grub 命令行實(shí)用程序。
為更新 grub ,你所要的全部工作就是使用 sudo 在終端中運(yùn)行這個(gè)命令。
sudo update-grub
你應(yīng)該看到一個(gè)像這樣的輸出:
[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-genericFound initrd image: /boot/initrd.img-5.0.0-37-genericFound linux image: /boot/vmlinuz-5.0.0-36-genericFound initrd image: /boot/initrd.img-5.0.0-36-genericFound linux image: /boot/vmlinuz-5.0.0-31-genericFound initrd image: /boot/initrd.img-5.0.0-31-genericFound Ubuntu 19.10 (19.10) on /dev/sda4Found MX 19 patito feo (19) on /dev/sdb1Adding boot menu entry for EFI firmware configurationdone
你可能看到一個(gè)類似的稱為 update-grub2 的命令。不需要在 update-grub 和 update-grub2 之間感到害怕或不知所措。這兩個(gè)命令執(zhí)行相同的動(dòng)作。
大約在 10 年前,當(dāng) grub2 剛剛被引進(jìn)時(shí),update-grub2 命令也被引進(jìn)。現(xiàn)在,update-grub2 只是一個(gè)鏈接到 update-grub 的符號(hào),它們都更新 grub2 配置(因?yàn)?grub2 是默認(rèn)的)。
不能找到 update-grub 命令?這里是在這種情況下該做什么
它可能是,你的 Linux 發(fā)行版可能沒有可用的 update-grub 命令。
在這種情況下你該做什么?你如何在這樣一個(gè) Linux 發(fā)行版上更新 grub ?
在這里不需要驚慌。update-grub 命令只是一個(gè)入口,用于運(yùn)行 grub-mkconfig -o /boot/grub/grub.cfg 來生成 grub2 配置文件。
這意味著你可以在任意 Linux 發(fā)行版上使用下面的命令更新 grub :
sudo grub-mkconfig -o /boot/grub/grub.cfg
當(dāng)然,記住 update-grub 命令比上面的命令容易很多,這是為什么它在一開始被創(chuàng)建的原因。
update-grub 是如何工作的?
當(dāng)你安裝一個(gè) Linux 發(fā)行版時(shí),它(通常)要求你安裝 grub 啟動(dòng)引導(dǎo)程序。
grub 的一部分安裝在 MBR/ESP 分區(qū)上。grub 的剩余部分保留在 Linux 發(fā)行版的 /boot/grub 目錄中。
依據(jù)它的 man 頁面,update-grub 通過查找 /boot 目錄來工作。所有以 vmlinuz- 開頭的文件將被作為內(nèi)核來對(duì)待,并且它們將得到一個(gè) grub 菜單項(xiàng)。它也將為與所找到內(nèi)核版本相同的 ramdisk 鏡像添加 initrd 行。
它也使用 os-prober 為其它操作系統(tǒng)查找所有磁盤分區(qū)。如果找到其它操作系統(tǒng),它添加它們到 grub 菜單。
Representational image of Grub Menu
為什么你需要更新 grub ?
在有很多場(chǎng)景下你需要更新 grub。
假設(shè)你修改 grub 配置文件(/etc/default/grub)以 更改默認(rèn)啟動(dòng)順序 或減少默認(rèn)啟動(dòng)時(shí)間。除非你更新 grub ,否則你的修改將不會(huì)生效。
另一種情況是,你在同一個(gè)電腦系統(tǒng)上安裝多個(gè) Linux 發(fā)行版。
例如,在我的 Intel NUC 上,我有兩個(gè)磁盤。第一個(gè)磁盤有 Ubuntu 19.10 ,并且我在其上面安裝了 Ubuntu 18.04 。第二個(gè)操作系統(tǒng)(Ubuntu 18.04)安裝了其自己的 grub ,現(xiàn)在 grub 啟動(dòng)屏幕由 Ubuntu 18.04 grub 控制。
在第二個(gè)磁盤上,我安裝了 MX Linux ,但是這次我沒有安裝 grub。我希望現(xiàn)有的 grub(由 Ubuntu 18.04 控制)來處理所有的操作系統(tǒng)項(xiàng)目。
現(xiàn)在,在這種情況中,在 Ubuntu 18.04 上的 grub 需要更新,以便它能夠看到 MX Linux 。
如上圖所示,當(dāng)我更新 grub 時(shí),它在 18.04 上找到很多安裝的 Linux 內(nèi)核, 以及在不同的分區(qū)上 Ubntu 19.10 和 MX Linux 。
如果你想讓 MX Linux 控制 grub ,我可以使用 grub-install 命令來在 MX Linux 上安裝 grub,然后在 MX Linux 上的 grub 將開始控制 grub 啟動(dòng)屏幕。你已經(jīng)明白這點(diǎn),對(duì)吧?
使用一個(gè)像 Grub Customizer 的 GUI 工具是在 grub 中進(jìn)行更改的一種簡(jiǎn)單的方法。
最后…
最初,我打算保持它為一篇短文作為一種快速提示。但是后來我想解釋一些與之相關(guān)的東西,以便(相對(duì))新的 Linux 用戶能夠?qū)W到更多,而不僅僅是一個(gè)簡(jiǎn)單命令。

















 
 
 












 
 
 
 