UEFI syslinux does not load initrd over HTTP in PXE boot











up vote
1
down vote

favorite
1












I am trying to set up a GParted Live PXE boot and follow the PXELINUX instructions to set up the boot.



I've got it working with TFTP but now I want to switch the loading of vmzlinuz, initrd and other "large" files to HTTP because it is slow.



However, when I change, the initrd=/gparted/initrd (TFTP) to http://192.168.0.1/gparted/initrd in the pxe config, the loading screen hangs indefinitely at



Getting cached packet
My IP is 192.168.0.97
Loading vmlinuz... ok <-- that is still loadedvia TFTP)
Loading http://192.168.0.1/gparted/initrd...


Looking at the network traffic via wireshark I can see the relevant transmissions for /gparted/syslinux.efi, /gparted/ldlinux.e64, /gparted/pxelinux.cfg/default, /gparted/vmlinuz.
After that there is dead silence so I assume that the HTTP stack is not working as intended.



The PXELINUX page says:




Since version 5.10, a special PXELINUX binary, lpxelinux.0, natively supports HTTP and FTP transfers




However, the UEFI section says:




The "(l)pxelinux.0" bootloaders are capable of netbooting BIOS-based clients. Hardware using UEFI has to use the adequate "syslinux.efi" (for EFI IA32 or for EFI X64, respectively) instead of using "(l)pxelinux.0".




As you can see from the list of the TFTP loaded files, after my experience in my earlier PXE question, I have gone with the UEFI loader.



Is there a also an extra "l"-version of the UEFI bootloaders that offers HTTP support? What can I do to diagnose further?










share|improve this question






















  • According to this message, it should support HTTP. It may depend on UEFI features to do so, which may be broken in your specific implementation.
    – Daniel B
    Sep 9 '16 at 18:13










  • After experimenting a little, I find that Syslinux is unusable with UEFI netboot. I suggest you switch to something else like Grub2.
    – Daniel B
    Sep 9 '16 at 20:05










  • @DanielB: Thanks for the research effort. I was about to verify some other UEFI implementations but have very limited time. Make that comment into an answer with a bit of explanation what you tried and I will accept it.
    – Nobody
    Sep 9 '16 at 20:11















up vote
1
down vote

favorite
1












I am trying to set up a GParted Live PXE boot and follow the PXELINUX instructions to set up the boot.



I've got it working with TFTP but now I want to switch the loading of vmzlinuz, initrd and other "large" files to HTTP because it is slow.



However, when I change, the initrd=/gparted/initrd (TFTP) to http://192.168.0.1/gparted/initrd in the pxe config, the loading screen hangs indefinitely at



Getting cached packet
My IP is 192.168.0.97
Loading vmlinuz... ok <-- that is still loadedvia TFTP)
Loading http://192.168.0.1/gparted/initrd...


Looking at the network traffic via wireshark I can see the relevant transmissions for /gparted/syslinux.efi, /gparted/ldlinux.e64, /gparted/pxelinux.cfg/default, /gparted/vmlinuz.
After that there is dead silence so I assume that the HTTP stack is not working as intended.



The PXELINUX page says:




Since version 5.10, a special PXELINUX binary, lpxelinux.0, natively supports HTTP and FTP transfers




However, the UEFI section says:




The "(l)pxelinux.0" bootloaders are capable of netbooting BIOS-based clients. Hardware using UEFI has to use the adequate "syslinux.efi" (for EFI IA32 or for EFI X64, respectively) instead of using "(l)pxelinux.0".




As you can see from the list of the TFTP loaded files, after my experience in my earlier PXE question, I have gone with the UEFI loader.



Is there a also an extra "l"-version of the UEFI bootloaders that offers HTTP support? What can I do to diagnose further?










share|improve this question






















  • According to this message, it should support HTTP. It may depend on UEFI features to do so, which may be broken in your specific implementation.
    – Daniel B
    Sep 9 '16 at 18:13










  • After experimenting a little, I find that Syslinux is unusable with UEFI netboot. I suggest you switch to something else like Grub2.
    – Daniel B
    Sep 9 '16 at 20:05










  • @DanielB: Thanks for the research effort. I was about to verify some other UEFI implementations but have very limited time. Make that comment into an answer with a bit of explanation what you tried and I will accept it.
    – Nobody
    Sep 9 '16 at 20:11













