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
と表示されますが、なぜ最初にブートローダーを起動する必要があるのですか?取得しないでください。
これから/vmlinuz-linux root=PARTUUID=3518bb68-d01e-45c9-b973-0b5d918aae96 initrd=/initramfs-linux.img
と入力する必要がありました https://wiki.archlinux.org/index.php/EFISTUB#Booting_EFISTUB しかし、それを機能させるには、/
の前にスラッシュvmlinuz-linux
を削除する必要がありました。
IIRC、EFIシェルは、名前が.efi
で終わっていない場合、ファイルをプログラムとして起動しません。したがって、最初にカーネルファイルの名前を変更して、名前が.efi
で終わるようにする必要があります。
カーネルファイルの名前を変更できない場合でも、gummiboot/systemd-bootやrEFIndなどの別のブートマネージャープログラムを介してEFIスタブローダーを使用してカーネルを起動できます。これらのツールは、ファイル名拡張子を気にしません-少なくとも、シェルほどではありません。 (rEFIndの自動スキャン機能は*.efi
、vmlinuz*
、bzImage*
、およびkernel*
と一致しますが、両方のプログラムの手動ブート構成は任意のファイル名で機能します。)
また、fpmurphy1が言うように、カーネルはEFIスタブサポートを使用してコンパイルする必要があります。ほとんどのディストリビューションでは、3.3.0以降のカーネルにこのサポートが含まれていますが、特にカーネルを自分でコンパイルする場合、これは100%ユニバーサルではない可能性があります。 (最後に確認したところ、EFIスタブのサポートはkernel.org
から取得したカーネルソースのデフォルトのカーネル構成の一部ではありませんでした。)
ブートローダーが必要かどうかは、Linuxカーネルの特定のバージョンがEFI BOOTSTUBをサポートしているかどうかによって異なります。
詳細については、以下を参照してください。 https://www.kernel.org/doc/Documentation/efi-stub.txt