答え1
Fedoraでスクリプトを分析した後、設定ファイルのパスがシンボリックリンクから読み取られることに気づきました/etc/grub2.conf
。正しいgrub2-mkconfig
行は次のとおりです。
grub2-mkconfig -o "$(readlink -e /etc/grub2.conf)"
コメントで指摘したように、UEFIシステムに存在している可能性/etc/grub2.cfg
があります。/etc/grub2-efi.cfg
実際、2つのリンクが同時に存在することができ、別の場所を指す。ターゲットファイルはありませんが、私のシステムに両方が存在する場合、フラグにエラーが発生します。コマンドを確認してください-e
。readlink
答え2
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
- カーネルインストールスクリプト作成ツール
答え3
Fedora では、以下を使用します。
grub2-mkconfig -o "$(readlink -e /etc/grub2.cfg)"
実行時にオプションがないため、相対readlink
パスを返し、grub2-mkconfig
エラーが発生します。
$ ls -l /etc/grub2.cfg
lrwxrwxrwx. 1 root root 22 Dec 10 2015 /etc/grub2.cfg -> ../boot/grub2/grub.cfg
$ readlink /etc/grub2.cfg
../boot/grub2/grub.cfg
$ sudo grub2-mkconfig -o "$(readlink /etc/grub2.cfg)"
/usr/sbin/grub2-mkconfig: line 244: ../boot/grub2/grub.cfg.new: No such file or directory
-e
存在するファイルへのシンボリックリンクを確認できない場合は、出力がstdoutに表示され、問題があることを確認するためにこのオプションを使用します。
読み取りリンクのマニュアルページから:
-e, --canonicalize-existing
canonicalize by following every symlink in every component of
the given name recursively, all components must exist
答え4
~によるとRed Hat ドキュメント:
以下のように変更後にファイルを
/etc/default/grub
再構築する必要があります。grub.cfg
BIOS ベースのコンピュータで、root として次のコマンドを実行します。
~]# grub2-mkconfig -o /boot/grub2/grub.cfg
UEFI ベースのコンピュータで、root として次のコマンドを実行します。
~]# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg