Work-in-progress to mount NFS root from udev, using the DHCP options and
allowing an override from the kernel command line. Supports NFSv4 w/locking
and NFSv2/v3 with nolock.
This is just an RFC patch, you'll note all the XXX markings where I've been
thinking about how to best do things. In addition, we really want to retry
DHCP and NFS mounting in a loop, in case the servers are down or overloaded
like when booting a full diskless cluster.
This changes the network config to run dhclient from within udev, and
allows multiple dhclients to run at once. It also sets the hostname and
adds a kernel command line option 'netdebug' to help debug network issues.
There are several snippits of shell code that are useful to multiple
scripts. Start by moving getarg() into the library.
Signed-off-by: David Dillow <dave@thedillows.org>
This patch series applies on top of my previous patch series, and
is mainly concerned with coding style updates and better documentation.
Apparently [[ ]] && { ; } type flow control is scary, so translate
most instances of them into standard if-then and case constructs.
Move srcmods definition into the function, as $kernel isn't defined yet when
dracut-functions is sourced from dracut.
Signed-off-by: David Dillow <dave@thedillows.org>
If the host supports kvm, use is. If this is not the case but the kqemu
module is loaded, run qemu with kqemu optimization. Otherwise fall-back to
pure usermode qemu.
If we purport to test booting to an md raid, we may as well test it.
We do not need the plymouth module and the normal crypt module to include
duplicate functionality.
Also create the root filesystem from within the virtual env, this way there
will be no nasty suprises w.r.t interactions with the host machine. This
is important when we test booting to LVM, LUKS, and mdraid.
Otherwise it would succeed silently when we KNOW it would fail, which is not cool.
Usually this means you didn't build switch_root in your dracut checkout and you used dracut -l.
(This currently cannot be done in a check script, because of the current design of check.
Andreas intends on discussing a redesign on the list.)
Prevent messages such as the following when booting dracut:
++ mknod /dev/null c 1 3
mknod: `/dev/null': File exists
The plymouth-start.sh script tries to create device nodes it needs, but which
have already been created by the /init script.
This patch makes the mknod calls conditional.
diffstat dracut-plymouth-prevent-mknod-errormsg.patch
plymouth-start.sh | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
remove "-d" as a short-alias for --debug. It collides with the
--driver short-alias.
If --debug is set, inst_script() spews binary "garbage" to the screen
which are interpreted as control characters by the terminal, prompting
the user to call "reset" after dracut has finished. This is related to
set -x printing binary headers from files to stdout.
As inst_script() is only checking if it is a script it should copy by
reading the first 80chars of the file and checking for the shebang line,
it is safe to call tr on the read in data and remove all unprintable
chars if the debug switch is set.