web-dev-qa-db-ja.com

uefiファームウェアが起動順序を無視するのはなぜですか?

私のToshibaTecra R950は、主にUEFIをサポートしています。これは、最も適切なUEFIシステムが持っている派手なグラフィカルセットアップではなく、「BIOS」と呼ばれる古き良きテキストベースの青いファームウェア設定システムを備えています。起動順序メニュー(セットアップ中、または起動時にF12キーを押して起動したとき)では、オペレーティングシステムを選択できず、デバイスのみを選択できます。 efiパーティションに/efi/boot/bootx64.efiにフォールバックローダーが含まれていない限り、システムは起動できないようです。ただし、私が読んだところによると、これはリムーバブルボリュームにのみ必要です。

Linux efibootmgrツールを使用して実際のefiブート優先度(最初にロードするオペレーティングシステムに関して)にアクセスまたは変更できますが、ファームウェアは起動時にここで設定したものを無視し、代わりにハードウェア優先度に依存しますBIOS /ファームウェアセットアップで設定され、最初にアクセス可能なボリュームにあるフォールバックローダーを使用します。これに対する1つの例外は、S4(休止状態)から再開する場合のようです。突然このリストを調べて、フォールバックローダーではなくトップローダーを起動します。

これは、UEFIの実装が不適切な場合にすぎませんか? UEFI機能のサポートが制限されているハイブリッドBIOS/UEFIを使用することは可能ですか?私のシステムはS4からの再開時にブート優先度を処理する方法を知っているようですが、一般的に機能させる方法はありますか?

1
gordonmleigh

簡単な答え:あなたの説明に基づいて、私はあなたのファームウェアに欠陥があると思います。

長い答え:最初に、EFI(またはEFI 2.xであるUEFI)仕様には、ユーザーインターフェイスについて[〜#〜]何も[〜#〜]と記載されていません。したがって、EFI/UEFI仕様に100%準拠した純粋なテキストモードのEFIユーザーインターフェイスを構築できます。 BIOSには公式の仕様はありませんが、BIOSのグラフィカルセットアップユーティリティが試みられています。したがって、何かがEFIまたはBIOSであるかどうか、または実装がどの程度「完全」であるかを示す指標として、グラフィカルセットアップユーティリティまたはその欠如を使用しないでください。アイキャンディーは、要点やあなたの質問とはまったく関係がありません。

ちなみに、多くのメーカーはEFIをBIOSと呼んでいます。私見ですが、これは悪い習慣です。これは、従来の16ビットBIOSと最新の32ビットまたは64ビットEFI(very)の違いについてユーザーの心に混乱をもたらすためです。最も重要な詳細が異なります。

とは言うものの、EFI仕様は、ブート順序変数(Linuxではefibootmgrを介して設定される)を尊重する必要があることを明確に示しています。ファームウェアがこれらの変数を無視している場合は、仕様に違反しています。残念ながら、そのような違反は、数年前により一般的でしたが、悲惨なほど一般的です。簡単なグーグルはあなたのモデルが2012年に導入されたかもしれないと示唆しているので、それが古くて欠陥のあるEFIを持っていることは驚くべきことではないかもしれません。東芝のWebサイトをチェックして、ファームウェアの更新が利用可能かどうかを確認することをお勧めします。それは何かを修正するかもしれないし、しないかもしれませんが、それは間違いなくチェックする価値があります。

Windowsでは EasyUEFI 、EFIシェルでは efibootmgr など、bcfg以外のツールを使用することもできます。理論的には、これらのツールのいずれかがその仕事をするはずです。実際には、他のツールが機能するとefibootmgrが失敗することがあります。

「ハイブリッドBIOS/UEFI」に関しては、そのようなものが存在します。私は2つの広いカテゴリーを知っています:

  • BIOS上のEFI-EFI仕様は、最低レベルのハードウェア初期化機能の一部をカバーしていません。このタスクを処理するために、 ギガバイトのハイブリッドEFI などのx86/x86-64の初期のEFIは、従来のBIOSを使用し、EFIをその「上」に配置しました。 (リンクで説明されている)それに関する私の1つの経験は苦痛でしたが、それは一般的なアプローチよりも実装に関係している可能性があります。 AFAIK、このアプローチは廃止され、その上のEFIとのインターフェイスが優れている他のハードウェア初期化コードが採用されました。
  • CSMにロックされたEFI-互換性サポートモジュール(CSM)は、EFIが古いBIOSモードのブートローダーを起動できるようにするオプションのEFI機能です。過去数年間のBIOSベースのコンピューターの一部の「BIOS」は、実際にはCSMが永続的に有効になっているEFIを使用しているという主張を聞いたことがあります。このようなコンピューターは、通常のEFIの方法では起動できず、通常のBIOSベースのコンピューターと同じように見えます。しかし、この慣行がどれほど一般的であったかはわかりません。実際、この主張が真実であることを確認したことはありません。都市伝説である可能性があります。そのようなセットアップは、そのようなファームウェアが実際に作成されたかどうかに関係なく、確かに理論的に可能です。

どちらのアプローチもあなたの問題を説明することはできません。それはひどく壊れたEFIとしてよりよく説明されているようです。

1
Rod Smith