web-dev-qa-db-ja.com

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

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

しかし、マンジャロは違う何かをしました。これはgrub2のいくつかのバージョンをインストールしましたが、これはrememberで、前回ブートしたディストリビューションから別のバージョンを選択するまで(再起動時に)ブートし続けました。 1つ(そして、その1つを起動するなど)。

私はこれを想像しましたか?マンジャロは実際にそれをしますか?もしそうなら、そのバージョン of 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"
11
Gabriel

GRUBマニュアル のとおり:

「GRUB_DEFAULT」

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

これを「保存」に設定すると、デフォルトのメニューエントリは、「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

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

11
don_crissti

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

繰り返しますが、 GRUB Manual から:

13.2 GRUB環境ブロック

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

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

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

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

1
Matteus Blanc