web-dev-qa-db-ja.com

update-grubは/boot/efi/EFI/ubuntu/grub.cfgを更新しません

(編集3:ユーザーエラー。ブート問題のデバッグ中に/boot/efi/EFI/ubuntu/grub.cfgをコピー)

最近リリースされたUbuntu 18.04サーバーをUEFIセキュアブートモードでインストールした後、インストーラーはgrub.cfgを次の場所に配置しました。

  • / boot/efi/EFI/ubuntu/grub.cfg

これは、Filesystem:manual partitionを選択したときに作成されるテーブルと一致します。手動パーティションは、ブートパーティションを/ boot/efi(/ dev/sda1)にマウントします。

ただし、Sudo update-grubおよびSudo update-grub2はgrub設定を上書きせず、代わりに/ boot/grub/grub.cfgを更新します。すなわち、ブートパーティションにないファイル。

質問1:update-grub、update-grub2などは、いくつかの新しい手順に置き換えられましたか?質問2:そうでない場合、これはバグとして報告されますか?

編集:混乱++。

  • コンピューター1、実際のハードウェア、インストール時の手動分割およびマイナーアップデート、例: Sudo apt install tboot、問題canを再現できます。

  • コンピューター2、vmwareイメージ:バニラのインストール、問題できない再現する。

両方のコンピューターはUEFIセキュアブートであり、同じ/同様のパーティション分割を行います。異なるgrub.cfgは同じ更新動作を経験しますが、vmwareイメージでは、grubはファイルを尊重します/ boot/grub/grub.cfg、ハードウェアインストールではgrubは/ boot/efi/EFI/ubuntu/grub.cfg

編集2:

  • コンピュータ1は、手動のファイルシステム分割と、元のパーティション分割(250GBディスク、120GB使用、残りは空き)の両方で再インストールされました。 Neither再インストールすると元の問題が再現される可能性があるため、基本的には問題はなくなりました。コンピューターへの3つのインストールはすべて、同じISO/USBスティックからのものでした。
3
blaufish

根本原因:ユーザーエラー。

一部のgrub設定が有効にならないのをデバッグしようとしたときに、誤って/boot/grub/grub.cfgを/boot/efi/EFI/ubuntu/grub.cfgにコピーしました。その時点から、システムの動作は標準ではありませんでした。

元の/boot/efi/EFI/ubuntu/grub.cfgが/boot/grub.cfgを参照する3行のファイルであることに気付いてくれたoldfredに感謝します。

0
blaufish

ブラウフィッシュは

元の/boot/efi/EFI/ubuntu/grub.cfgは、/ boot/grub.cfgを参照する3行のファイルでした。

この3行のgrub.cfgは、少なくともbtrfsを使用したgrub 2.02-2ubuntu8.6では未使用です。 2行目は

set prefix=($root)'/@/boot/grub'

現在、$ rootには@はなく、grub-installが実行されたときはありませんでした。 (@は壊れて、少し前に削除された熱心なインストールでした。)その代わりに、grub.cfgへのgrubパスがgrubx64.efi実行可能ファイルに書き込まれます。実行するとこれが何であるかを見ることができます

strings grubx64.efi | tail

私がこれについて言及したのは、誰かが、私がかつてやったように、このgrub.cfgを他の場所を指すように変更すると役立つと想像するかもしれないからです。これを設定するには、-boot-directoryオプションを使用してgrub-installを実行します。 btrfsルートが/ mnt/topにマウントされている(subvolid = 5、subvol = /)ので、/ @ grubから起動したい:

--boot-directory =/mnt/top/@ grub/boot

(これが常に機能しているかどうかはわかりません。最初にbtrfsのインストールとは無関係にgrubをセットアップしようとすると、トラブルが発生し、grub-installが必要なものを書き込むために起動できるスナップショットを使用することになりました。しかし、今は良いことです。)

3
JohnLittle

私もこれに遭遇しました。 EFI grub.cfgを更新するには、次を実行します。

grub-install --efi-directory=/boot/efi

EFIが/boot/efiにマウントされている場合。

2
dpb

このクエリのループを閉じるために、/boot/efi/EFI/ubuntu/grub.cfgディレクトリの場所を変更した(UUIDが変更された)ため、/bootの更新が必要でした。 update-grubはそのファイルを更新しませんが、

Sudo dpkg-reconfigure grub-efi-AMD64

いくつかの質問に答えた後、書き換えをトリガーします。

0
Greg

Viを使用して/boot/efi/EFI/ubuntu/grub.cfgを変更しました。そこでは、UIDとgptのみを変更する必要があります。正常に動作します。注意してください。

0
Borkowski