(編集3:ユーザーエラー。ブート問題のデバッグ中に/boot/efi/EFI/ubuntu/grub.cfgをコピー)
最近リリースされたUbuntu 18.04サーバーをUEFIセキュアブートモードでインストールした後、インストーラーは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:
根本原因:ユーザーエラー。
一部のgrub設定が有効にならないのをデバッグしようとしたときに、誤って/boot/grub/grub.cfgを/boot/efi/EFI/ubuntu/grub.cfgにコピーしました。その時点から、システムの動作は標準ではありませんでした。
元の/boot/efi/EFI/ubuntu/grub.cfgが/boot/grub.cfgを参照する3行のファイルであることに気付いてくれたoldfredに感謝します。
ブラウフィッシュは
元の/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が必要なものを書き込むために起動できるスナップショットを使用することになりました。しかし、今は良いことです。)
私もこれに遭遇しました。 EFI grub.cfgを更新するには、次を実行します。
grub-install --efi-directory=/boot/efi
EFIが/boot/efi
にマウントされている場合。
このクエリのループを閉じるために、/boot/efi/EFI/ubuntu/grub.cfg
ディレクトリの場所を変更した(UUIDが変更された)ため、/boot
の更新が必要でした。 update-grub
はそのファイルを更新しませんが、
Sudo dpkg-reconfigure grub-efi-AMD64
いくつかの質問に答えた後、書き換えをトリガーします。
Viを使用して/boot/efi/EFI/ubuntu/grub.cfgを変更しました。そこでは、UIDとgptのみを変更する必要があります。正常に動作します。注意してください。