[GH-ISSUE #121] Chanloading from normal PXE Booting #1592

Closed
opened 2026-03-01 18:34:40 +03:00 by kerem · 14 comments
Owner

Originally created by @finlstrm on GitHub (Nov 27, 2016).
Original GitHub issue: https://github.com/netbootxyz/netboot.xyz/issues/121

Not sure where else to go for support, if this is not the right place please point me in the right direction and close this issue.

As the title says I have a normal legacy PXE boot environment already setup, I'd like to add netboot.xyz as one of the options and chainload to it - mostly for migration purposes. At some point I'll convert all our system images to this method and replace the legacy PXE with netboot.xyz.

I have the following added to my default menu file:

label 7
menu label ^7) iPXE Boot
kernel pxelinux.netboot/generic-ipxe.lkrn
append initrd=pxelinux.netboot/initrd

and the following (temporary) initrd:

#!ipxe
set net0/ip=dhcp
set dns 10.100.100.242
ifopen net0
####       boot.netboot.xyz initial loader       ####
#### see http://netboot.xyz for more information ####
set conn_type https
chain --autofree https://boot.netboot.xyz/menu.ipxe || echo HTTPS failed... attempting HTTP...
set conn_type http
chain --autofree http://boot.netboot.xyz/menu.ipxe || echo HTTP failed, localbooting...

It begins to work, but it keeps timeing out while retrieving menu.ipxe and cannot find out why. For testing I placed it on an unrestricted network and dropped the outgoing firewall but the issue remains.

Any help would be much appreciated!!!

Originally created by @finlstrm on GitHub (Nov 27, 2016). Original GitHub issue: https://github.com/netbootxyz/netboot.xyz/issues/121 Not sure where else to go for support, if this is not the right place please point me in the right direction and close this issue. As the title says I have a normal legacy PXE boot environment already setup, I'd like to add netboot.xyz as one of the options and chainload to it - mostly for migration purposes. At some point I'll convert all our system images to this method and replace the legacy PXE with netboot.xyz. I have the following added to my default menu file: ``` label 7 menu label ^7) iPXE Boot kernel pxelinux.netboot/generic-ipxe.lkrn append initrd=pxelinux.netboot/initrd ``` and the following (temporary) initrd: ``` #!ipxe set net0/ip=dhcp set dns 10.100.100.242 ifopen net0 #### boot.netboot.xyz initial loader #### #### see http://netboot.xyz for more information #### set conn_type https chain --autofree https://boot.netboot.xyz/menu.ipxe || echo HTTPS failed... attempting HTTP... set conn_type http chain --autofree http://boot.netboot.xyz/menu.ipxe || echo HTTP failed, localbooting... ``` It begins to work, but it keeps timeing out while retrieving menu.ipxe and cannot find out why. For testing I placed it on an unrestricted network and dropped the outgoing firewall but the issue remains. Any help would be much appreciated!!!
kerem closed this issue 2026-03-01 18:34:40 +03:00
Author
Owner

@finlstrm commented on GitHub (Dec 5, 2016):

Hi all,

I just figured out how to accomplish this. I simply changed the append portion of my menu entry to append dhcp && chain --autofree https://boot.netboot.xyz and netboot.xyz appears to be loading as desired.

<!-- gh-comment-id:264756702 --> @finlstrm commented on GitHub (Dec 5, 2016): Hi all, I just figured out how to accomplish this. I simply changed the append portion of my menu entry to `append dhcp && chain --autofree https://boot.netboot.xyz` and netboot.xyz appears to be loading as desired.
Author
Owner

@antonym commented on GitHub (Dec 5, 2016):

Sorry, just saw this, glad you got it working!

<!-- gh-comment-id:264969151 --> @antonym commented on GitHub (Dec 5, 2016): Sorry, just saw this, glad you got it working!
Author
Owner

@TechnologyClassroom commented on GitHub (Aug 1, 2018):

I got this working with SYSLINUX 6.03. I extracted the IPXE.KRN file from the ISO. I placed the file into my tftp at tools/netboot.xyz. I added this entry:

LABEL NETBOOTXYZ
  MENU LABEL netboot.xyz
  KERNEL tools/netboot.xyz/IPXE.KRN
