(U)EFI確認方法改訂マイノートブック(または仕様バージョン)
注:ノートブック/マザーボードの製造元が提供するEFI/BIOSのバージョンに言及するものではありません。
答え1
ヘッダー
あなたの質問で使用されている言語をできるだけ正確に説明しようとしているあなたの試みを確認してありがとう!UEFI1仕様そしてそれ以前のものEFI²本質的に複雑で、やや混乱しています。
できるだけ多くの混乱を排除するために、最初に元のEFIプラットフォーム(Intelで単独で開発、宣伝し、バージョン番号は「1」で始まる)とバージョン制限の間の移行を示すイベントとドキュメントに注目します。 。 UEFIの後続製品はUEFIです。これはIntelの大規模な利害関係者グループの仕事であり、UEFIフォーラムで組織されています(そのタスクは「2」で始まるバージョン番号で区別されます)。これらはUEFIフォーラムが正式に設立されました。2005年7月25日に、彼らはその後最初の論文を発表しました。UEFI仕様(v2.00)2006年1月31日、元のUEFI仕様の基礎です。インテルの究極ですか?EFI仕様、v1.102002年12月1日から。
回答
デバイスUEFIファームウェアの特定のバージョンに関する「Hoyleによる」明確な情報を取得するには、UEFIシェルから起動してからオプションでver
コマンドを実行するのが理想的な場所です-terse
。これはver
、混乱する可能性があるこのコマンドのみを使用して生成された他のすべてのコンテキスト要素を除いて、ファームウェアの明確なUEFIバージョンを便利に出力します。以下は、常に初期コマンドプロンプトの前に表示されるデバイスの1つの出力例とコマンドを呼び出すときに予想される内容ですver -terse
。
UEFI Interactive Shell v2.0
Build 8192. Copyright 2008 by Intel(R) Corporation.
UEFI v2.10 Firmware (Phoenix Technologies Ltd., 0x01014318)
Shell> ver -terse
2.10
ver
同様に-s
、オプションと一緒にコマンドを使用して(これを意味する)、シェルバイナリのバージョンを知ることができます-terse
。これは、2つのバージョンが異なり、続行するためにシェルのバージョンがファームウェアのバージョンと一致するか、等しい、または大きくする必要がないためです。ランニング。以前のバージョンとの互換性のために、多くの初期シェルが存在し、利用可能な機能のサブセットがある場合でも、最新のファームウェアで実行できます。 EFI時代の初期のシェルは、UEFIデバイスで正常に実行されることがほとんどないことに注意することが重要です。
Shell> ver -s
2.00
どちらの値もシェル初期化出力の一部であることに気付くでしょう。実際、これは意図的に設計されています。 UEFIシェルは、ver
起動時にコマンドの完全な「詳細」出力を自動的に印刷します。ほとんどの場合、コマンドをまったく実行する必要はありませんが、シェルで起動し、その出力を読み取り、再起動して使用します。最初のセッションUEFI シェル仕様 v2.0このヘッダーは、コマンドによって出力される情報のレイアウトのために導入され、ver
15年後にこの記事を書いた時点でも変更されませんでした。
UEFI <support-level> Shell v%uefishellversion%
<shell-supplier-specific-data>
UEFI v%uefiversion% (<fw-vendor>, 0x<fw-vendor-ver as 32b hex value> <opt. add'l. info>)
ご覧のとおり、シェルバージョンは最初の行の最後のデータでなければならず、ファームウェアバージョンは最初のシェルプロンプトが表示される前に印刷された3番目と最後の行の2番目のデータでなければなりません。また、上記のヘッダーの変数名は、すべてのUEFIインスタンスに存在する標準化された読み取り専用環境変数であり、他のほとんどのシェルと同様に参照することもできます。これはバージョン情報を取得するもう1つの方法であり、UEFIシェルの必要性を完全に迂回する方法で、起動時に自動的に実行されるように設定したスクリプトの基礎となる可能性があります。
fs0:\> echo %uefiversion%
2.10
fs0:\> echo %uefishellversion%
2.00
起動可能なUEFIシェルを購入する
ここで停止することができますが、最も広く使用されているシステムでUEFIシェルに簡単にアクセスできるベンダーがほとんどないことを考慮して、UEFIシェルを含むブータブルストレージメディアを作成するための基本を検討します。その後、ワンタイムブートメニューから対応するストレージデバイスを選択して使用できます。ほとんどのファームウェアは、システムの電源を入れた後数秒以内に使用できます(通常、その秒の間に数字の高いファンクションキーの1つを押してアクセスします)。 、例えば、F10またはF11にF12マッピングされているのを見たことがあるが、Esc時々F2)。
もちろん、必要に応じてシェルバイナリを保存するデバイスを手動でパーティション化してフォーマットすることもできますが、ソフトウェアユーティリティを使用してその部分を処理したいユーザーにはいくつかの提案があります。
- クジラエッチング機(Windows、Linux、MacOS)
- UNetランチャー(Windows、Linux、MacOS)
- ルーパーズ(ウィンドウのみ)
- ベントイ(WindowsまたはLinux)
- Fedoraメディアライター(Windowsのバージョン、MacOS バージョン)
ツールをインストールし、空または消去可能なストレージデバイスを準備したら、使用するUEFIシェルのコピーが必要です。いくつかのオプションは次のとおりです。
- UEFI シェル ISO イメージ
- Rufus ユーティリティ開発者は、UEFI シェルを使用して、最も一般的なアーキテクチャに対して非常に安定した ISO イメージを生成します。上記のツールを使用してフラッシュまたは焼くことができるオールインワンISO。これは最も使いやすいソースであり、誰にでもお勧めです。
- TianoCore EDK2安定版
- これは、ほとんどの一般的なUEFIファームウェア開発が行われる公式のオープンソースプロジェクトであり、定期的に事前に構築されたバイナリで安定したリリースを表示します。この
ShellBinPkg.zip
ファイルには、完全なUEFIシェルと、さまざまなアーキテクチャ用に構築された最小限の実装が含まれています。上級ユーザーにお勧めです。
- これは、ほとんどの一般的なUEFIファームウェア開発が行われる公式のオープンソースプロジェクトであり、定期的に事前に構築されたバイナリで安定したリリースを表示します。この
- オープンコアブートローダー
- これは、さまざまなファームウェアと対話するためのUEFIシェルや他のさまざまなユーティリティを含むオープンソースブートローダです。
<arch>\EFI\OC\Tools\OpenShell.efi
ダウンロード可能なリリースアーカイブにあります。
- これは、さまざまなファームウェアと対話するためのUEFIシェルや他のさまざまなユーティリティを含むオープンソースブートローダです。
ISOまたはデフォルト.efi
のバイナリ実行可能ファイルを使用しているかどうかに応じて、ISOをストレージメディアの期待される内容としてユーティリティソフトウェアに提供するか、ユーティリティを使用して空の起動可能なデバイスを作成してファイルをコピーできます.efi
。EFI
EFIシステムパーティションのファイルシステムに作成されたデバイスフォルダにあります。最後に、起動可能なメディアがシステムに接続された状態で再起動を実行し、ワンタイムブートメニューに入り、シェルを含むデバイスを選択すると、シェルに直接ドロップされ、コマンドプロンプトが完了してインポートする準備が整います。あなたの質問に対する答え。
用語集と脚注
^つかむ 第二拡張可能Fファームウェア私相互作用
²第二拡張可能Fファームウェア私相互作用
立方体以前のバージョンとの互換性に関する注意事項:これは、多くのメーカーがファームウェアパッケージまたはサポートWebサイトにUEFIシェル実行可能ファイルを含まないか含まれていても公開するのが難しいため、サードパーティからUEFIシェル実行可能ファイルを入手する必要がある場合が多いため、特に言及されています。ダウンロードして使用してください。これを行う必要がある場合は、ファームウェアの以前の/意図されたバージョンと正確に一致するシェルを見つけるのではなく、信頼できるソースからシェルを見つけることに主に開始するシェル検索に焦点を当てることができます。実際、上記のすべての出力例について、(意図的に)かなり古いシェル(UEFI v2.00の最終リビジョンがリリースされた直後の2008年にコンパイルされます)がcで作成された最新のデバイスで実行されていることがわかります。 2022年にUEFI v2.10ファームウェアとしてリリースされました。回答の最後にいくつかのシェルソースへのリンクを提供しましたが、私この記事を書いている時点で信頼でき、利用可能であると見なされますが、引き続き利用可能であると仮定したり、そのトピックに関する私の理解がセキュリティ上の問題につながると仮定してはいけません。そのような状況。