Windows / LinuxでUEFI変数を変更するツール?


12

Phoenix SecureCore TianoをUEFI / BIOSとして使用するDELLマシンがありますが、UEFIシェルとメニューがBIOSセットアップで非表示になっているため、完全には構成できません。

ユーザーモードでUEFI設定(ブートアイテムなど)を変更できるツールがあるかどうか疑問に思っていますか?Linuxの「efibootmgr」など。

ところで、それは構成可能ではないので、ブートプロセスはレガシーモードにあると思います。つまり、OSはUEFIの存在を検出できません。

だから、それはパラドックスです:UEFIツールがユーザーモードでブートアイテムを変更できるようにするには、非レガシーモードでブートする必要がありますか?しかし、UEFIツールを有効にして最初にブート項目を変更し、非レガシーブートを有効にする必要がありますか?


efi varがnvramに保存されていることがわかりました。このリンクが役立つ場合があります:wikileaks.org/ciav7p1/cms/page_26968084.html
marstone

回答:


3

EFI実装は、BIOSサポートのないEFIのみの実装を除き、ブートモード(EFIとBIOS)を制御する何らかの方法を提供する必要があります。ただし、多くの場合、ファームウェアはユーザーに問題をほとんどまたはまったく明示的に制御しません。代わりに、ファームウェアはハードディスクの状態に基づいて正しいブートモードを推測しようとします。たとえば、GPTが検出された場合はEFIモードを使用し、MBRが検出された場合はBIOSモードを使用します。または、EFIシステムパーティション(ESP)が見つかった場合はEFIモードを使用し、見つからない場合はBIOSモードを使用します。マニュアルを読むことで、ファームウェアの動作に関する手がかりを見つけることができるかもしれません。そうでない場合は、実験する必要があります。

リムーバブルメディアをブートする場合、ルールは異なる場合がありますが、ブートモードを1つだけ提供することで、正しい方向にキックすることができます。これには、CDのリマスタリングまたは(より簡単に)慎重にCDを選択する必要があります。EFIモードでの起動を強制しようとしている場合、私のrEFInd、特にその起動可能なCDバージョンが役立つ場合があります。EFIモードでのみ起動し、設定に従って、他のEFIベースの起動の起動マネージャーとして機能しますが、BIOSモードの起動では機能しません。


ありがとう!MBRモードでhdをパーティション分割すると、期待どおりに動作します。ただし、ESPがあるかどうかに関係なくGPTモードを使用すると、起動せず、「Operation System not Found」というエラーが表示されます。エラーメッセージ/ w構文エラーは、BIOS ROMをリバースエンジニアリングした後のBIOS(ブートローダーまたはブートレコードからではなく)からのものであるため、ブートコントロールをGPTモードで渡すことができません。
マーストーン

一部のEFIベースのシステムは、「ブート」(別名「アクティブ」)フラグが設定されたMBRパーティションを検出した場合にのみBIOSモードで起動します。GPTディスクでは、MBRの0xEE保護パーティションにそのフラグを設定する必要があります。これを行うには、Linuxのfdiskなどのツールを使用できます(「a」オプションを使用)。これを行うために、parted、GParted、またはその他のlibpartedベースのツールを使用しないでください。GPTディスクでは、MBRの内容を制御することはできず、「ブートフラグ」がGPTパーティションに適用されます。これは、タイプコードをEFIシステムパーティション(ESP)のタイプコードに設定するという意味です。 。
ロッド・スミス

2

誰かが興味を持っている場合は、ユーティリティをリリースするだけです。WindowsでUEFI変数を編集します。

https://gist.github.com/Zibri/19f9838ffd12349bb2c6c3afddc9388f/

25/02/2020にバージョン1.2に更新。
インターネット接続は必要ありません。
ウイルスの合計は、コードが難読化されているため、96を超える6(誤検出)を報告します。


そうではない。このプログラムは圧縮されて保護されており、一部のアンチウイルスは誤検知を引き起こします。ウイルスではありません。
ジブリ

フラッガーの場合:このプログラムはVirustotalでやや警告的な検出を取得しますが、一般的な検出と「潜在的に望ましくないプログラム」の検出のようです。このプログラムの機能により、マルウェアスイートに侵入した可能性がありますが、これが実際のマルウェアであるという直接的な証拠を誰かが提供できるようになるまで、現時点では答えは問題ありません。
モクバイ

ソースコードをリリースせず、リバースエンジニアリングを困難にして、「単純な」コードに基づいてマルウェアの増殖を正確に「遅延」または「制限」するようにしました。私はソースをリリースすることを考えています、それは秘密ではありません、私は将来のuefiベースのマルウェアの主な原因になりたくなかっただけです。
ジブリ

編集:本日、バージョン1.1に更新しました。
ジブリ

バージョン1.2に更新
Zibri

1

