GentooLinuxシステムでGRUB2.00を実行しています。
独自のカーネルを手動でコンパイルしてから、にインストールします。 /boot
とmake 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を使用しています。