rules, hooks and modules are installed in $(DESTDIR)/usr/libexec/dracut/
instead of their corresponding sub-directories.
This patch fixes this.
--
Makefile | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
All modules now live in a subdirectory /modules.d. Each module is
self-contained -- it should contain everything that it will install
on the initrd. All modules must include a script named install, which
will be sourced by dracut. This script should do the actual file installation
using inst methods. The moddir variable will point to the full path to the
module dracut is currently working on.
As usual, this patch series applies on top of my previous patch series,
and is available as normalize-modules from http://git.fnordovax.org/dracut.
Static interfaces are still configured on the fly as we add them, but
discussions on the mailing list have suggested that we need to have finer
control over bringing up dhcp interfaces.
The default hook just runs all the requested dhclients in parallel and waits
for them to all return. If you need something more complicated than this, or
need to have more control over bringing interfaces up, you will probably need
to override some stuff in the 40network hook.
Provided that you are configuring them via DHCP. RARP, BOOTP, and static
configuration are not written yet.
Also, adding nic drivers really bloats the initrd.
I am looking for feedback on these patches from people who actually implement
booting over the network. This patch series does not include support for that
yet -- you will not find nfsroot= handling, or booting to a fs supplied by
dhcp yet. I do want to make it as easy as possible to add support for booting
over the network, as well as making it easy for people to customize things to
meet their site requirements.
This patch series is also available as the network-configurability branch at
http://git.fnordovax.org/dracut. It may be rebased without warning to keep
it in sync with the rest of dracut.
If the last character in the argument to search for is "=", then
getarg will echo all the text after the = as well as returning 0 or 1 depending
on whether or not the arg is found.
Otherwise, getarg will jsut return 0 if the exact test of the argument is found,
1 otherwise.
We now have mount hooks. They are sourced in an infinite loop until one of
them actually mounts the real root filesystem.
This makes it easier to add support for arbitrarily complex schemes to find
the root filesystem without having to patch the init script.
This patch series is also avaialble ass the hookify-finding-root branch at
http://git.fnordovax.org/dracut
Add some additional manglage to ensure that stdin/stdout is always pointing
the right thing. A more elegant way of doing this would be much appreciated
If exec fails, then the shell will die unless the next command
is part of a command list. So, exec $whatever || onoes is the way to go
There are also some minor cleanups that were leftovers from splitting
out switch_root in its current form.
This supercedes my previous switch_root patches, and applies on top of davej's
repo at git.kernel.org.
Nash is gone. In its place we have a reasonable switch_root implementation.
Of course, this switch_root is written in some rather hideous shell script,
and relies on some rather dodgy hacks. Rewriting in C would help things out.
However, it should be distro-independent, and it gets the job done.
Modules are now responsible for loading their hooks into the initrd.
This should be all the structure we need to make it easy for things
to integrate with dracut -- now to document and test it all.
We can use sh -c to accomplish the same goal
Also move cat back on to the list of debugging tools -- all the files we were
using it on in the initrd can use read to accomplish the same goal.
This replaces the eu-readelf and ld-linux.so.2 hackery.
As a bonus it will keep working if we (for some bizzare reason) need
to load a non-elf executable or shared library on the initrd.
This ensures that scripts will ahve their interpreter isntalled before
they get installed.
Also included a minor fixup that skips library checking if the binary
we are testing is already installed.
Any script placed in /pre-udev will be sourced just before udev starts
device scanning and loading.
Any script placed in /pre-mount will be sourced just before we try to
mount a root filesystem.
Any script placed in /pre-pivot will be sourced just before we switch to the
new root filesystem.
These hooks should be the minimum needed to add back plymouth and deal with
more advanced filesysem mounting needs (multipath, iscsi, nfs, nbd, etc.)
This is for tasks that should run after device discovery, but before
mounting the new rootfs. Things like cryptoroot and resume from hibernate
should go here.
Hooks are sourced, not executed as separate scripts.
init will ask for a passphrase directly if an encrypted root is detected.
Also, use udevadm settle with a 30 second timeout instead of a hardcoded
30 count loop.