Ubuntu系統的開機全流程介紹及grub美化
前言
之前一直對grub
、boot loader
等概念不甚瞭解,趁著今天國慶假期,梳理以下,並且順便美化一下我的Grub
介面。
以下介紹的詳細參考見於The Linux Booting Process - 6 Steps Described in Detail。
Ubuntu開機經歷的步驟
開啟電源鍵後直到OS開機正常啟動需要經歷以下步驟:
BIOS
BIOS 查詢、載入和執行 boot loader ,
Boot Loader
boot loader 是一段程式,用來選擇並載入 Kernel(即核心)。boot loader 所在的區域叫做 Master Boot Record(MBR),中文翻譯為主引導記錄,是一塊物理介質區域。
Linux系統中的 boot loader 統一都叫做grub
。
Kernel
Kernel執行起來之後就會有一系列的初始化程式和 Run level的程式被執行,這個時候我們的作業系統就跑起來了。
配置 Grub 的個性化主題
一共有四個比較集中的地方可以看到grub
相關的配置:
/usr/share/grub/default/grub
/etc/default/grub
/etc/grub.d
/boot/grub/grub.cfg
逐一介紹如下:
/usr/share/grub/default/grub
參考下面的回答,所有 /usr/share
目錄下的檔案都是 example configuration files
,即都是示例的配置檔案,相當於一個備份區吧,如果你的個性化配置檔案出了什麼問題想恢復到原來的預設配置,那麼這些檔案都可以複製到/etc
資料夾下。/etc
目錄下的檔案都是系統所需要用到的。
/etc/default/grub
/etc/default/grub
is where you can set simple options for many GRUB settings. It is parsed as a shell script.
這個檔案是用來進行簡單的 GRUB 配置的,該檔案可以理解為是一個shell指令碼。編輯該檔案就可以改變 GRUB 的設定。修改完需要執行grub-update
使新配置生效。grub-update
的實際作用就是將相應的修改寫入到/boot/grub/grub.cfg
檔案中,所以作為使用者而言,改動該檔案即可,無需直接修改/boot/grub/grub.cfg
進行個性化配置。
/etc/grub.d
/etc/grub.d
contains shell scripts which generate GRUB configuration (based on settings on/etc/default/grub
).update-grub
(akagrub-mkconfig
) runs these scripts to generate actual GRUB configuration.
/etc/grub.d
目錄下包含了很多用來配置 GRUB 的shell指令碼(這些配置是在/etc/default/grub
配置的基礎上進行的更復雜的配置)。執行grub-update
使新配置生效。
/boot/grub/grub.cfg
/boot/grub/grub.cfg
is where the generated configuration is saved for GRUB to use.
被修改的前兩個檔案執行grub-update
後所生成的檔案就是/boot/grub/grub.cfg
檔案,是 GRUB 實際使用到的配置檔案。
下載主題
在Grub-theme-vimix - Gnome-look.org上下載完主題壓縮包後,參照下圖:
一步步安裝即可。特別的一點是這個主題的製作者還寫了一個安裝指令碼替代使用者執行上述步驟,只不過與該步驟有細微的差別:把主題選在了/usr/share/grub/themes
資料夾下;多了一個對/etc/default/grub
檔案的備份。
配置好後的效果為
相關參考可見於:
- Linux Grub引導介面(啟動介面)美化 - 知乎
- Grub2 開機系統選擇介面美化 - 主題修改_肖朋偉-CSDN部落格_grub美化
- Grub2主題修改和美化--------Linux&Windows_Cat-CSDN部落格_grub主題
更詳細的解釋參考來源
- boot - Difference /usr/share/grub/default/grub and /etc/default/grub? - Ask Ubuntu
- Why so many files relating to grub (/etc/grub.d/, /etc/default/grub, /boot/grub2/grub.cfg)? What is the purpose of each? - Ask Ubuntu
- Grub2/Setup - Community Help Wiki
- GRUB2的配置方法【涉及/etc/default/grub,/etc/grub.d/*】_duanlove(技術路途)專欄-CSDN部落格