2017年3月7日 星期二

[Linux 文章收集] 在 CentOS 7 上設置 grub2

Source From Here 
Preface 
此文章主要以 Things to Know About Grub2 為基礎,而對象是那些開啟 /etc/grub2.cfg /boot/grub2/grub.cfg)編輯開機選單的用戶。 
另外請參閱 上游關於 grub2 的文檔 和 grub 的使用手冊。 

開機選單是自動建立出來的 
請勿嘗試手動編輯開機選單,因為它是按照 /boot/ 目錄內的檔案自動建立出來的。然而你可以調整 /etc/default/grub 檔內定義的通用設定,及在 /etc/grub.d/40_custom 檔內加入個別自訂項目。/etc/default/grub 檔的內容如下: 
  1. GRUB_TIMEOUT=5  
  2. GRUB_DEFAULT=saved  
  3. GRUB_DISABLE_SUBMENU=true  
  4. GRUB_TERMINAL_OUTPUT="console"  
  5. GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet"  
  6. GRUB_DISABLE_RECOVERY="true"  
通用於所有項目的內核選項都透過 GRUB_CMDLINE_LINUX 行來定義。舉個例說,要是你想看見詳細的開機訊息,刪除 rhgb quiet。要是你想看見標準的開機訊息,只刪除 rhgb。執行以下指令便能套用更改了的設定: 
# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-229.14.1.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-229.14.1.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-229.4.2.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-229.4.2.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-229.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-229.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-605f01abef434fb98dd1309e774b72ba
Found initrd image: /boot/initramfs-0-rescue-605f01abef434fb98dd1309e774b72ba.img
done

UEFI 系統上的指令是 grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg 

如何定義預設項目 
若要列出系統開機時顯示的所有選項,請執行以下指令: 
// -F fsUse fs for the input field separator (the value of the FS predefined variable).
# awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux 7 (Core), with Linux 3.10.0-229.14.1.el7.x86_64
1 : CentOS Linux 7 (Core), with Linux 3.10.0-229.4.2.el7.x86_64
2 : CentOS Linux 7 (Core), with Linux 3.10.0-229.el7.x86_64
3 : CentOS Linux 7 (Core), with Linux 0-rescue-605f01abef434fb98dd1309e774b72ba

又或者: 
# grep "^menuentry" /boot/grub2/grub.cfg | cut -d "'" -f2

預設的項目是透過 /etc/default/grub 檔內的 GRUB_DEFAULT 行來定義。不過,要是 GRUB_DEFAULT 行被設定為 saved,這個選項便儲存在 /boot/grub2/grubenv 檔內。你可以這樣檢視它: 
# grub2-editenv list
saved_entry=CentOS Linux (3.10.0-229.14.1.el7.x86_64) 7 (Core)

/boot/grub2/grubenv 檔是不能手動編輯的。請採用以下指令: 
# grub2-set-default 2
# grub2-editenv list
saved_entry=2

留意上述 awk 指令輸出的第一個項目的編號是 0。 

修復模式及緊急模式 
Linux 0-rescue-... 這個選項會令系統進入修復模式。這等同於單獨用戶模式。此外,CentOS 並提供了一個緊急模式。在這模式下,systemd 啟動後便會立刻出現一個指令殼。其它程序都不會被啟動,而主檔案系統將會以唯讀模式掛載。其它檔案系統都不會被掛載。要進入緊急模式,請在 grub2 的選單按 e 鍵來編輯設定。然後在內核選項的末端加入 systemd.unit=emergency.target 
Ps. 如果你與 systemd 關係良好 :-) 你可以在 /usr/lib/systemd/system/emergency.service 檔內檢視緊急模式時發生甚麼事情。 

Stage 1.5(core.img)的收錄位置 
grub/grub2 的檔案都位於 /boot 檔案系統內。在一個傳統(非 UEFI)的 BIOS 環境下,首先會載入一個開機映像(grub 是 stage1,grub2 是 boot.img),接著是載入 stage 1.5(grub2 是 core.img),它會啟動 /boot 檔案系統內的程式。stage 1.5 的收錄位置可以是緊接 MBR,或在 /boot 檔案系統的分割區內。在 CentOS 7,預設的位置是緊接 MBR。見 此圖像

沒有留言:

張貼留言

[Git 常見問題] error: The following untracked working tree files would be overwritten by merge

  Source From  Here 方案1: // x -----删除忽略文件已经对 git 来说不识别的文件 // d -----删除未被添加到 git 的路径中的文件 // f -----强制运行 #   git clean -d -fx 方案2: 今天在服务器上  gi...