<!-- gh-comment-id:409625089 --> @TechnologyClassroom commented on GitHub (Aug 1, 2018): I got this working with SYSLINUX 6.03. I extracted the IPXE.KRN file from the [ISO](https://boot.netboot.xyz/ipxe/netboot.xyz.iso). I placed the file into my tftp at tools/netboot.xyz. I added this entry: ``` LABEL NETBOOTXYZ MENU LABEL netboot.xyz KERNEL tools/netboot.xyz/IPXE.KRN ```
Author
Owner

@antonym commented on GitHub (Aug 1, 2018):

Should be able to use https://boot.netboot.xyz/ipxe/netboot.xyz.lkrn as well.

<!-- gh-comment-id:409641893 --> @antonym commented on GitHub (Aug 1, 2018): Should be able to use https://boot.netboot.xyz/ipxe/netboot.xyz.lkrn as well.
Author
Owner

@TechnologyClassroom commented on GitHub (Aug 1, 2018):

I was going to try that next, but those files have matching sha512sums.

LABEL NETBOOTXYZ
  MENU LABEL netboot.xyz
  KERNEL netboot.xyz.lkrn
<!-- gh-comment-id:409701601 --> @TechnologyClassroom commented on GitHub (Aug 1, 2018): I was going to try that next, but those files have matching sha512sums. ``` LABEL NETBOOTXYZ MENU LABEL netboot.xyz KERNEL netboot.xyz.lkrn ```
Author
Owner

@businessBoris commented on GitHub (Mar 28, 2019):

Should be able to use https://boot.netboot.xyz/ipxe/netboot.xyz.lkrn as well.

Sorry to butt-in @antonym, @TechnologyClassroom ; simply as "KERNEL https://boot.net.." ?
[ SYSLINUX/EXTLINUX ]

<!-- gh-comment-id:477812191 --> @businessBoris commented on GitHub (Mar 28, 2019): > Should be able to use https://boot.netboot.xyz/ipxe/netboot.xyz.lkrn as well. Sorry to butt-in @antonym, @TechnologyClassroom ; simply as "KERNEL https://boot.net.." ? [ SYSLINUX/EXTLINUX ]
Author
Owner

@djuarezg commented on GitHub (May 28, 2020):

Sorry for pingin on such an old issue but:

That works for a syslinux menu, but how can the same be accomplished for a grub.cfg menuentry?

<!-- gh-comment-id:635301976 --> @djuarezg commented on GitHub (May 28, 2020): Sorry for pingin on such an old issue but: That works for a syslinux menu, but how can the same be accomplished for a `grub.cfg` menuentry?
Author
Owner

@TechnologyClassroom commented on GitHub (May 28, 2020):

@djuarezg Try placing the file in /boot/ and try booting with something like this:

menuentry 'netboot.xyz' {
    KERNEL netboot.xyz.lkrn
}

I have not tested this. Report back with your findings.

<!-- gh-comment-id:635370523 --> @TechnologyClassroom commented on GitHub (May 28, 2020): @djuarezg Try placing the file in `/boot/` and try booting with something like this: ``` menuentry 'netboot.xyz' { KERNEL netboot.xyz.lkrn } ``` I have not tested this. Report back with your findings.
Author
Owner

@djuarezg commented on GitHub (May 28, 2020):

@TechnologyClassroom Cannot use KERNEL as it states it cannot find such command. Using linux netboot.xyz.lkrn reports a blank screen and using efi files does not work either.

<!-- gh-comment-id:635378267 --> @djuarezg commented on GitHub (May 28, 2020): @TechnologyClassroom Cannot use `KERNEL` as it states it cannot find such command. Using `linux netboot.xyz.lkrn` reports a blank screen and [using `efi` files does not work either.](https://github.com/netbootxyz/netboot.xyz/issues/639)
Author
Owner

@TechnologyClassroom commented on GitHub (May 28, 2020):

@djuarezg If you know syslinux works, you could always chain to syslinux that just has that entry as the default. It is not glamorous, but it would probably work.

<!-- gh-comment-id:635384958 --> @TechnologyClassroom commented on GitHub (May 28, 2020): @djuarezg If you know syslinux works, you could always chain to syslinux that just has that entry as the default. It is not glamorous, but it would probably work.
Author
Owner

@TechnologyClassroom commented on GitHub (May 28, 2020):

@djuarezg You are also trying this with the web address which is different than what I proposed in this thread. I did not want to use the web address as the security of upstream could be compromised without visible changes to the user.

<!-- gh-comment-id:635386549 --> @TechnologyClassroom commented on GitHub (May 28, 2020): @djuarezg You are also trying this with the web address which is different than what I proposed in this thread. I did not want to use the web address as the security of upstream could be compromised without visible changes to the user.
Author
Owner

@djuarezg commented on GitHub (May 28, 2020):

@TechnologyClassroom I do not mind having them locally, both web address and local files are fine for me. I guess that this is not strictly related as my issues are with GRUB for my UEFI machines.

<!-- gh-comment-id:635402206 --> @djuarezg commented on GitHub (May 28, 2020): @TechnologyClassroom I do not mind having them locally, both web address and local files are fine for me. I guess that this is not strictly related as my issues are with GRUB for my UEFI machines.
Author
Owner

@TechnologyClassroom commented on GitHub (May 28, 2020):

@djuarezg Did you test them locally in the above report? According to the other issue, the tests used the web addresses.

I was also using legacy boot last time I did this. I have never tested it with UEFI.

I would still recommend chaining to syslinux if you cannot get pure grub to work.

<!-- gh-comment-id:635408609 --> @TechnologyClassroom commented on GitHub (May 28, 2020): @djuarezg Did you test them locally in the above report? According to the other issue, the tests used the web addresses. I was also using legacy boot last time I did this. I have never tested it with UEFI. I would still recommend chaining to syslinux if you cannot get pure grub to work.
Author
Owner

@djuarezg commented on GitHub (May 28, 2020):

@djuarezg Did you test them locally in the above report? According to the other issue, the tests used the web addresses.

Yes, I actually left it using local files and updated my other issue so it does not mix both. I will try to see if chaining to syslinux works for me. Thanks!

EDIT: chaining to syslinux does not seem to work in our case

<!-- gh-comment-id:635412306 --> @djuarezg commented on GitHub (May 28, 2020): > @djuarezg Did you test them locally in the above report? According to the other issue, the tests used the web addresses. Yes, I actually left it using local files and updated my other issue so it does not mix both. I will try to see if chaining to syslinux works for me. Thanks! EDIT: chaining to syslinux does not seem to work in our case
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/netboot.xyz#1592
No description provided.