UEFIブートオプションを変更する方法

UEFIブートオプションを変更する方法

どういうわけか、BIOSからすべての起動オプションを削除しました(おそらくスーパーグラブディスクを使用していることが原因である可能性があります)。 grubを修復するためにboot-repair live-usbを使用しようとしました。推奨修正を実行して再起動した後も、BIOSに起動オプションがなく、起動するたびにBIOS設定画面に移動します。

私の設定に関する完全な情報は次のとおりです。ここ

すべての話は、Windowsが起動しないという事実(BCD破損エラー)を発見したときに始まりました。その後、それはgrubの問題だと思ってLinuxでブートリカバリを使用し、提案された修正を実行しました。その後、Linuxにも入ることができず、grub>プロンプトだけが残ったことがわかりました。だから私は現場でsuper-grubディスクとsuper-grub2ディスクを使ってみました。その後、デフォルトではBIOS / uefiのすべての起動オプションを削除したことがわかりました。これで、新しいインストールでgrubが変更されることを望みながら、別のLinux(kubuntu)をインストールしましたが、そうではありませんでした。だから最終的にブートリカバリライブUSBを試して、推奨修正を行ったが、それでも成功しませんでした。この問題を解決する方法を知っていますか?

答え1

最後にgdiskに修正しました。どのステップが重要なステップかはわかりませんが、uefiヘッダーとパーティションテーブルをバックアップして復元した後、リブート時にLinuxがディスクリカバリを試みてからefiシステムパーティションをマウントできません。この手順で回復コマンドラインからgdiskを実行すると、efiシステムパーティションに関連する無効な「アクティブ」フラグが自動的に取得されます。ロゴのみを修正すると問題が解決します。

BIOSやUEFIの問題ではありません。また、efiシステムパーティションを消去してWindows 10を再インストールしてみました。しかし、これは役に立ちません。

答え2

唯一の問題がUEFI NVRAMブートオプションである場合(開始変数)が消え、次のようないくつかのオプションが表示されます。

UEFIモードで外部メディアから起動できる場合:

  • オペレーティングシステムのルートファイルシステムをマウントし、マウントし、/procファイルシステムにchrootし、ESPパーティションをマウントして実行します(オペレーティングシステムインストールのルートファイルシステムであると仮定)。/sys/devgrub-install/dev/sdX
mount /dev/sdX /mnt
mount -t proc none /mnt/proc
mount --rbind /dev /mnt/dev
mount --rbind /sys /mnt/sys
chroot /mnt /bin/bash
mount /boot/efi
grub-install /dev/sdX

grub-installUEFIブート変数はGRUBに対して自動的に生成されますが、efivarfs仮想ファイルシステムをマウントし、/sys/firmware/efi/efivarsUEFIモードでシステムをブートする必要があります。

  • または、ルートを変更せずにESPパーティションをマウントし、それを使用してefibootmgrブートオプションを手動で再作成します。 (/dev/sdX1ESPパーティションと仮定)
mount /dev/sdX1 /boot/efi

ls /boot/efi/EFI # there should be a directory for each OS/distribution

efibootmgr -c -d /dev/sdX1 -L "Any label you want" -l \\EFI\\<distro name>\\shimx64.efi  
# or ...\\grubx64.efi if Secure Boot disabled
  • セキュアブートが有効になっていて、オペレーティングシステムにセキュアブートシムがインストールされている場合は、特別なgrub-installオプションがあります。最初のオプションに示されているようにchrootを実行し、次のように実行します。
grub-install --uefi-secure-boot /dev/sdX

外部メディアがレガシーBIOSモードでのみ起動される場合:

  • Chrootは上記の最初のオプションと同じですが、次の行grub-installを使用します。
grub-install --target=x86_64-efi --force-extra-removable /dev/sdX

レガシーモードでは、UEFIブート変数にアクセスできないというエラーメッセージが表示されることがありますが、今はそのメッセージを無視してもかまいません。

[ESP mount path]/EFI/boot/bootx64.efiこれにより、ファームウェアがUEFIフォールバック/リムーバブルメディアブートローダを見つけることが期待されるGRUBの2番目のコピーがインストールされます。その後、ファームウェアはESPパーティションを「UEFIモードで起動可能」として検出し、BIOS起動メニューを使用して起動することを選択できる必要があります。 UEFIブータブルディスクのみが存在するため(外部ブートメディアを削除した後)、ほとんどの従来のUEFIファームウェアもUEFIモードで起動する必要があります。

システムがUEFIモードで起動したら、grub-install /dev/sdXそれを再実行してLinuxオペレーティングシステム用の標準UEFI起動変数を再生成できます。

関連情報