Centos

相當於 RHEL/Fedora/CentOS 系統的 update-grub?

  • October 21, 2021

在 Ubuntu 中(我猜也在 Debian 中)有一個名為的系統腳本,它使用 grub 配置文件的正確路徑update-grub自動執行。grub-mkconfig -o

基於 Red Hat 的發行版是否有類似的命令?

如果沒有,系統如何知道安裝新核心版本時要更新的 grub 配置文件在哪裡?

安裝或刪除 RPM 包時需要執行的特定操作包含在 RPM 包本身的預安裝、安裝後、解除安裝前和解除安裝後部分。

rpm對於每個安裝的 RPM 包,您可以查詢 RPM 數據庫以獲取命令中包含的確切腳本:

rpm -q --scripts <package-name>

在 CentOS 6 的核心包上執行該命令會返回:

postinstall scriptlet (using /bin/sh):
<snip>
/sbin/new-kernel-pkg --package kernel --install 2.6.32-431.17.1.el6.x86_64 || exit $?

從手冊:

new-kernel-package- 腳本核心安裝工具

在分析 Fedora 中的腳本後,我意識到配置文件路徑是從 symlink 讀取的/etc/grub2.conf。因此,正確的grub2-mkconfig行是:

grub2-mkconfig -o "$(readlink -e /etc/grub2.conf)"

如評論中所述,它可能是/etc/grub2.cfg,或/etc/grub2-efi.cfg在 UEFI 系統上。實際上,兩個連結可能同時存在並指向不同的位置。如果目標文件不存在,則-e標誌將出錯,但在我的系統上兩者都存在……我猜檢查你的命令。readlink

引用自:https://unix.stackexchange.com/questions/152222