Bug 1317780 - Fedora 23 distribution ISOs cannot PXE boot
Summary: Fedora 23 distribution ISOs cannot PXE boot
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: dracut
Version: 24
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: dracut-maint-list
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-03-15 08:20 UTC by patpat
Modified: 2016-05-11 14:29 UTC (History)
11 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-03-18 10:15:30 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description patpat 2016-03-15 08:20:18 UTC
Description of problem:
Fedora 23 distribution ISOs include a new initrd style.
The new (dracut made) initrds do not include CIFS/HTML/NFS support then we cannot PXE boot Fedora ISOs (not even the "netinst" flavors!) therefore we are forced to burn ISOs or to prepare USB pendrives.

Version-Release number of selected component (if applicable):
All the Fedora 23 distribution ISOs present this problem
Red Hat distros are always rock solid when it comes to PXE boot;
why Fedora 23 changes on this point now.

How reproducible:
Always when trying to PXE boot any Fedora 23 ISO,

Steps to Reproduce:
Fedora 22 PXE boots with (i.e. using Serva)
kernel_bios   = /NWA_PXE/$HEAD_DIR$/isolinux/vmlinuz
append_bios   = initrd=/NWA_PXE/$HEAD_DIR$/isolinux/initrd.img root=live:http://$IP_BSRV$/NWA_PXE/$HEAD_DIR$/LiveOS/squashfs.img ksdevice=bootif repo=http://$IP_BSRV$/NWA_PXE/$HEAD_DIR$/ rootfstype=auto ro rd.live.image rhgb rd.luks=0 rd.md=0 rd.dm=0


Actual results:
Fedora 23 says it cannot handle root=live:http:

Expected results:
initrd should contain code to deal with HTTP/CIFS etc in order to PXE boot as Red-Hat perfectly does

Additional info:
-

Best,
Patrick

Comment 1 Harald Hoyer 2016-03-15 15:32:26 UTC
reassigning to livecd to question why the "livenet" dracut module is not included in the LiveCD initrd's.

Comment 2 Brian Lane 2016-03-15 16:56:05 UTC
I don't think there were any big changes between f22 and f23. Live images have, as far as I can tell, never included livenet. I checked f22 and f23 workstation and neither have it. I think the normal way people have been PXE booting live images is to use the livecd-iso-to-pxeboot tool which appends the squashfs.img to the initrd and uses the loop driver to access it.

On the other hand the  netinst iso's do include livenet, and for F24 live will also include it. F24 *is* changing how live images are created, using a process that is closer to how netinst is made (livemedia-creator uses parts of lorax for this).

But be aware that only live should use live: for netinst and DVD images you should PXE boot with inst.stage2 so that the anaconda-dracut module works properly.

I'm not sure why live:http worked for you previously, unless something else in dracut was handling the http part.

Comment 3 patpat 2016-03-15 17:43:34 UTC
ok if you see here:
http://vercot.com/~serva/an/NonWindowsPXE3.html
you can see how to PXE boot Fedora 22 and older while 23 is not possible.

People want to get the distribution (live or not) ISO, put it on a PXE server and boot from it; what you describe (please don't be mad at me) is some guesswork that tells me you probably do not PXE boot very often.

>I don't think there were any big changes between f22 and f23.
you are guessing. They changed; they used to be similar to Red Hat now they include dracut created initrds w/o net support.

>Live images have, as far as I can tell, never included livenet.
guesswork plus livenet has nothing to do with having Fedora distros including initrds able to retrieve the distro components from a network after the kernel was PXE booted.

>I think the normal way people have been PXE booting live images is to 
>use the livecd-iso-to-pxeboot tool which appends the squashfs.img 
>to the initrd and uses the loop driver to access it.
guesswork, this is not how people PXE boot a Fedora or any other distribution ISOs.

>On the other hand the  netinst iso's do include livenet, 
You still cannot see it. Even including "livenet" the new netinst ISOs "cannot" be PXE booted what is really "ironic". Please understand, the objective is network retrieving the distro componets with the code included within the "initrd" file no the one that later on will be added by the squashfs or some other img or component. It is the early initrd the one that has to now how to deal with the network in order to retrieve components.

I encourage you to see how Red Hat initrds are made; their ISOs are always being able to PXE boot w/o changing anything. PXE should not be a feature only available on certain flavors of a distro. Please follow Red Hat on this. you can also see how RHEL ISOs and Centos are easily PXE booted here:
http://vercot.com/~serva/an/NonWindowsPXE3.html

Comment 4 patpat 2016-03-15 20:32:39 UTC
>reassigning to livecd to question why the "livenet" 
>dracut module is not included in the LiveCD initrd's.

This does not make much sense, what I'm reporting here affects not only live distributions and it is not related to "livenet"

When an ISO boots loads a kernel + initrd,
the init script maps stuff, starts things and then loads a squashfs with a live distro or starts a discrete install process.
If the ISO is booted from a DVD or pendrive the components are just loaded from the corresponding drive but in a PXE boot situation the booted initrd must have net support and also the init script must know how to retrieve stuff using HTML or mapping a drive using CIFS or NFS in order to net retrieve the squashfs. Therefore it doesn't matter if the squashfs has all the net supportbells & whistles if it cannot be transferred because the initrd does not know how... got it?

Comment 5 patpat 2016-03-17 08:28:48 UTC
The problem is solved here by Antony Messerli.
https://bugzilla.redhat.com/show_bug.cgi?id=1280103

I've just created a complementary initrd injecting 
/usr/lib/systemd/system-generators/dracut-livenet-generator
with the code from here 
https://github.com/antonym/dracut/blob/a455ad1c272170664022b4cc0a160fe9c737d993/modules.d/90livenet/livenet-generator.sh
and now Fedora 23 PXE boots retrieving stuff by HTTP...

Comment 6 patpat 2016-03-17 17:12:40 UTC
NOT A BUG?? you guys are AWESOME...

Comment 7 Harald Hoyer 2016-03-18 10:12:58 UTC
(In reply to patpat from comment #5)
> The problem is solved here by Antony Messerli.
> https://bugzilla.redhat.com/show_bug.cgi?id=1280103
> 
> I've just created a complementary initrd injecting 
> /usr/lib/systemd/system-generators/dracut-livenet-generator
> with the code from here 
> https://github.com/antonym/dracut/blob/
> a455ad1c272170664022b4cc0a160fe9c737d993/modules.d/90livenet/livenet-
> generator.sh
> and now Fedora 23 PXE boots retrieving stuff by HTTP...

This would mean a respin of the ISOs, which is probably not going to happen.
And of course, this is a bug. A change in systemd required the "dracut-livenet-generator".

Comment 8 Harald Hoyer 2016-03-18 10:15:30 UTC
This should be fixed with Fedora 24 and because this bug is for F24, I am closing this as "CURRENTRELEASE"

Comment 9 patpat 2016-03-18 10:36:03 UTC
Everything OK.
Thanks guys.


Note You need to log in before you can comment on or make changes to this bug.