[Fedora-livecd-list] Seemingly divergent netboot/disklessrc and livecd/mayflower for initrd, init, etc...

Bryan J Smith bjs at redhat.com
Wed Oct 15 21:01:23 UTC 2008

First off, sorry for the cross-post.

Secondly, let's take provisioning (Cobbler/Koan) and configuration
management (Puppet) completely out of the question here.  As much as I
would love to focus on such, I'm looking at the boot/initrd aspects for
now.  I'd love to come back to them, but I'm on a tight schedule.

Third, I've spent the last few days going through all versions of
Anaconda, PyKickstart, Netboot and LiveCD (in addition to some LTSP
prior, although I need to refresh myself) -- for RHEL 5 w/EPEL, the
CentOS/Scientific "upgraded" versions (over RHEL 5/EPEL), Fedora 9 and
even Fedora 10 Beta.  I've really pulled out some hair.  ;)  Now more
than ever it's clear to me that there have been many divergent paths
taken, although I could just be ignorant (or stating that from

For this post, I will focus on netboot/disklessrc and livecd/mayflower,
and possibly a replacement that focuses on base RHEL 5 support.  Please
correct any analysis, assumption, comment, etc... that is made in error
or is otherwise leading down the wrong track.

- Netboot/disklessrc

The current approach in system-config-netboot for Diskless clients is
legacy (not even nash, so it looks like some re-use from circa-2003 or
even earlier), but the "disklessrc" approach with they way it loads in
the Diskless initrd "just works."  Not only does it "just work," but it
works for RHEL 5 (possibly earlier).

One of the complaints I've heard second-hand about supporting RHEL 5 in
various setups (LTSP, etc...) is the lack of network card detection and
setup, things that newer Anaconda and init processes seem to do in newer
Fedora releases.  Well, in all honesty, the disklessrc seems to do the
job fine for RHEL 5 -- using PCI IDs, etc...  Sure, it's not flawless,
but for a diskless client (which is typically wired), it works.

The "big thing" missing from the system-config-netboot is a lot of
automation in generation of the system image/tree.  E.g., it doesn't run
Anaconda's install-to-disc like LiveCD does (including the EPEL 013-5
release for RHEL 5).

- LiveCD/mayflower

I've looked at the LiveCD tools now, including the mayflower initrd
builder.  I've also looked at the results.  A lot of newer developments
make assumptions on newer Anaconda/PyKickstart releases of post-RHEL 5
Fedora releases.  I would definitely be interested in anyone who has
concise information on what features are being used, otherwise, I'm
looking at them as non-requirements (with my focus on RHEL 5).

I've noted a few things I really don't care for, like dumping all
modules in /lib/modules of the initrd, instead of maintaining some sort
of tree like netboot/disklessrc does/uses.  I also don't know if just
pulling out the squashfs image is the most ideal for iso-to-disc, but I
understand why it was done that way (to use the existing build).

So it's clear it shouldn't be too terribly difficult to come up with
something that adds in the Diskless option, network modules, etc... to
add that.

- What I want (should force myself to do)

What I want -- aka what I should force myself to do so I more than a fat
guy just eating up oxygen ;) -- is try to build a new, flexible initrd
creator (call it "snitrd" out of my frustration ;) and .  I don't know
if there are other projects out there trying to do this, so please let
me know if someone already has been tackling this.

The concept is basically this (putting the Anaconda install-to-disc to
the side for now) ...

- Can generate a Diskless initrd (disklessrc init, various network)
- Can generate a ISO initrd (like mayflower's init, various fs/etc...)
- Can generate a Disk initrd (more than just squashfs?  new init)
- Can generate a "Super" initrd (take various boot init= options)

Additionally, I was going to add the following options in the new "Disk"
initrd init (think flash/embedded):  

- Option to compare image checksums to TFTP server, update if different
- Option to boot diskless if local boot fails (trap failures/set flag)

Does anyone else think this is a good idea?  I don't think the Diskless,
ISO and basic Disk initrd/init options are too difficult.  The more
embedded options could come later, as could the RHEL 5
Anaconda/PyKickstart v. newer Fedora differences/detections as well.

Right now I could really use a single toolset to do at least some of the
above.  And I'm having to choose between the limited/stagnant
Netboot/disklessrc and the more leading Fedora-centric LiveCD/mayflower.

Anyone think I'm off my rocker?  Over-complicating a simple issue?
Don't know the first thing of what I'm talking about?  Etc...?  ;)

Bryan J Smith - Senior Consultant - Red Hat GPS SE US
mailto:bjs at redhat.com      +1 (407) 489-7013 (Mobile) 
mailto:b.j.smith at ieee.org  (non-RH/ext to Blackberry) 
For every dollar you spend  on Red Hat solutions, you
not only fund  the leading community  development re-
source, but you receive the  #1 IT industry leader in
corporate value.  http://www.redhat.com/promo/vendor/ 

More information about the livecd mailing list