[syslinux] Booting legacy Linux kernel in EFI mode

Celelibi celelibi at gmail.com
Sun Oct 20 06:02:18 PDT 2013


2013/10/17, Celelibi <celelibi at gmail.com>:
> 2013/9/24, Gene Cumm <gene.cumm at gmail.com>:
>> On Sun, Sep 22, 2013 at 3:09 PM, Celelibi <celelibi at gmail.com> wrote:
>>> Hello,
>>>
>>> My question is quite straightforward, still I couldn't find an anwser
>>> on the interweb.
>>> Is it possible to boot the Linux kernels I used to boot in legacy
>>> mode, but now in EFI mode?
>>
>> I believe unless the kernel specifically supports EFI boot, it can not
>> be booted.
>>
>>> I mean, I would like to keep all my PXE settings with my menus and
>>> kernels and stuff, but now boot them in PXE-EFI mode.
>>>
>>> I've been able to boot on syslinux.efi and keep my config files, but
>>> when I try to boot on a linux kernel, I get an error like "no such
>>> file or directory" while I see it download the file from the tftp.
>>>
>>> Is this a bug in syslinux?
>>> Or is there a deep incompatibility?
>>> And (a bit out of scope) if I get my old kernel to boot in EFI mode,
>>> will the driver efivars have access to the EFI variables? Or does the
>>> kernel need to be recompiled specially for EFI?
>>
>> Doubtful.  Yes (although I think most EFI kernels I've seen will
>> function for both).
>>
>> --Gene
>
> Sorry for answering that late. (I had some issues with my server's
> Ethernet NIC, and without it, no PXE / syslinux.)
>
> So, it's time to be a bit more specific.
> The kernel I want to boot in EFI mode is a debian installer. It *has*
> a module "efivars" loaded. Which means this kernel has been compiled
> with CONFIG_EFI_VARS, which itself depends on CONFIG_EFI. Therefore I
> should be able to boot this kernel in EFI mode.
>
> I don't remember whether I tried or not, so I'll re-test ASAP.
> However, as I discussed on IRC, the 'file' command only say "x86 boot
> sector".
>

Well... I can't boot that kernel.
All I see is a flashing message saying "No such file or directory"
then the vesamenu come back and the timeout countdown restart.
However, I can see that the kernel is not even downloaded from the tftp server.
All wireshark show me is:
- A Read Request for the kernel file: /debian-installer/efi64/linux.
- An Option Acknowledgement from the server (that seems pretty valid to me).
- An Error code (from the client to the server) with the code 0 and
message "No error, file closed".

I don't really know what happen at that time.
I guess it doesn't like the file name for some reason.

Celelibi


More information about the Syslinux mailing list