1台のハードドライブでThinkpadT440pを使用していますが、UEFIのみのモードに設定されています(セキュアブートは無効)。 OSをインストールするために使用したときはいつでも、対応するエントリがUEFIに表示されてそれらのOSを起動します。
今回、Debian9とWindows10をインストールしたとき、エントリは表示されませんでした。 GrubをEFIパーティションの/EFI/Boot/bootx64.efiにコピーし、UEFIにハードドライブを起動するように指示することで、両方のシステムを起動できます。
UEFIに/EFI/debian/grubx64.efiおよび/EFI/Microsoft/Boot/bootmgfw.efiのエントリを再度表示させるにはどうすればよいですか?
UEFIをリセットしても何も変わりませんでした。 Linuxでefibootmgrを使用してエントリを手動で追加すると、再起動後にefibootmgr(アクティブとしてマーク)に表示されるエントリが作成されますが、実際のUEFIには表示されないため、使用できません。
この背後にあるメカニズムは何ですか? OSインストーラーはUEFIにエントリを追加することになっていますか、それともUEFIはEFIパーティションで新しい.efiファイルを自動的に見つけることになっていますか?
最後の質問に最初に答えるには:OSがEFIベースのコンピューターにインストールされると、そのブートローダーをEFIに登録することになっています。EFIはそのブートローダーへのポインターをNVRAMに格納します。 Linuxディストリビューションはこれにefibootmgr
ツールを使用しますが、他のOSには同様の機能を持つ他のツールがあります。 (たとえば、Microsoftはbcdedit
ツールを拡張してブートローダーをEFIに登録しました。)ただし、少なくとも1つのOS(FreeBSD)はこれを行いません。フォールバックファイル名(EFI/BOOT/bootx64.efi
)を使用してブートローダーを保存します。これはIMHOの選択としては不適切ですが、efibootmgr
に相当するものがない場合は、それが唯一のオプションである可能性があります。他に何も存在しない場合はフォールバックファイル名で起動しますが、任意の名前のブートローダーをアクティブにスキャンするEFIはありません。 Microsoftブートマネージャー(EFI/Microsoft/Boot/bootmgfw.efi
)をフォールバックファイル名として扱うものもあります。
EFIとそのNVRAMエントリが台無しになっているように聞こえます。通常、このアクションで問題が修正されることを期待して、ファームウェアをデフォルトにリセットすることをお勧めしますが、すでにそれを行っています。おそらく、efibootmgr
などを使用して無関係なエントリを削除してから、NVRAMをリセットしてみてください。 (すべてを削除しないでくださいただし、すべてのブートエントリの後でEFIが非常に奇妙に動作するのを見てきましたDebianやWindowsなどのOSエントリは安全に削除できるはずですが、ハードディスクモデルやPXEブートオプションを参照するエントリなど、明らかにハードウェア固有のエントリは残してください。)これらのエントリを削除すると、コンピュータが離れる可能性があります。起動できないので、USBフラッシュドライブまたはCD-Rに rEFInd boot manager があると便利です。そこから起動できるはずです。rEFIndを使用すると、検出したOSを起動できるようになります。これを使用して、動作する起動エントリを再作成できます。
追加のアプローチがいくつかあります。
これらはどちらも成功の可能性が低い必死の対策ですので、期待を裏切らないでください。それにもかかわらず、私見、それらは両方とも試す価値があります。どちらかがすでに持っている動作中のブートエントリを消去する可能性があるため、rEFInd緊急ディスクを準備してください。
システムが完全に機能していて修正できない場合は、優先するブートマネージャーをEFI/BOOT/bootx64.efi
としてディスクに配置し、他のOSにブートオプションを提供するように構成してみてください。新品の場合でもこのアプローチを必要とするEFIがひどく壊れているコンピューターがあります。過去に問題なく動作したにもかかわらず、この回避策を必要とするために壊れている可能性のあるEFIを知っても驚くことではありません。