Basically dracut has a problem with netroot when booting with multiple
nics. If we have multiple interfaces online at the same time, we don't
really know which interface to use for default-route or dhcp root-path
source.
This series of patches adresses this problem by delegating the real
interface configuration to netroot and introducing a new cmdline
argument. I'll try to explain to solution with two use cases:
Case 1: Multiple interfaces with ip=dhcp or ip=client-ip... but no <dev>
The problem here is that we can't up just every eth that pops up.
Default-route or whatever will get confused.
The solution here is that ifup and/or dhclient script just write the
necessary ip statements into /tmp/net.$dev.* and netroot (which is
synchronized by a lock) just uses one interface at a time, deconfiguring
it if mounting fails.
Case 2: Multiple interfaces with multiple ip= lines
This is a case where the user expects all interfaces to be up before
mounting. Think bonding, iscsi multipathing, etc.
The solution here is that the ip cmdline parsers enforces the presence
of <dev> for multiple ip= lines and further demands that the new
argument bootdev contains the name of the primary interface to be used
for routing etc. Configuration is of course again delegated to netroot
but in this case netroot takes additional care to "wait" for all
required interfaces to be up.
In order to ensure correct ip= lines I've added a lot of cmdline
parseing and some mostly minor rewrites of actual netroot handlers.
Thanks for reviewing (or accepting) the stuff,
Philippe
--
To unsubscribe from this list: send the line "unsubscribe initramfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html