Gentoo LinuxシステムでGRUB 2.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
)をロードすることです。また、ロードする適切なカーネルを選択するためにサブメニューにアクセスしないことも好みます。
この動作を変更するにはどうすればよいですか? GRUB古いバージョンの3番目のリビジョンではなく、カーネルの5番目のリビジョンを実行することをどのように伝えることができますか?一般的に、デフォルトのエントリ行をカーネルに一致するように変更するにはGRUBが選んだ一見ランダムなものではなく、欲しいですか?
また、次の行を/etc/default/grub
に入れてみました。
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
これで問題が解決しません。しかし、少なくともGRUB=は、起動した最新のカーネルを記憶し、サブメニューから自動的に選択するようです。サブメニューにアクセスしたくないだけです。
サブメニュー「詳細オプション」の下のメニューエントリを選択するには、GRUB_DEFAULT = "1> 3"を設定します。これで、grub2-mkconfigを実行してgrub構成ファイルを生成できます。次の再起動時にvmlinuz-3.7.4-gentoo-5が起動するはずです。
注:これにより、GRUBメニューのデフォルトエントリは変更されません。つまり、デフォルトエントリは現在と同じエントリを示します。ただし、デフォルトで起動されるイメージは、[詳細オプション]の4番目のイメージになります。 vmlinuz-3.7.4-gentoo-5をgrubメニューのデフォルトエントリとして作成するには、grub2-mkconfigを実行するときに、イメージの順序をvmlinuz-3.7.4-gentoo-5が最初のイメージになるようにする必要があります。 。
Grub.cfgにサブメニューがある場合は、次のように2桁を使用する必要があります。
grub-reboot '1>3'
firstはメニューインデックスであり、secondはサブメニューインデックスです。
たとえば、次のように構成から最後のエントリを起動するには:
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'
そして再起動します。
GRUB_DEFAULT=saved
。この場合、使用します
$ 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.
試す
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以外のものに変更してください。
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)'
_
望んでいた結果を達成するために私がしたことは:
をセットする GRUB_DEFAULT=saved
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.
デフォルト値を設定する
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`
/etc/default/grub
デフォルトをgentoo-5エントリに設定します。GRUB_DEFAULT
はゼロオフセットなので、3を指定すると4番目のエントリが選択されます。
grub2-mkconfig
は、カーネルが主に単調に増加するバージョン番号を含むと想定して、カーネルを逆順にソートします。そのため、その慣例に合うようにタグを選択してください。
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」を選択すると、すべてが正常になります。
私が思うに最適な方法です。私はubuntu 14.04を使用しています。
ubuntuで:
Sudo grub-pc
grub-pcを使用すると、メニューを選択できます。
Sudo update-grub
参照: https://askubuntu.com/questions/384388/how-to-select-option-in-configuration-grub-pc-men