問題タブ [efi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
5218 参照

windows - バッチ スクリプトを使用して EFI パーティションが既に Windows にマウントされているかどうかを検出する方法は?

EFI パーティションが既に Windows にマウントされているかどうかを検出するバッチ スクリプトを作成しようとしています。

最終的に、私の目標はmountvol /S、EFI パーティションがまだマウントされていない場合にのみ (EFI システム パーティションのマウント) を使用することです。

コマンドを使用したユーティリティには、それ自体と同様に役立つ可能性のある情報がいくつかありますがdiskpart、これらの両方で文字列の解析が必要になるようです。 list volumemountvol

より良い方法はありますか?

0 投票する
1 に答える
1598 参照

bios - IntelAtomのEFIまたはBIOS??。

私はfedoraを搭載したIntelAtomを持っています。/boot/efi/EFI/redhatにefi構成ファイルがありますが、efi構成ファイルはそれがdos/windowsアプリケーションであることを指定しています。

dmidecode cmdを使用しましたが、そのシステムがまだBIOSを使用していることがわかりました。出力は次のとおりです。

ハンドル0x0004、DMIタイプ0、24バイト

BIOS情報

システムBIOSまたはefiを実際に起動しているものがわかりません。また、efiは比較的新しいため、c言語であると信じているefiでアプリケーションを作成したいので、どこから開始するかを誰かが提案できます。

0 投票する
3 に答える
5540 参照

c++ - WinPE から BIOS を検出: レガシーまたは UEFI、vbs を使用 // .exe から .txt への結果の出力

これが私のシナリオです:

サーバーには 2 つの可能な構成があります。特別な処理を必要としない 2 TB HDD、または OS を起動するために UEFI BIOS と GPT パーティションを必要とする 3 TB HDD です。

BIOS が「レガシー」か「UEFI」かを検出し、それに応じて展開スクリプトを実行できる単一のインストール USB キーを作成しようとしています。

私は区別できる WMI を一生懸命探しましたが、役に立ちませんでした。

私が解決策に最も近いのは、次の投稿です

detectefi.exe は BIOS の種類を検出するのに完全に機能しますが、結果を出力できないため、使用方法がわかりません。

2 つの質問があります。

  1. 2 つのセットアップを区別するために使用できる WMI はありますか?

  2. (質問 1 の答えが「いいえ」の場合) C++ でコンパイルされた .exe ファイルの結果を .txt またはその他の形式に出力し、その結果を利用する方法はありますか (私には C++ のスキルがまったくありません)。

0 投票する
1 に答える
4810 参照

windows - NVRAM への Windows 7 UEFI エントリの書き込み

私は現在、Windows 7 で担当している複数のラボ マシンのイメージを作成するスクリプトに取り組んでいます。残念ながら、それらは愚かな方法で動作する UEFI Dell マシンです。Dell セットアップ ユーティリティでイメージを作成したマシンでは、Windows のブート メニューに UEFI エントリがあり、/boot/Microsoft/bootx64.efi ファイルまたは同等のファイルをロードしていました。それらを起動すると、古き良き「起動可能なデバイスが見つかりませんエラー」が表示され、Dellセットアップユーティリティに入ると、Windowsエントリがありません。このUEFIパーティションとブートファイルを指すエントリを手動で追加できます。これにより、正常に起動し、起動時に奇妙なことに、通常の名前「Windows Boot Manager」などで同じファイルを指すNVRAMに別のエントリを追加できます。多数のマシンのイメージングを行っているため、手動で Dell のセットアップに入る必要がなく、この NVRAM エントリを追加する方法を探していましたが、これはプロセスを複雑にするだけです。私は当初、イメージングが終了した後に GRUB ブートローダーをチェーンロードして、Windows のインストールを検出して起動しようとしました。また、Linux 側の NVRAM にエントリを直接追加して、Dell セットアップ ユーティリティで達成したのと同じことを行う情報を見つけることもできませんでした。誰でもこれを経験したことがありますか?私は当初、イメージングが終了した後に GRUB ブートローダーをチェーンロードして、Windows のインストールを検出して起動しようとしました。また、Linux 側の NVRAM にエントリを直接追加して、Dell セットアップ ユーティリティで達成したのと同じことを行う情報を見つけることもできませんでした。誰でもこれを経験したことがありますか?私は当初、イメージングが終了した後に GRUB ブートローダーをチェーンロードして、Windows のインストールを検出して起動しようとしました。また、Linux 側の NVRAM にエントリを直接追加して、Dell セットアップ ユーティリティで達成したのと同じことを行う情報を見つけることもできませんでした。誰でもこれを経験したことがありますか?Linux 側の NVRAM にエントリを直接追加する方法に関する情報を見つけることができませんでした。これは、Dell セットアップ ユーティリティを使用して達成したのと同じことを行います。誰でもこれを経験したことがありますか?Linux 側の NVRAM にエントリを直接追加する方法に関する情報を見つけることができませんでした。これは、Dell セットアップ ユーティリティを使用して達成したのと同じことを行います。誰でもこれを経験したことがありますか?

ありがとう

0 投票する
3 に答える
11530 参照

assembly - UEFI で OS を書く

最近は学校のせいであまりコーディングをしていませんでしたが、OS 開発の仕事を再開したいと思いました。しかし最近、EFI が BIOS の代わりになるという話を耳にしました。BIOS ではなく EFI を使用するプラットフォーム用の OS を開発したいと考えています。とはいえ、どこから始めればいいのか分からず困っています。誰かが私を正しい方向に向けることができますか? OS開発にとってEFIが何を意味するのかを説明し、使用できるテスト環境(できれば仮想)を教えてください。率直に言って、EFIが何であるかはよくわかりません。また、ARMアセンブリを調べるのに時間を費やす必要がありますか? 私は x86 Assembly を知っていますが、それも時代遅れになっているように感じます。私は本当に迷っており、あなたの意見を聞きたいです。

ありがとう

0 投票する
1 に答える
1417 参照

storage - 現在のEFIBIOSはAHCIをネイティブにサポートしていますか?

現在のEFIBIOSでのAHCIサポートについて1つ質問があります...

外部ストレージカード(例:PCie-SATA)を接続してSATAドライブを接続する前は、BIOSは常にそのカードのオプションROMを呼び出して初期化を行い、POST中に構成にUIを提供します...その後、ブートとして選択できます端末 !

私の質問は:(どちらの場合が正しいですか?)

  • (ケース1)現在のEFI BIOSは、この種の外部カードのAHCIをネイティブにサポートしています(ここで「ネイティブ」とは、EFI BIOSがオプションROMを呼び出さず、このカード自体を完全に構成してからAHCI機能を有効にできることを意味します...)
  • (ケース2)現在のEFI BIOSは、IntelまたはAMDのAHCIコントローラーのみをネイティブにサポートします
  • (ケース3)現在のEFI BIOSは、 AHCI機能をサポートするために(内部または外部コントローラーに関係なく)オプションROMを呼び出します

よろしく、

0 投票する
2 に答える
4863 参照

operating-system - EFIモードで起動すると、BIOS割り込みにアクセスできなくなりますか?

シンプルなOSを開発しようとしています。私は以前にいくつかのアセンブリプログラムを実行INT 10hし、画面に文字を表示するために使用する必要がありました。UEFIがレガシーBIOSをサポートしており、サービスを引き続き使用できる可能性があることを理解していINT 10hます。ただし、純粋なUEFIブータブルOSを構築することを選択した場合、使用を避ける必要がありINT 10hますか?それとも私は物事を間違った方法で見ていますか?

言い換えると、(画面)にドリルダウンprintfstdoutてBIOSを呼び出すことになりますINT 10hか?または、「SYS_WRITE関数呼び出しはINT 10hに基づいていますか?」という質問です。より適切な?

512バイトのブートセクターを作成し、それらをディスク(またはディスクイメージ)の0番目のセクターとして配置する必要がありますか?場所0x7c00はもう意味がありますか?

0 投票する
1 に答える
971 参照

testing - UEFI シェルでの memroy テストで ECC エラーを検出する方法

UEFI シェルで物理 DIMM をテストするために EFI バイナリ ファイルを作成しました。プロセスは非常に簡単です。最初にテスト パターンを物理アドレスに書き込み、それを読み取って元のパターンと比較します。ただし、DIMM で修正可能または修正不可能なエラーが発生する場合があります。通常、すべての修正可能な ECC はハードウェアによって自動的に修正され、BIOS がこれを処理します (このエラーをログに記録し、エラー レジスタを消去します)。通常、修正できないエラーにより、BIOS は NMI を発行し、システムがハングします。

問題は、テスト プログラムがエラーの発生を認識していないことです。修正可能なエラーは BIOS FW によってマスクされ、修正不可能なエラーはシステムをハングさせます...

テスト プログラムに ECC エラーが発生したことを知らせる方法はありますか? アドバイスをいただければ幸いです。ありがとう!

0 投票する
6 に答える
6901 参照

c# - WinPE(4) が UEFI または BIOS から起動したかどうかを検出するにはどうすればよいですか?

WinPE 4 (powershell) (または別の方法として WinPE 3 (vbs))で起動したことを確実に検出する方法を探しています。UEFIまたは BIOS システムから起動しましたか? 制限された環境にいるため、サードパーティのexeを実行せずに

これにより、パーティションのレイアウトとフォーマットが変更されるため、Windows 展開のパーティション分割方法が大幅に変わります。(GPT 対 MBR など)

Powershell v3でこのC++コードを適応させたものがありますが、かなりハックっぽいです:

単純なフラグを取得するためだけに、これはかなりやりすぎのようです。

これを行うためのより良い方法があるかどうか、誰かが知っていますか?