up vote
1
down vote

favorite
1









up vote
1
down vote

favorite
1






1





I am trying to set up a GParted Live PXE boot and follow the PXELINUX instructions to set up the boot.



I've got it working with TFTP but now I want to switch the loading of vmzlinuz, initrd and other "large" files to HTTP because it is slow.



However, when I change, the initrd=/gparted/initrd (TFTP) to http://192.168.0.1/gparted/initrd in the pxe config, the loading screen hangs indefinitely at



Getting cached packet
My IP is 192.168.0.97
Loading vmlinuz... ok <-- that is still loadedvia TFTP)
Loading http://192.168.0.1/gparted/initrd...


Looking at the network traffic via wireshark I can see the relevant transmissions for /gparted/syslinux.efi, /gparted/ldlinux.e64, /gparted/pxelinux.cfg/default, /gparted/vmlinuz.
After that there is dead silence so I assume that the HTTP stack is not working as intended.



The PXELINUX page says:




Since version 5.10, a special PXELINUX binary, lpxelinux.0, natively supports HTTP and FTP transfers




However, the UEFI section says:




The "(l)pxelinux.0" bootloaders are capable of netbooting BIOS-based clients. Hardware using UEFI has to use the adequate "syslinux.efi" (for EFI IA32 or for EFI X64, respectively) instead of using "(l)pxelinux.0".




As you can see from the list of the TFTP loaded files, after my experience in my earlier PXE question, I have gone with the UEFI loader.



Is there a also an extra "l"-version of the UEFI bootloaders that offers HTTP support? What can I do to diagnose further?










share|improve this question













I am trying to set up a GParted Live PXE boot and follow the PXELINUX instructions to set up the boot.



I've got it working with TFTP but now I want to switch the loading of vmzlinuz, initrd and other "large" files to HTTP because it is slow.



However, when I change, the initrd=/gparted/initrd (TFTP) to http://192.168.0.1/gparted/initrd in the pxe config, the loading screen hangs indefinitely at



Getting cached packet
My IP is 192.168.0.97
Loading vmlinuz... ok <-- that is still loadedvia TFTP)
Loading http://192.168.0.1/gparted/initrd...


Looking at the network traffic via wireshark I can see the relevant transmissions for /gparted/syslinux.efi, /gparted/ldlinux.e64, /gparted/pxelinux.cfg/default, /gparted/vmlinuz.
After that there is dead silence so I assume that the HTTP stack is not working as intended.



The PXELINUX page says:




Since version 5.10, a special PXELINUX binary, lpxelinux.0, natively supports HTTP and FTP transfers




However, the UEFI section says:




The "(l)pxelinux.0" bootloaders are capable of netbooting BIOS-based clients. Hardware using UEFI has to use the adequate "syslinux.efi" (for EFI IA32 or for EFI X64, respectively) instead of using "(l)pxelinux.0".




As you can see from the list of the TFTP loaded files, after my experience in my earlier PXE question, I have gone with the UEFI loader.



Is there a also an extra "l"-version of the UEFI bootloaders that offers HTTP support? What can I do to diagnose further?







uefi http pxe tftp syslinux






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Sep 9 '16 at 17:55









Nobody

366220




366220












  • According to this message, it should support HTTP. It may depend on UEFI features to do so, which may be broken in your specific implementation.
    – Daniel B
    Sep 9 '16 at 18:13










  • After experimenting a little, I find that Syslinux is unusable with UEFI netboot. I suggest you switch to something else like Grub2.
    – Daniel B
    Sep 9 '16 at 20:05










  • @DanielB: Thanks for the research effort. I was about to verify some other UEFI implementations but have very limited time. Make that comment into an answer with a bit of explanation what you tried and I will accept it.
    – Nobody
    Sep 9 '16 at 20:11


















  • According to this message, it should support HTTP. It may depend on UEFI features to do so, which may be broken in your specific implementation.
    – Daniel B
    Sep 9 '16 at 18:13










  • After experimenting a little, I find that Syslinux is unusable with UEFI netboot. I suggest you switch to something else like Grub2.
    – Daniel B
    Sep 9 '16 at 20:05










  • @DanielB: Thanks for the research effort. I was about to verify some other UEFI implementations but have very limited time. Make that comment into an answer with a bit of explanation what you tried and I will accept it.
    – Nobody
    Sep 9 '16 at 20:11
















