Centos 7とWindows 10デュアルブートGrubは最後の選択を保存しません

Centos 7とWindows 10デュアルブートGrubは最後の選択を保存しません

CentOS 7およびWin10デュアルブートシステムがあります。私のインストールは完全にバニラ(最初はCentOS、次にWin10)で、すべてがスムーズに行われました。 grubがブートローダメニューの「最後の」選択を保存しないこと以外はすべて大丈夫です。

すべてのgrub設定ファイル(例:)を見てみましたが、/boot/efi/EFI/centos/grub.cfgすべてのコードが最後の選択を記録しているようです。

私の/etc/default/grubショー:

GRUB_TIMEOUT=5
...
GRUB_DEFAULT=saved
...
GRUB_SAVEDEFAULT=true

私が見逃しているか、これを達成するために何をすべきですか?

私は/etc/efi/EFI/centos/grubenv最新の選択を録音しません。常に次のようになります。

saved_entry=CentOS Linux (3.10.0-327.el7.x86_64) 7 (Core)
##########[...snip...padding to 1k]

Windowsブートでファイルを見ることはできませんが、「Rescue Centos Entry」でテストしました。

手動で値を(Windows項目)grubenvに設定しましたが、Windows Boot Manager (on /dev/sda2)正常に動作します。ただし、CentOSを再起動しても変更できません。

この「最後の選択を保存」アクションを有効にするために何かが欠けているようです。どんなアイデアがありますか?

答え1

あるいは、デフォルトに設定したいオペレーティングシステムのGRUB_DEFAULT番号を単に指定することもできます。次の場所にある grub 構成ファイルに移動します。/boot/grub2/grub.cfgそして検索キーワードメニューアイテム。これにより、起動画面にオペレーティングシステムのリストが表示されます。

CentOSエントリを最初に想定し、次にWindowsエントリを想定し、デフォルトのオペレーティングシステムをCentOSで起動するには、GRUB_DEFAULT値を編集します。/etc/default/grub次のように

GRUB_DEFAULT=0

Windows 10をデフォルトで起動するには、次の設定を行います。

GRUB_DEFAULT=1

保存して再起動してください。選択したオペレーティングシステムをデフォルトのオペレーティングシステムに設定する必要があります。

答え2

このファイルは、実際には grub の動作を制御する最終ファイルを生成/etc/default/grubするために使用されます。grub.cfggrubファイルを編集して実行する必要があります。

sudo update-grub

新しい項目/boot/grub/grub.cfg(通常は場所)を作成します。

答え3

この問題を認識してから約1年が経過し、次の方法が有効であることがわかります。

$ su
Password:
# vim /boot/grub/grub.conf

そのファイルには次のものがあります。

default=saved
timeout=5
...
title CentOS (2.6.32-642.13.1.el6.x86_64)
    root ...
    ...
    savedefault
    initrd ...
title CentOS (<old kernel>...)
    ...
    savedefault
title Windows (10)
    ...
    savedefault

各開始項目にキーワード(?)がありません。savedefaultあなたはCentOS 7を使用し、私はCentOS 6を使用しているようですが。 IIRC、CentOS 6はGRUB(GRUB v1.97)を使用し、CentOS 7はGRUB2(GRUB 2.01)を使用します。

私は、将来のユーザー/検索者がこれが問題を解決したことを確認/拒否できるすべての人に感謝することを確信しています。

答え4

~によるとこのエラー問題は、grubenvへのリンクが/boot/grub2/grubenvを指していますが、/bootがgrubメニュー環境にインストールされないことです。上記のエラーはfedoraで発生したエラーですが、centosでも同じだと思います。 CentOS 7 と grub2 の実行にこの問題があります。

システムは正常に起動しますが、キーを押した後にのみgrubenvが存在しないというメッセージが表示されます。上記のバグには修正も含まれています。シンボリックリンク

/boot/grub2/grubenv -> ../efi/EFI/centos/grubenv

この問題は解決する必要があります。

  • 編集*これにより、Linuxカーネル4.20.0.1を実行しているCentOS 7.1の問題が解決されたことが確認されました。

どのように?

sudo rm /boot/grub2/grubenv
sudo ln -s ../efi/EFI/centos/grubenv /boot/grub2/grubenv

grub2-efiが必要ない場合は、この問題を引き起こしているように見えるように削除してください。

sudo yum remove grub2-efi

関連情報