Centos
相當於 RHEL/Fedora/CentOS 系統的 update-grub?
在 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