web-dev-qa-db-ja.com

EFIシェルで5秒の遅延をバイパスすることは可能ですか?

私の異常なハードウェア構成( Mac上のWindows 8.1でグラフィックカードが機能しない を参照)のため、Windowsを起動する前にmmEFIコマンドを使用して2つのPCIレジスタを設定する必要があります。現在、EFIシェルのビルド(私のマザーボードには組み込みがありません)がbootx64.efiとしてドロップされています。startup.nshは次のようになっています。

mm 0010003E 1 ;PCI :8
mm 02000004 1 ;PCI :7
fs0:\EFI\Microsoft\Boot\bootmgfw.efi

EFIシェルを、起動プロセスの中断を許可しないことが望ましい、より軽量なものに置き換えることは可能でしょうか?

3
kinokijuf

Startup.nshの先頭に「setStartupDelay0」を配置することで、起動の遅延をなくすことができます。ここで、0は待機する秒数です。これは私のために働いた。

1
user379153

MacでWindowsのEFIブートを実行していましたか?私は2009年半ばのMacBookPro5,4で同じことを達成しました

私のEFIシェルも非ファームウェアです。それをEFIパーティションに配置し、手動でblessする必要がありました。それでもSet StartupDelay [X]を使用できました。私のEFIシェルは https:/)にあるPrecompiled x86_64 UEFI Shell v1 binaryです。 /wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface#Obtaining_UEFI_Shell またはそれ以上直接: https://svn.code.sf.net/p/edk2/code/trunk/edk2/EdkShellBinPkg/FullShell /X64/Shell_Fu​​ll.efi 1.10 EFIファームウェアを使用するMacとは異なり、UEFI(v2)システムではv2の方が便利であると説明されているため、v2ではなくv1を使用しています。

それで、Set StartupDelay [x]は私のために働きます、しかしあなたのstartup.nshにそれを入れないでください!一度だけ呼び出す必要があります。そうしないと、起動のたびにNVRAMを不必要に書き換えてしまい、その寿命が不必要に短くなります。起動値として「0」を試していません。少しだけ遅延が必要でした。私の場合、startup.nshがRefindを開始します。シェルを再検索から開始する場合は、バイパスする時間が必要です。ただし、refindにはrefindを終了することでアクセスできるシェルがあり、その中でnshスタートアップが発行されていません。このシェルがShell.efiツールを使用して有効になっているのか、それとも常に存在していたのかはわかりません。

help set -bは、setコマンドに関する適切な情報を示しています。シェルに関連付けられたNVRAM環境がない場合は、変数が/efi/boot/bootstr.nvrに保存されると記載されています。つまり、このコマンドはNVRAMがなくても機能するはずです。しかし、そのファイルは私のマシンでは作成されないので、間違いなくNVRAMにあります。 NVRAM変数をダンプするdmpstore StartupDelayを使用してそれを証明しました(この場合、StartupDelayが存在する場合のみ)

お役に立てば幸いです。

1
bazz