web-dev-qa-db-ja.com

efiシェルからvmlinuz-linuxを起動する方法は?

Efi Shellからvmlinuz-linuxを起動する方法は? ESPにジャンプし、vmlinuz-linux(vmlinuz-linuxはESPにあります)と入力します)がvmlinuz-linux isn't recognized as an internal or external command, operable program, or batch fileと表示されますが、なぜ最初にブートローダーを起動する必要があるのですか?取得しないでください。

3
ChiseledAbs

これから/vmlinuz-linux root=PARTUUID=3518bb68-d01e-45c9-b973-0b5d918aae96 initrd=/initramfs-linux.imgと入力する必要がありました https://wiki.archlinux.org/index.php/EFISTUB#Booting_EFISTUB しかし、それを機能させるには、/の前にスラッシュvmlinuz-linuxを削除する必要がありました。

3
ChiseledAbs

IIRC、EFIシェルは、名前が.efiで終わっていない場合、ファイルをプログラムとして起動しません。したがって、最初にカーネルファイルの名前を変更して、名前が.efiで終わるようにする必要があります。

カーネルファイルの名前を変更できない場合でも、gummiboot/systemd-bootやrEFIndなどの別のブートマネージャープログラムを介してEFIスタブローダーを使用してカーネルを起動できます。これらのツールは、ファイル名拡張子を気にしません-少なくとも、シェルほどではありません。 (rEFIndの自動スキャン機能は*.efivmlinuz*bzImage*、およびkernel*と一致しますが、両方のプログラムの手動ブート構成は任意のファイル名で機能します。)

また、fpmurphy1が言うように、カーネルはEFIスタブサポートを使用してコンパイルする必要があります。ほとんどのディストリビューションでは、3.3.0以降のカーネルにこのサポートが含まれていますが、特にカーネルを自分でコンパイルする場合、これは100%ユニバーサルではない可能性があります。 (最後に確認したところ、EFIスタブのサポートはkernel.orgから取得したカーネルソースのデフォルトのカーネル構成の一部ではありませんでした。)

1
Rod Smith

ブートローダーが必要かどうかは、Linuxカーネルの特定のバージョンがEFI BOOTSTUBをサポートしているかどうかによって異なります。

詳細については、以下を参照してください。 https://www.kernel.org/doc/Documentation/efi-stub.txt

1
fpmurphy