私はBIOSを含む開発マシンを持っており、カーネルとinitrdをコンパイルした後、簡単な作業でそれを使うことができますmenuentry
。
menuentry "mlinux" {
linux /boot/mlinuz quiet
initrd /boot/minitramfs
}
ただし、UEFI を持つ別のコンピューターで実行すると失敗し、次の結果が表示されます。
error: kernel doesn't support EFI handover.
error: you need to load the kernel first.
私はこれが私のカーネルのUEFIサポートの欠如と関連している可能性があると考えて、EFI_STUB
サポート(また有効にする必要があるACPI
)として再構築しました。これで黒い画面が表示されます。echo
各ステップの前に追加して削除するとメッセージがquiet
表示されますが、echo
それはすべてです。カーネルメッセージもなく、何もありません。
これを見た後質問この郵便はがき、カーネルを次の場所にコピーしました。
- /boot/efi/mlinuz.efi
- /boot/efi/EFI/mlinuz.efi
- /boot/efi/EFI/BOOT/mlinuz.efi
そのアドレスを私のパスとして使用しましたが、menuentry
ファイルが見つからないというメッセージはまだ機能しません。このファイルはどこにコピーする必要があり、私のファイルには何を含める必要がありますかmenuentry
?
追加の質問:独自のLinuxカーネルで起動しましたが、カスタムカーネルを使用している場合はプログラムを起動できますが、initrd
キーボードを使用して対話することはできません。理由をご存知ですか? ?
編集する:linuxefi
andを見つけましたinitrdefi
が、ファイルが見つかりませんでしたので、コマンドラインに行き、lsを使用してハードドライブを見つけ、lsを使用しましたが、linuxefi (hd0,pt2)/mlinuz64.efi
何もしませんでした。
答え1
空の画面が表示される場合、問題はFRAMEBUFFERを有効にする必要があることです。
CONFIG_FB_EFI=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_EFI_STUB
直接起動するのではなく、grubを使用して無効にすることもできます。