GRUB2:grubの最後の選択を覚える方法


11

現在、さまざまなディストリビューションを試しているので、ラップトップを起動すると、いくつかのOSから選択できます。通常、これらのディストリビューションはすべてインストールさgrub2れ、リストの一番上に配置されるため、インストール完了後に起動するデフォルトのディストリビューションになります。

しかし、マンジャロは別のことをしました。それはいくつかのバージョンがインストールされgrub2ているが、考えを覚えて私は1つが(再起動時に)私は別のものを選択するまで(と、それはその1を起動し、そうである)ことを前回と保持ブートをブートディストリビューいます。

想像した?マンジャロは実際にそれをしますか?その場合、そのバージョンgrubをシステムにインストールするにはどうすればよいですか?乾杯。


これは私の/etc/grub.d/40_customファイルです:

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

これは私の/etc/default/grubファイルです:

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=3
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

私はその質問の指示に従いました(主にこれらの2行をに追加しましたgrub)が、うまくいきませんでした。以前に別のディストリビューションを選択した場合でも、再起動時にトップディストリビューションが起動します。
ガブリエル

受け入れられた回答の指示に従いました。編集/etc/default/grubして行GRUB_DEFAULT=0をに変更し、そこにないGRUB_DEFAULT=savedGRUB_SAVEDEFAULT=trueを追加しました。それから私sudo update-grub。再起動して、一番上のディストリビューションとは異なり、ディストリビューションを選択しました。もう一度再起動すると、(以前に選択したものではなく)最上部のディストリビューションがデフォルトで選択され、起動されました。
ガブリエル

これらの2つのファイルの内容で質問を更新しました。私がすべき変更は何ですか?
ガブリエル

回答:


11

あたりとしてGRUBマニュアル

「GRUB_DEFAULT」

.................

これを「saved」に設定すると、デフォルトのメニューエントリは、「GRUB_SAVEDEFAULT」、grub-set-default、またはgrub-rebootによって保存されたものになります。


「GRUB_SAVEDEFAULT」

このオプションが「true」に設定されている場合、エントリが選択されたときに、GRUBの今後の実行で使用するために新しいデフォルトエントリとして保存します。これは「GRUB_DEFAULT = saved」の場合にのみ役立ちます。'GRUB_DEFAULT = saved'は、grub-set-defaultまたはgrub-rebootと組み合わせてこのオプションなしで使用できるため、これは別のオプションです。デフォルトでは設定解除されています。このオプションは、すべての状況で使用できるわけではない環境ブロックに依存しています(環境ブロックを参照)。

追加する必要があります:

GRUB_DEFAULT=saved

そして

GRUB_SAVEDEFAULT=true

あなたに/etc/default/grub。また、/etc/grub.d/40_customオプションを追加する必要があるようなカスタムメニューファイルを使用している場合

savedefault

そのファイルのmenuentry / menuentriesに追加します。その後、GRUBを更新します。

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

または

update-grub

複数のディストリビューションがインストールされている場合は、アクティブな GRUBを構成および更新していることを確認してください。


1

私は、VirtualBoxゲストとしてArchを使用する際に問題を抱えていました。問題は私のLVMの使用であることが判明しました。

再び、GRUBマニュアルから:

13.2 GRUB環境ブロック

あるブートから次のブートまでの少量の情報を覚えておくと役立つことがよくあります。たとえば、前回の選択内容に基づいてデフォルトのメニューエントリを設定することができます。GRUBは、ブートローダーがファイルシステムの破損の原因となる可能性を最小限に抑えるために、意図的にファイルを書き込むためのサポートを実装していません。そのため、GRUB構成ファイルは、通常の方法でファイルを作成できません。ただし、GRUBは、少量の状態を保存するために使用できる「環境ブロック」を提供します。

環境ブロックは、事前に割り当てられた1024バイトのファイルで、通常は/ boot / grub / grubenvにあります(ただし、これは想定しないでください)。ブート時に、load_envコマンド(load_envを参照)はそこから環境変数をロードし、save_env(save_envを参照)コマンドはそれに環境変数を保存します。実行中のシステムから、grub-editenvユーティリティを使用して環境ブロックを編集できます。

安全上の理由から、このストレージは、プレーンディスク(LVMまたはRAIDなし)にインストールされ、非チェックサムファイルシステム(ZFSなし)を使用し、BIOSまたはEFI機能(ATA、USB、IEEE1275なし)を使用する場合にのみ利用できます。

grub-mkconfigはこの機能を使用して「GRUB_SAVEDEFAULT」を実装します(単純な設定を参照)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.