According to this message, it should support HTTP. It may depend on UEFI features to do so, which may be broken in your specific implementation.
– Daniel B
Sep 9 '16 at 18:13




According to this message, it should support HTTP. It may depend on UEFI features to do so, which may be broken in your specific implementation.
– Daniel B
Sep 9 '16 at 18:13












After experimenting a little, I find that Syslinux is unusable with UEFI netboot. I suggest you switch to something else like Grub2.
– Daniel B
Sep 9 '16 at 20:05




After experimenting a little, I find that Syslinux is unusable with UEFI netboot. I suggest you switch to something else like Grub2.
– Daniel B
Sep 9 '16 at 20:05












@DanielB: Thanks for the research effort. I was about to verify some other UEFI implementations but have very limited time. Make that comment into an answer with a bit of explanation what you tried and I will accept it.
– Nobody
Sep 9 '16 at 20:11




@DanielB: Thanks for the research effort. I was about to verify some other UEFI implementations but have very limited time. Make that comment into an answer with a bit of explanation what you tried and I will accept it.
– Nobody
Sep 9 '16 at 20:11










1 Answer
1






active

oldest

votes

















up vote
2
down vote



accepted










According to this message, syslinux.efi is supposed to support HTTP. It may rely on some UEFI functions/services to do so. Your board’s specific UEFI implementation may be broken in that regard.



So I performed some tests using my PC and QEMU with the OVMF firmware, using my existing PXELINUX config. I observed the following effects:




  • When I had local boot as the default and a timeout set, it would exit immediately, returning me to the boot selection menu (PC) or rebooting (QEMU).

  • When I had any UI (tested: vesamenu.c32, menu.c32) enabled, it would hang (PC) or reboot (QEMU).

  • When I removed UI, DEFAULT and TIMEOUT, I arrived at the usual text-mode prompt. Nothing would boot, though, it only complained about neither UI nor DEFAULT being set.


This experience, combined with the fact that GRUB2 worked flawlessly including graphics mode on both my PC and QEMU leads me to the conclusion that SYSLINUX 6.03 is not suitable (yet) for UEFI netboot.



Unfortunately, GRUB2 wasn’t made to be set up “by hand″. It is also very heavy, taking several seconds to load over PXE (using the regular modular version). I don’t know any better alternative, though.






