저는 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을 사용하면 비활성화할 수도 있습니다 .