GNU/Linux >> Linux の 問題 >  >> Linux

GRUB でデフォルトのカーネルを設定する

2時間格闘した後、これを達成するためのはるかに簡単な方法を見つけました.私はただRTFMです。;)

/etc/default/grub に 2 行追加

GRUB_SAVEDEFAULT=true
GRUB_DEFAULT=saved

sudo update-grub を実行します 、再起動し、grub メニューに入り、必要なメニューまたはサブメニュー項目を選択します。選択は毎回保存され、コンピューターは自動的に起動します。別のエントリを手動で選択すると、それが新しいデフォルトになります。


TomTom が hisArch の場合を見つけたように、ほとんどのディストリビューションはこの時点で追加のカーネルを詳細オプション サブメニューに移動していると思います。

以前のカーネルをデフォルトとして選択するために、最上位のメニュー構造を変更したくありませんでした。ここで答えを見つけました:

http://www.humans-enabled.com/2014/08/how-to-set-default-grub-kernel-boot.html

要約すると:

1) $menuentry_id_option を見つける サブメニュー:

$ grep submenu /boot/grub/grub.cfg
submenu 'Advanced options for Debian GNU/Linux' $menuentry_id_option 'gnulinux-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {

2) $menuentry_id_option を見つける 使用するカーネルのメニュー エントリ:

$ grep gnulinux /boot/grub/grub.cfg
menuentry 'Debian GNU/Linux' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
submenu 'Advanced options for Debian GNU/Linux' $menuentry_id_option 'gnulinux-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
    menuentry 'Debian GNU/Linux, with Linux 4.18.0-0.bpo.1-rt-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.18.0-0.bpo.1-rt-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
    menuentry 'Debian GNU/Linux, with Linux 4.18.0-0.bpo.1-rt-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.18.0-0.bpo.1-rt-amd64-recovery-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
    menuentry 'Debian GNU/Linux, with Linux 4.18.0-0.bpo.1-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.18.0-0.bpo.1-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
    menuentry 'Debian GNU/Linux, with Linux 4.18.0-0.bpo.1-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.18.0-0.bpo.1-amd64-recovery-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
    menuentry 'Debian GNU/Linux, with Linux 4.17.0-0.bpo.1-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.17.0-0.bpo.1-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
    menuentry 'Debian GNU/Linux, with Linux 4.17.0-0.bpo.1-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.17.0-0.bpo.1-amd64-recovery-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
    menuentry 'Debian GNU/Linux, with Linux 4.9.0-8-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.9.0-8-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
    menuentry 'Debian GNU/Linux, with Linux 4.9.0-8-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.9.0-8-amd64-recovery-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {

3) /etc/default/grub の現在のデフォルト grub をコメントアウトします。 サブメニューの $menuentry_id_option に置き換えます ステップ 1 から、選択したカーネルの $menuentry_id_option > で区切られたステップ 2 から .

私の場合、変更された GRUB_DEFAULT です:

#GRUB_DEFAULT=0

GRUB_DEFAULT="gnulinux-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc>gnulinux-4.18.0-0.bpo.1-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc"

4) grub を更新して変更を加えます。 Debian の場合、これは次のように行われます:

$ sudo update-grub

終わり。起動すると、詳細メニューにアスタリスクが表示され、選択したカーネルで起動するはずです。これは uname で確認できます .

$ uname -a
Linux NAME 4.18.0-0.bpo.1-amd64 #1 SMP Debian 4.18.0-0 (2018-09-13) x86_64 GNU/Linux

これを最新のカーネルに戻すには、新しい行をコメントアウトして #GRUB_DEFAULT=0 のコメントを外すだけです。 :

GRUB_DEFAULT=0

#GRUB_DEFAULT="gnulinux-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc>gnulinux-4.18.0-0.bpo.1-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc"

次に update-grub を再実行します .


コメントで述べたように、 grub-set-default X を使用して起動するデフォルトのカーネルを設定できます ここで、X は起動するカーネルの番号です。一部のディストリビューションでは、/etc/default/grub を編集してこの数を設定することもできます ファイルと設定 GRUB_DEFAULT=X 、そして update-grub を実行します .

番号は、起動時に GRUB メニューに表示されるカーネル/カーネル設定の配列へのインデックスで、0 が最初 (最上位) のエントリです。通常、menuentry を探すことで正しい番号を見つけることができます。 /boot/grub/grub.cfg の行 、そのように:

grep menuentry /boot/grub/grub.cfg

GRUB ブート メニューに表示される名前で各カーネルが一覧表示されます。最初のものは 0、2 番目のものは 1 などです。


Linux
  1. Linux – Grubでデフォルトのカーネルを設定しますか?

  2. デフォルトの「読書」プログラムを変更するにはどうすればよいですか?

  3. Emacs -nwをデフォルトのエディターとして設定しますか?

  1. デフォルトのマウントポイントを設定するには??

  2. Grubファイルを更新するためのSedの使用法?

  3. デフォルトをRuby2.1.2に設定する方法は?

  1. Linuxサーバーで自動リブートレスカーネルアップデートを設定する方法

  2. Linux で 2 つのデフォルト ルートを設定する方法

  3. デフォルトゲートウェイの設定方法