share|improve this answer





















    Your Answer








    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "3"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1122753%2fuefi-syslinux-does-not-load-initrd-over-http-in-pxe-boot%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    2
    down vote



    accepted










    According to this message, syslinux.efi is supposed to support HTTP. It may rely on some UEFI functions/services to do so. Your board’s specific UEFI implementation may be broken in that regard.



    So I performed some tests using my PC and QEMU with the OVMF firmware, using my existing PXELINUX config. I observed the following effects:




    • When I had local boot as the default and a timeout set, it would exit immediately, returning me to the boot selection menu (PC) or rebooting (QEMU).

    • When I had any UI (tested: vesamenu.c32, menu.c32) enabled, it would hang (PC) or reboot (QEMU).

    • When I removed UI, DEFAULT and TIMEOUT, I arrived at the usual text-mode prompt. Nothing would boot, though, it only complained about neither UI nor DEFAULT being set.


    This experience, combined with the fact that GRUB2 worked flawlessly including graphics mode on both my PC and QEMU leads me to the conclusion that SYSLINUX 6.03 is not suitable (yet) for UEFI netboot.



    Unfortunately, GRUB2 wasn’t made to be set up “by hand″. It is also very heavy, taking several seconds to load over PXE (using the regular modular version). I don’t know any better alternative, though.






    share|improve this answer

























      up vote
      2
      down vote



      accepted










      According to this message, syslinux.efi is supposed to support HTTP. It may rely on some UEFI functions/services to do so. Your board’s specific UEFI implementation may be broken in that regard.



      So I performed some tests using my PC and QEMU with the OVMF firmware, using my existing PXELINUX config. I observed the following effects:




      • When I had local boot as the default and a timeout set, it would exit immediately, returning me to the boot selection menu (PC) or rebooting (QEMU).

      • When I had any UI (tested: vesamenu.c32, menu.c32) enabled, it would hang (PC) or reboot (QEMU).

      • When I removed UI, DEFAULT and TIMEOUT, I arrived at the usual text-mode prompt. Nothing would boot, though, it only complained about neither UI nor DEFAULT being set.


      This experience, combined with the fact that GRUB2 worked flawlessly including graphics mode on both my PC and QEMU leads me to the conclusion that SYSLINUX 6.03 is not suitable (yet) for UEFI netboot.



      Unfortunately, GRUB2 wasn’t made to be set up “by hand″. It is also very heavy, taking several seconds to load over PXE (using the regular modular version). I don’t know any better alternative, though.






      share|improve this answer























        up vote
        2
        down vote



        accepted







        up vote
        2
        down vote



        accepted






        According to this message, syslinux.efi is supposed to support HTTP. It may rely on some UEFI functions/services to do so. Your board’s specific UEFI implementation may be broken in that regard.



        So I performed some tests using my PC and QEMU with the OVMF firmware, using my existing PXELINUX config. I observed the following effects:




        • When I had local boot as the default and a timeout set, it would exit immediately, returning me to the boot selection menu (PC) or rebooting (QEMU).

        • When I had any UI (tested: vesamenu.c32, menu.c32) enabled, it would hang (PC) or reboot (QEMU).

        • When I removed UI, DEFAULT and TIMEOUT, I arrived at the usual text-mode prompt. Nothing would boot, though, it only complained about neither UI nor DEFAULT being set.


        This experience, combined with the fact that GRUB2 worked flawlessly including graphics mode on both my PC and QEMU leads me to the conclusion that SYSLINUX 6.03 is not suitable (yet) for UEFI netboot.



        Unfortunately, GRUB2 wasn’t made to be set up “by hand″. It is also very heavy, taking several seconds to load over PXE (using the regular modular version). I don’t know any better alternative, though.






        share|improve this answer












        According to this message, syslinux.efi is supposed to support HTTP. It may rely on some UEFI functions/services to do so. Your board’s specific UEFI implementation may be broken in that regard.



        So I performed some tests using my PC and QEMU with the OVMF firmware, using my existing PXELINUX config. I observed the following effects:




        • When I had local boot as the default and a timeout set, it would exit immediately, returning me to the boot selection menu (PC) or rebooting (QEMU).

        • When I had any UI (tested: vesamenu.c32, menu.c32) enabled, it would hang (PC) or reboot (QEMU).

        • When I removed UI, DEFAULT and TIMEOUT, I arrived at the usual text-mode prompt. Nothing would boot, though, it only complained about neither UI nor DEFAULT being set.


        This experience, combined with the fact that GRUB2 worked flawlessly including graphics mode on both my PC and QEMU leads me to the conclusion that SYSLINUX 6.03 is not suitable (yet) for UEFI netboot.



        Unfortunately, GRUB2 wasn’t made to be set up “by hand″. It is also very heavy, taking several seconds to load over PXE (using the regular modular version). I don’t know any better alternative, though.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Sep 9 '16 at 20:38









        Daniel B

        32.9k75986




        32.9k75986






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Super User!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1122753%2fuefi-syslinux-does-not-load-initrd-over-http-in-pxe-boot%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            AnyDesk - Fatal Program Failure

            How to calibrate 16:9 built-in touch-screen to a 4:3 resolution?

            QoS: MAC-Priority for clients behind a repeater