GentooLinuxシステムでGRUB2.00を実行しています。

独自のカーネルを手動でコンパイルしてから、にインストールします。 /bootmake install。現在/bootには次のカーネルがあります。

# ls -1 /boot/vmlinuz* /boot/vmlinuz-3.7.4-gentoo-5 /boot/vmlinuz-3.7.4-gentoo-first /boot/vmlinuz-3.7.4-gentoo-fourth /boot/vmlinuz-3.7.4-gentoo-third 

grub2-mkconfigを実行すると、次の出力が生成されます。

# grub2-mkconfig -o /boot/grub2/grub.cfg Generating grub.cfg ... Found linux image: /boot/vmlinuz-3.7.4-gentoo-third Found linux image: /boot/vmlinuz-3.7.4-gentoo-fourth Found linux image: /boot/vmlinuz-3.7.4-gentoo-first Found linux image: /boot/vmlinuz-3.7.4-gentoo-5 done 

結果の/boot/grub2/grub.cfgファイルを読み取ると、次のエントリが作成されていることがわかります。

  • メインのデフォルトエントリ。 vmlinuz-3.7.4-gentoo-third
  • grub2-mkconfigコマンド

問題は、起動時にカーネルの5番目のリビジョン(vmlinuz-3.7.4-gentoo-5)をデフォルトでロードしたいということです。 3番目ではありません(vmlinuz-3.7.4-gentoo-third)。また、ロードする適切なカーネルを選択するためにサブメニューにアクセスしたくない。

この動作を変更するにはどうすればよいですか?古い3番目のリビジョンではなく、デフォルトでカーネルの5番目のリビジョンを実行することをGRUBに伝えるにはどうすればよいですか?一般に、デフォルトのエントリ行を、GRUBが選択した一見ランダムなものではなく、必要なカーネルに一致するように変更するにはどうすればよいですか?

また、次の行を/etc/default/grub

GRUB_DEFAULT=saved GRUB_SAVEDEFAULT=true 

これでは問題が希望どおりに修正されません。ただし、少なくともGRUBは、起動した最新のカーネルを記憶しているようです。サブメニューから自動的に選択します。サブメニューにアクセスしたくないだけです。

コメント

  • 指定した
  • 出力ファイルとしてdivid = “01c8dd9c78”>

。ディレクトリ/boot/grub/はまだ存在しますか?

回答

サブメニュー「詳細オプション」の下のメニューエントリを選択するには、GRUB_DEFAULT = “1> 3″を設定します。これで、grub2-mkconfigを実行してgrub構成ファイルを生成できます。 。次回の再起動時に、vmlinuz-3.7.4-gentoo-5が起動するはずです。

:これは、のデフォルトエントリを変更しませんgrubメニュー、つまりデフォルトのエントリは、現在と同じエントリを示します。ただし、デフォルトで起動されるイメージは、「詳細オプション」の下の4番目のイメージになります。 grubメニューのデフォルトエントリとしてvmlinuz-3.7.4-gentoo-5を作成するには、grub2-mkconfigを実行したときにvmlinuz-3.7.4-gentoo-5が最初のイメージになるようにイメージの順序を設定する必要があります。 。

コメント

  • 引用符は重要であることに注意してください。つまりGRUB_DEFAULT = 1 > 3ウォン’動作しません。

回答

grub.cfgにサブメニューがある場合は使用する必要があります次のような2桁の数字:

grub-reboot "1>3" 

first はメニューインデックスで、 second はサブメニューインデックスです。 。

たとえば、次のようにconfigから最後のエントリを起動するには:

