RHEL / Fedora / CentOSシステムのupdate-grubに相当しますか?

Ubuntu(Debianでもそうだと思います)には、自動的に実行されるupdate-grubという名前のシステムスクリプトがありますgrub-mkconfig -oとgrub構成ファイルの正しいパス。

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 -カーネルインストールをスクリプト化するツール

コメント

  • Fedora20で同じコマンドを実行する代わりに/bin/kernel-installを生成します。後で参照できるように、この情報を含めるように回答を編集してください。
  • そのため、私は回答を見つけるために必要な手順から始めました。インストールスクリプトのクエリは、カーネルの更新がどのように行われるかを理解するのに役立つという点で、RPMの世界ではかなり普遍的である可能性が高いと思います。そうすれば、私の答えは、すでに示したツール/コマンド/サポートスクリプトに名前を付けるだけでなく、リリースと配布に大きく依存するよりもはるかに優れた時間のテストに耐えることができます。
  • ええ@HBruijn 'の権利。 ' Fedora、RHEL、CentOSの間でばらつきが大きすぎて、単一の答えを提供できず、それを見つける方法を示すのに適しています。

回答

Fedoraでスクリプトを分析した後、構成ファイルのパスがシンボリックリンク/etc/grub2.confから読み取られていることがわかりました。 。したがって、正しいgrub2-mkconfig行は次のようになります。

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

コメントに記載されているように、、または/etc/grub2-efi.cfg。実際には、両方のリンクが同時に存在し、異なる場所を指している可能性があります readlinkへの-eフラグは、ターゲットファイルが存在しない場合にエラーになりますが、私のシステムには両方が存在します…コマンドを確認してください、私は推測します。

コメント

  • CentOS 7では、リンクは/etc/grub2.cfg
  • grub2-mkconfig –output = / boot / grub2 /grub.cfgはfedoraマニュアルで承認された方法のようです
  • CentOS 7固有のgrubステップの詳細については、公式wikiを確認してください。 wiki.centos.org/HowTos/Grub2
  • UEFIシステムを使用している場合は、' sudo grub2-mkconfig -o "$(readlink /etc/grub2-efi.cfg)"
  • 読み取りリンクを実行しても意味がありません

回答

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に表示されるため、問題が発生したことがわかります。

readlinkのマニュアルページから:

 -e, --canonicalize-existing canonicalize by following every symlink in every component of the given name recursively, all components must exist 

回答

Fedoraでは、/ etc /grub2.cfgシンボリックリンクはBIOSバージョンを指します。 UEFIシステムでは、次を使用します。

$ sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg 

CentOSの場合:

$ sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg 

通常、代わりに使用できます:

$ sudo grub2-mkconfig -o $(readlink -f /etc/grub2-efi.cfg) 

https://docs.fedoraproject.org/en-US/fedora/f27/system-administrators-guide/kernel-module-driver-configuration/Working_with_the_GRUB_2_Boot_Loader/index.html#sec-Editing_a_Menu_Entry <を参照してください/ a>

回答

viまたは

、変更を保存し、:wqでエディターを閉じます!

これは、RedHatまたはCentOSでgrubを更新するために実行する必要があるものです:

grub2-mkconfig -o /boot/grub2/grub.cfg 

回答

RedHatドキュメントによる:

/etc/default/grubに変更するには、次のようにgrub.cfgファイルを再構築する必要があります。

  • BIOSの場合-ベースのマシンでは、rootとして次のコマンドを発行します。

    ~]# grub2-mkconfig -o /boot/grub2/grub.cfg

  • UEFIベースのマシンでは、ルートとしての次のコマンド:

    ~]# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg

回答

Ubuntuのupdate-grubスクリプトは、実際には単なる grub-mkconfig のスタブであり、あまり苦労せずに他のディストリビューションに適合させることができます。全体の概要は次のとおりです。

#!/bin/sh set -e exec grub-mkconfig -o /boot/grub/grub.cfg "$@" 

これは、 CentOSwikiで推奨されていることを効果的に実行します、およびここでの他の回答-唯一の違いは、コマンドと出力パスでgrubgrub2に変更する必要があることです。 。

回答

Fedora 32の場合:

 sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg  

回答

CentOS Linux8で動作-

sudo grub2-mkconfig --output=/boot/grub2/grub.cfg 

マイデモ

回答

Fedora 33ガイドラインでは、Grubを変更した後に次のようになります

$ sudo grub2-mkconfig --output=/boot/grub2/grub.cfg

はい、この投稿は6歳です

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です