在這篇文章中,你將學習在 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