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

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

デフォルトでは、ロードするGRUB 2カーネルをどのように選択しますか?最近Linuxリアルタイムカーネルをインストールしましたが、デフォルトでロードされます。基本的に一般をロードしたいと思います。

これまでは基本OSだけを選択していましたが... 何らかの理由で/boot/grub.cfgライブカーネルをロードして通常のLinuxメニュー項目に入れたいと仮定しました(私の場合は)。アーキテクチャLinux)。

答え1

2時間の苦労の終わりに、より簡単な方法を見つけました。私はただRTFMです。 ;)

/etc/default/grubに2行追加

GRUB_SAVEDEFAULT=true
GRUB_DEFAULT=saved

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

答え2

TomTomがArchのケースで見たように、ほとんどのディストリビューションはこの時点で追加のコアを詳細オプションサブメニューに移動したと思います。

古いカーネルをデフォルトとして選択するためにトップレベルのメニュー構造を変更したくありません。私は答えを見つけましたここ

結論として:

  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. 現在のデフォルトのグラブをコメントアウトし、最初のステップのサブメニューと2番目のステップで選択したカーネル(で区切り)に/etc/default/grub置き換えます。$menuentry_id_option$menuentry_id_option>

    私の場合、修正された内容は次の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

トップレベルメニューのすべての項目にIDを指定する必要があります。デフォルトのスタートアップ項目の設定形式については、以下を参照してください。ドキュメントから

答え3

説明で説明したように、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などです。

答え4

GUI を使用してこれを行うには、次のようにします。グラップカスタマイザー(私はMintを使用しており、それをインストールしました。このように.).

維持しようと思う高度なオプションGrubリストのGrubカスタマイズプログラムでデフォルトのリストが変更された場合。

ここに画像の説明を入力してください。

それから一般設定選ぶ基本項目:前の開始項目

ここに画像の説明を入力してください。

その後、再起動し、起動プロセス中にgrubリストから「詳細オプション」エントリを選択します。

ここに画像の説明を入力してください。

希望のカーネルを選択して

ここに画像の説明を入力してください。

次に再起動すると、「詳細オプション」エントリがデフォルトで grub リストから選択されるエントリになり、最後に選択したカーネルがブートされます(カーネル全体のリストを開かずに)。

GrubリストでWindowsまたは他のオプションを使用している場合は、前の手順をもう一度実行する必要があります。

関連情報