NVRAM リセット後に BIOS メニューに EFI パーティションを追加する

NVRAM リセット後に BIOS メニューに EFI パーティションを追加する

最初はすべて順調でした。私の SSD には 2 つの EFI パーティションがあり、通常は Linux をデフォルトにして f12 キーを使用して OS を切り替えます。しかし、NVRAM をクリアした後、Windows ブート マネージャーはありますが、Linux EFI が消えてしまいました。ブート メニューに再び追加するにはどうすればよいでしょうか?

答え1

Windows ブート マネージャーも消えたと思われますが、UEFI ファームウェアに自動的に追加するコードが含まれていたか、または Windows が最初にフォールバック UEFI ブートローダー パス ( \EFI\boot\bootx64.efi) を使用して起動し、完全に自動化された「自己修復」操作として適切な NVRAM ブート変数を再度追加しました。

これは、起動可能なLinuxライブブートメディアを使用して修正するのが最も簡単です。UEFIネイティブモードそうすれば、コマンドを使用できるようになりますefibootmgr

ライブ メディアから Linux を起動した後、まず Linux インストールの EFI システム パーティション (略して ESP) を Linux ディストリビューションの通常の場所 (通常は です/boot/efiが、ディストリビューションによっては のみを使用する場合もあります) にマウントする必要があります。次に、そのディレクトリ内に のような UEFI ブートローダ ディレクトリとや のようなファイルが/bootあるはずです。他にもファイルがある可能性があります。/boot/efi/EFI/<name of your Linux distribution>/shimx64.efibootx64.efi

ブートローダ ディレクトリに が含まれている場合はshimx64.efi、それを<bootloader file>次のステップで として使用します。含まれていない場合は、grubx64.efiが存在する場合は を使用します。

Linux ESP がディスク上にあると仮定すると/dev/sdaefibootmgrファームウェア メニューへのブート エントリを再作成するコマンドは次のようになります。

efibootmgr -c -d /dev/sda -l \\EFI\\<name of your distribution>\\<bootloader file> -L "<the name you want to see in the firmware menu>"

同じディスク上に複数の ESP があるため、ディスクを指定するだけでなく、正しい ESP デバイス名 ( ではなく など-d /dev/sda5)-d /dev/sdaを指定する必要がある場合があります。

その後、 を使用してefibootmgr -vブート設定を表示します。 を使用しefibootmgr --bootorderてブート順序を調整し、Linux をデフォルトにするか、BIOS 設定にアクセスして同じ操作を行う必要がある場合があります (一部の UEFI ファームウェアでは、 を使用して行われたブート順序の変更が拒否される場合があります。efibootmgr --bootorderこれはおそらくファームウェアのバグです)。

NVRAM がリセットされるたびに Linux を「存続 OS」にしたい場合は、--force-extra-removableOS が正常に起動したら、次のようなコマンドを使用してオプションを使用して UEFI GRUB を再インストールできます。

sudo grub-install --force-extra-removable --uefi-secure-boot /dev/sda

(システムでセキュア ブートを無効にしていて、今後も無効のままにしておく予定の場合は、--uefi-secure-boot必要に応じてオプションを省略できます。)

関連情報