Dell XPS 17(l702x)を購入したばかりで、さまざまなOSのマルチブートに興味があります。私が理解したことが正しい場合、Dellには何らかの形でロックダウンされたPhoenix SecureCore Tiano UEFI「BIOS」があります。私が読んだことから、UEFIは直接使用できません(おそらく、BIOSのmodを必要とする隠しメニューなどを介して)。

オープンソース(BSD)TianoCore edk2 / ShellPkg(ソース)およびedk2 / ShellBinPkg(バイナリ)パッケージ(GIT Repo)を使用して、Phoenix互換EFIシェルを使用/アクセスすることは可能と思われます。

UEFI Shell 2.0の「フルシェル」プロファイルを使用して、新しいShellBinPkgをお勧めします(ほとんどのコマンドをサポートします)。ShellPkgを使用してカスタムシェルを再構築することもできます(スタンドアロンでビルドするか、OVMFパッケージに含めてx64バージョンを生成します)-Linux distro isoにUEFIシェルを含めます。

[U] EFIシェルバイナリは、ファームウェアとは無関係に実行されるようにコンパイルされます。これをテストするには/efi/boot/bootx64.efi、[UEFI] BIOSからFAT32ファイルシステム(USBスティック、ハードドライブパーティション)にシェルを置き、名前を変更して起動します。

を入力すると、シェルのヘルプテキストにアクセスできますhelp utilname。使用helpするだけで、使用可能なすべてのシェルコマンドのリストが生成されます。

注:ファームウェアからUEFIシェルを直接起動できない場合は、Shell.efiを(USB)/efi/boot/bootx64.efiとしてコピーしてFAT32 USBペンドライブを作成します。このUSBは、ファームウェアブートメニューに表示されます。このオプションを起動すると、UEFIシェルが起動します。- UEFI上のアーチのLinuxのテイク


それは素晴らしいことです。同じモデルl702xを購入しました;-)明日試してみます!私が知る限り、隠されたメニューはまだロック解除できます。ところで、bootx64.efiをコンパイルして、xpsでテスト済みですか?
マーストーン

ShellBinPkgはUEFIシェルのプリコンパイル済みバイナリです。名前を変更して適切なディレクトリに配置するだけでよいはずです。私はそれを試してみたが、それは私には役に立たなかったが、それが利用できる唯一のシェルだとは思わない(私もこれは初めてだ)。この投稿は、Phoenix SecureCore Tianoで動作するシェルダウンロードを提供しているようです(the.ridikulus.rat-> cfrの会話を参照)。乗車方法をお知らせください。
ビッグリッチ

上記の投稿のefiファイルを/efi/boot/bootx64.efiに配置しようとしましたが、USBディスクは通常どおりgrubで起動しました(すでに起動可能です)。その後、u-diskをHDDモードにフォーマットしましたが、「ディスクまたは他のメディアを削除してください...」というエラーが表示されました。次に、この文字列を16進数で検索し、uディスクのセクターごとに検索しましたが、存在しませんでした。メッセージはL702xのTiano BIOSからのものでなければなりません。私の操作に何か問題がありますか?
マーストーン

@marstone、ごめんなさい。でも、このUEFIのことになると私は初心者です(Google-fuでも大丈夫です;-))。他の場所で占領されていて、時間ができ次第、私は自分でこれを試して、どうやって乗るかを知らせます。乾杯、リッチ。
ビッグリッチ

デルは現在、UEFI対応のBIOS(A19)をリリースしていますが、「capitankasar」は、notebookreviewで 2倍の修正されたA18 バイオースuefiuefi + nvida gpu)を掲載していますが、UEFI、NVidia GPUオーバークロック、ファン速度などに対応しています(これらの機能の一部デルの公式リリースにも存在する可能性がありますが、私はこれを確認していません)。いつものように、自己責任で使用してください;-)
ビッグリッチ

0

私の実験では、次のように結論付けました。

U / EFIマルチブートUSBキーを使用する場合、以下を行う必要があります。

  1. すべてのパーティションをクリアする/ドライブを完全に消去する。
  2. GPTに変換します。
  3. プライマリパーティションを作成し、Fat32としてフォーマットします。
  4. ドライブのルートにEFI(大文字と小文字を区別しない)というディレクトリを作成します。
  5. bootという前のディレクトリにサブディレクトリを作成します(大文字と小文字は区別されません)
  6. 目的の.efiファイルをそこに置き、システムのアーキテクチャに合わせて名前を変更します。x64の場合はbootx64.efi、x86の場合はbootia32.efi、ARM64の場合はbootaa64.efiです。

Dell Inspiron 5437タッチスクリーンで試してみて、完璧に機能しました。

最後に、.efiファイルがMicrosoftのデジタル署名で署名されていない場合、fw設定でセキュアブートモードのみを無効にする必要があります。UEFIブートおよび高速ブートモードを有効のままにします。

テストのために、OEMマシンのマルチブートキーを見つけてuefi: <your usb key>から永続的にインストールし、表示されたリストから選択します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.