grep menu /boot/grub/grub.cfg menuentry "Debian GNU/Linux" --class debian --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-simple-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { submenu "Advanced options for Debian GNU/Linux" $menuentry_id_option "gnulinux-advanced-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { menuentry "Debian GNU/Linux, with Linux 4.6.0-0.bpo.1-amd64" --class debian --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-4.6.0-0.bpo.1-amd64-advanced-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { menuentry "Debian GNU/Linux, with Linux 4.6.0-0.bpo.1-amd64 (sysvinit)" --class debian --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-4.6.0-0.bpo.1-amd64-init-sysvinit-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { menuentry "Debian GNU/Linux, with Linux 4.6.0-0.bpo.1-amd64 (recovery mode)" --class debian --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-4.6.0-0.bpo.1-amd64-recovery-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { menuentry "Debian GNU/Linux, with Linux 3.16.0-4-amd64" --class debian --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-3.16.0-4-amd64-advanced-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { menuentry "Debian GNU/Linux, with Linux 3.16.0-4-amd64 (sysvinit)" --class debian --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-3.16.0-4-amd64-init-sysvinit-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { menuentry "Debian GNU/Linux, with Linux 3.16.0-4-amd64 (recovery mode)" --class debian --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-3.16.0-4-amd64-recovery-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { 

次を使用する必要があります:

grub-reboot "1>5" 

再起動します。

コメント

  • 奇妙です。サブメニューのインデックスは0から始まり、メインメニューは1から始まります

回答

。この場合、

$ grub2-set-default -h Usage: grub2-set-default [OPTION] MENU_ENTRY Set the default boot menu entry for GRUB. -h, --help print this message and exit -v, --version print the version information and exit --boot-directory=DIR expect GRUB images under the directory DIR/grub2 instead of the /boot/grub2 directory MENU_ENTRY is a number, a menu item title or a menu item identifier. 

を使用するか、次の起動のみを使用する場合:

$ grub2-reboot -h Usage: grub2-reboot [OPTION] MENU_ENTRY Set the default boot menu entry for GRUB, for the next boot only. -h, --help print this message and exit -v, --version print the version information and exit --boot-directory=DIR expect GRUB images under the directory DIR/grub2 instead of the /boot/grub2 directory MENU_ENTRY is a number, a menu item title or a menu item identifier. 

回答

centos7(またはRHEL7)とgrub2の場合:

grubはgrubenvの「saved_entry」エントリを使用しますデフォルトで起動する場合は、/ boot / grub2 / grub.cfgからのスニプレット:

if [ "${next_entry}" ] ; then set default="${next_entry}" set next_entry= save_env next_entry set boot_once=true else set default="${saved_entry}" fi 

「saved_entry」が私のビルドになったことを確認します:

grub2-editenv list 

saved_entry=CentOS Linux (3.10.0-693.2.2.el7.ari.x86_64) 7 (Core)

たとえばデバッグビルドに変更するには:

grub2-editenv - set saved_entry="CentOS Linux 3.10.0-693.2.2.el7.ari.x86_64.debug) 7 (Core)" 

回答

試してください

mkdir -p /boot/grub/backup mv -v /boot/grub/vmlinuz-3.7.4-gentoo-{first,third,fourth} /boot/grub/backup 

これにより、未使用のすべてのカーネルがバックアップディレクトリに移動します。

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

これにより、メニューに選択肢r5が追加されるだけです。その後、この this リンクを読み、バックアップディレクトリ内のすべてのカーネルをvmlinuz以外のものに変更します(保持する必要がある場合)

回答

目的の結果を達成するために私がしたことは次のとおりです。

  • ividを設定しますgrub-set-defaultヘルプ

    grub-set-default Menu entry not specified. Usage: grub-set-default [OPTION] MENU_ENTRY Set the default boot menu entry for GRUB. This requires setting GRUB_DEFAULT=saved in /etc/default/grub. -h, --help print this message and exit -V, --version print the version information and exit --boot-directory=DIR expect GRUB images under the directory DIR/grub instead of the /boot/grub directory MENU_ENTRY is a number, a menu item title or a menu item identifier.

/ li>

  • デフォルト値を設定します

    grub-set-default "1>2"

    / boot / grubに次のような新しいファイルを作成します必要な情報を含むgrubenv。

  • その後、構成ファイルを再作成します

    grub-mkconfig > /boot/grub/grub.cfg

  • そして、保存された状態を使用するように構成が変更されていることを確認しました:

    if [ "${next_entry}" ] ; then set default="${next_entry}" set next_entry= save_env next_entry set boot_once=true else set default="${saved_entry}" fi

    回答

    デフォルトの選択肢は数値で設定できます。設定した場合

    `GRUB_DEFAULT=3` 

    in /etc/default/grub
    デフォルトをgentoo-5エントリに設定します。
    GRUB_DEFAULTはゼロオフセットなので、3は必要に応じて4番目のエントリ。

    コメント

    • 理由はわかりませんが’ ‘が機能しないようです。おっしゃるようにGRUB_DEFAULT=3を設定してから、grub2-mkconfig。ただし、起動時のデフォルトエントリはvmlinuz-3.7.4-gentoo-thirdのままです。
    • GRUB_SAVEDEFAULT=trueコメントアウトしてみてください’重要ですが、numeでは’は必要ありませんrical。
    • ‘の/etc/default/grubファイルにそのオプションがありません。

    回答

    grub2-mkconfigは、主にカーネルを想定して、カーネルを逆の順序で並べ替えていると思われます単調に増加するバージョン番号が含まれています。そのため、その規則に合うようにタグの選択を開始します。

    回答

    ubuntu:

    sudo grub-pc 

    grub-pcを使用すると、メニューを選択できます。

    sudo update-grub 

    参照: https://askubuntu.com/questions/384388/how-to-select-option-in-configuration-grub-pc-menu

    回答

    mv /boot内の新しい/未使用のバージョンファイルをバックアップディレクトリ(例:/boot/back

    initrd.img-3.13.0-xx-generic vmlinuz-3.13.0-xx-generic config-3.13.0-xx-generic System.map-3.13.0-xx-generic 

    システムをレスキューモードで再起動し、レスキューダイアログでgrubを選択すると、すべて問題ありません。

    これが最も適切な方法だと思います。私はubuntu14.04を使用しています。

    コメントを残す

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