上週幫客戶處理問題時,對 RHEL8/CentOS8 的 grub 又多了解了一些,記錄一下。
Ubuntu 的選單是放在 /boot/grub/grub.cfg
,所以看這個檔案,就大略知道選單有哪些選項,修改可以直接改這個檔案。RHEL8 跟 CentOS8 使用 grubby 來管理開機時的 grub 選單,所以可以用 grubby
指令來做管理。
常用的指令可以參考 12 practical grubby command examples (cheat sheet)
我這次主要使用到的指令有
- 列出開機選單項目的資訊
- 修改該選單項目的 kernel options
- 取得目前預設開機項目
- 設定預設開機項目
列出開機選單項目的資訊
列出選單項目,可以用下面指令
grubby --info=ALL | grep -E "^kernel|^index"
取得 index 跟 kernel ,就可以修改指定項目的 kernel options 了。
修改指定選單項目的 kernel options
修改的指令如下
# 修改指定的 kernel 的 kernel options,路徑可參考上面指令
grubby --update-kernel=<kernel路徑> --args="ipv6.disable=1"
# 修改目前的
grubby --update-kernel=/boot/vmlinuz-$(uname -r) --args="ipv6.disable=1"
若要移除 kernel options,要用 –remove-args
# 移除指定的 kernel 的 kernel options
grubby --update-kernel=<kernel路徑> --remove-args="ipv6.disable=1"
# 移除目前 kernel 的 kernel options
grubby --update-kernel=/boot/vmlinuz-$(uname -r) --remove-args="ipv6.disable=1"
這裡的修改,會影響到 /boot/loader/entries
目錄下的檔案。
取得目前預設開機項目
grubby --default-index
grubby --default-title
設定預設開機項目
用以下指令設定
grubby --set-default="/boot/vmlinuz-4.18.0-193.1.2.el8_2.x86_64"
grubby --set-default-index=2
這裡設置以後,會影響到 /boot/grub/grubenv
的檔案內容。
可惜 ubuntu 沒有 grubby,感覺這在管理開機選單上還蠻方便的。
沒有留言:
張貼留言