YUMを使用してカーネルをアップグレードしようとしていますが、実行すると
[root@AFIBAMBOO bin]# grub2-mkconfig -o /boot/grub2/grub.cfg
No path or device is specified.
Usage: grub2-probe [OPTION...] [OPTION]... [PATH|DEVICE]
Try 'grub2-probe --help' or 'grub2-probe --usage' for more information.
No path or device is specified. Usage: grub2-probe [OPTION...] [OPTION]... [PATH|DEVICE]
Try 'grub2-probe --help' or 'grub2-probe --usage' for more information.
No path or device is specified. Usage: grub2-probe [OPTION...] [OPTION]... [PATH|DEVICE]
Try 'grub2-probe --help' or 'grub2-probe --usage' for more information.
答え1
ところで
問題はすでにAskUbuntu S&Eで修正カーネルアップデートスクリプトが破損したgrub2-probe
後に導入されました。grub.cfg
インデントがないことを確認してgrub.cfg
繰り返しますgrub2-mkconfig
。
yumによるカーネルアップデートの詳細な手順:
CentOS は RPM パッケージを介してカーネルを配布し、独自のリポジトリに保存します。
リポジトリを使用すると、RPMパッケージをインストール/削除/再インストールできます。
カーネルを保存するRPMパッケージは次のとおりです。インストール後そして積み替え後CentOSで新しいカーネルを採用するために必要なすべての手順を実行するセクション。このステップには、次のようないくつかの重要な事項が含まれています。ファイルシステムの初期化ビルドしてブートローダーに新しい項目を設定します。
私たちに見せてください3.10.0-957.el7.x86_64.rpmインストール後の部分:
インストール後:
/usr/sbin/new-kernel-pkg --package kernel --install 3.10.0-957.el7.x86_64 || exit $?
積み替え後:
if [ -x /usr/sbin/weak-modules ]
then
/usr/sbin/weak-modules --add-kernel 3.10.0-957.el7.x86_64 || exit $?
fi
/usr/sbin/new-kernel-pkg --package kernel --mkinitrd --dracut --depmod --update 3.10.0-957.el7.x86_64
rc=$?
if [ $rc != 0 ]; then
/usr/sbin/new-kernel-pkg --remove 3.10.0-957.el7.x86_64
ERROR_MSG="ERROR: installing kernel-3.10.0-957.el7.x86_64: no space left for creating initramfs. Clean up /boot partition and re-run '/usr/sbin/new-kernel-pkg --package kernel --mkinitrd --dracut --depmod --install 3.10.0-957.el7.x86_64'"
if [ -e /usr/bin/logger ]; then
/usr/bin/logger -p syslog.warn "$ERROR_MSG"
elif [ -e /usr/bin/cat ]; then
/usr/bin/cat "$ERROR_MSG" > /dev/kmsg
fi
echo "$ERROR_MSG"
exit $rc
fi
/usr/sbin/new-kernel-pkg --package kernel --rpmposttrans 3.10.0-957.el7.x86_64 || exit $?
これらのインストール後、スクリプトはnew-kernel-pkg
プロジェクトの一部であるスクリプトを使用しますgrubby
。man 8 新しいカーネル prkg書いた:
説明する
new-kernel-pkgは、初期RAMファイルシステムイメージの作成、ブートローダ設定の更新、およびその他の関連タスクなど、新しいカーネルインストールを自動化するためのパッケージングツールです。
new-kernel-pkg
ブートローダー構成を更新するためのスクリプト呼び出しgrubby
(grubby
プロジェクト内のプログラム)。 ~から男8汚い:
説明する
grubbyは、grub、lilo、elilo(ia64)、yaboot(powerpc)、zipl(s390)ブートローダの設定ファイルに関する情報を更新して表示するコマンドラインツールです。これは主に新しいカーネルをインストールし、現在のブート環境に関する情報を見つける必要があるスクリプト用に設計されています。
new-kernel-pkg
スクリプトで grubby を呼び出すスニペット:
ARGS="--grub2 -c $grub2Config --add-kernel=$kernelImage $INITRD \
--copy-default --title \"$title\$debugtitle\" \
${mbkernel:+--add-multiboot=\"$mbkernel\"} \
${mbargs:+--mbargs=\"$mbargs\"} \
--args=\"root=$rootdevice $kernargs \$debugargs\" \
--remove-kernel=\"TITLE=$title\$debugtitle\""
rungrubby ${ARGS} $makedefault
ブートローダ設定の構築方法についてより具体的な情報が必要な場合は、new-kernel-pkg
詳細情報表示モード(オプション)(必要なカーネルバージョンとパラメータを含む)で実行できます-v
。
grub2-mkconfig
したがって、カーネルの更新後に手動で呼び出す必要はありません。