Harald Hoyer [Fri, 3 Jul 2009 15:45:55 +0000 (17:45 +0200)]
rdshell
Harald Hoyer [Fri, 3 Jul 2009 15:44:10 +0000 (17:44 +0200)]
initqueue now loops until /dev/root exists or root is mounted
init now has the following points to inject scripts:
/cmdline/*.sh
scripts for command line parsing
/pre-udev/*.sh
scripts to run before udev is started
/pre-trigger/*.sh
scripts to run before the main udev trigger is pulled
/initqueue/*.sh
runs in parallel to the udev trigger
Udev events can add scripts here with /sbin/initqueue.
If /sbin/initqueue is called with the "--onetime" option, the script
will be removed after it was run.
If /initqueue/work is created and udev >= 143 then this loop can
process the jobs in parallel to the udevtrigger.
If the udev queue is empty and no root device is found or no root
filesystem was mounted, the user will be dropped to a shell after
a timeout.
Scripts can remove themselves from the initqueue by "rm $job".
/pre-mount/*.sh
scripts to run before the root filesystem is mounted
NFS is an exception, because it has no device node to be created
and mounts in the udev events
/mount/*.sh
scripts to mount the root filesystem
NFS is an exception, because it has no device node to be created
and mounts in the udev events
If the udev queue is empty and no root device is found or no root
filesystem was mounted, the user will be dropped to a shell after
a timeout.
/pre-pivot/*.sh
scripts to run before the real init is executed and the initramfs
disappears
All processes started before should be killed here.
The behaviour of the dmraid module demonstrates how to use the new
mechanism. If it detects a device which is part of a raidmember from a
udev rule, it installs a job to scan for dmraid devices, if the udev
queue is empty. After a scan, it removes itsself from the queue.
Harald Hoyer [Fri, 3 Jul 2009 12:56:20 +0000 (14:56 +0200)]
put back the nfs mount in the udev event
it solves the following case:
root=/dev/nfs nfsroot=server:/path
- the server could be reachable on any interface
- any interface can get an IP by dhcp
- only one IP is allowed to mount the root
Harald Hoyer [Fri, 3 Jul 2009 12:47:49 +0000 (14:47 +0200)]
fail iscsiroot, if iscsistart fails
Harald Hoyer [Fri, 3 Jul 2009 11:27:26 +0000 (13:27 +0200)]
add rm to be installed for initqueue
Harald Hoyer [Fri, 3 Jul 2009 11:17:08 +0000 (13:17 +0200)]
add firmware packages to be required by the dracut-generic package
Harald Hoyer [Fri, 3 Jul 2009 10:44:45 +0000 (12:44 +0200)]
remove 50plymouth-pre0.7 module
Harald Hoyer [Fri, 3 Jul 2009 10:24:54 +0000 (12:24 +0200)]
Defer mount to the real mount loop
Udev rules set a /dev/root symlink to the real root and add
a mount script to /mount/. This enables the proper use of pre-mount
scripts and prevents mount being killed by a udev timeout.
Harald Hoyer [Fri, 3 Jul 2009 09:09:33 +0000 (11:09 +0200)]
output everything to /dev/kmesg and add dmesg for the emergency_shell
Harald Hoyer [Fri, 3 Jul 2009 09:08:58 +0000 (11:08 +0200)]
add binutiles requirement to specfile (because of nm)
Harald Hoyer [Fri, 3 Jul 2009 09:07:16 +0000 (11:07 +0200)]
add kernel-modules module to testsuite images
Daniel Drake [Thu, 2 Jul 2009 09:06:15 +0000 (10:06 +0100)]
Remove modules dependency
This makes it possible to build a dracut initramfs without modules,
where all needed kernel drivers are built into the kernel image.
Daniel Drake [Thu, 2 Jul 2009 14:15:47 +0000 (15:15 +0100)]
Add firmware loading support
Seewer Philippe [Thu, 2 Jul 2009 14:03:39 +0000 (16:03 +0200)]
Don't use absolute paths for utilities
Harald Hoyer [Thu, 2 Jul 2009 12:50:46 +0000 (14:50 +0200)]
do not add debug module by default
Harald Hoyer [Thu, 2 Jul 2009 12:50:22 +0000 (14:50 +0200)]
fixed adding modules via -a
Harald Hoyer [Thu, 2 Jul 2009 11:14:57 +0000 (13:14 +0200)]
add "--add" option to the manpage
Harald Hoyer [Thu, 2 Jul 2009 09:59:46 +0000 (11:59 +0200)]
beautified devtmpfs mount
Harald Hoyer [Thu, 2 Jul 2009 09:57:23 +0000 (11:57 +0200)]
fixed --add option handling
Harald Hoyer [Thu, 2 Jul 2009 09:48:27 +0000 (11:48 +0200)]
version 0.3
Harald Hoyer [Thu, 2 Jul 2009 09:33:34 +0000 (11:33 +0200)]
specfile: require /sbin/switch_root and turn on switch_root generation for F12
Harald Hoyer [Thu, 2 Jul 2009 09:42:35 +0000 (11:42 +0200)]
switch to initqueue handling of events
Jobs are no longer handled inside the udev events.
/sbin/initqueue is called with the commands to queue.
init will work on these jobs sequentially, so that we prevent jobs
from being killed by udev timeouts.
This serialization also prevents some problems introduced by
the udev event parallelization.
Harald Hoyer [Thu, 2 Jul 2009 09:40:05 +0000 (11:40 +0200)]
let iSCSI try to mount the complete LUN specified
Harald Hoyer [Thu, 2 Jul 2009 09:42:05 +0000 (11:42 +0200)]
try harder to kill udev
Harald Hoyer [Thu, 2 Jul 2009 09:38:37 +0000 (11:38 +0200)]
derror if we can't install switch_root
Harald Hoyer [Thu, 2 Jul 2009 09:37:00 +0000 (11:37 +0200)]
omit plymouth and add debug module for the testsuite clients
Harald Hoyer [Thu, 2 Jul 2009 09:35:01 +0000 (11:35 +0200)]
bail out of cryptroot-ask, if we have already asked about the password
Harald Hoyer [Thu, 2 Jul 2009 09:32:32 +0000 (11:32 +0200)]
add --add option to add modules to the "all" list
Warren Togami [Wed, 1 Jul 2009 19:46:48 +0000 (15:46 -0400)]
Clean up NFS comments.
Warren Togami [Wed, 1 Jul 2009 19:41:26 +0000 (15:41 -0400)]
Remove the NBD legacy format. It wasn't actually matching Debian's nbdroot implementation.
Talked with Debian nbdroot author and he agreed we shouldn't support their obsolete syntax in dracut.
Their root=/dev/nbd[0-9] is no longer needed. Also their syntax was very standardized requiring
a separate boot= parameter.
Harald Hoyer [Wed, 1 Jul 2009 14:22:45 +0000 (16:22 +0200)]
version 0.2
Harald Hoyer [Wed, 1 Jul 2009 18:53:57 +0000 (20:53 +0200)]
unset netroot before we return (it was set to $root without checkin)
Harald Hoyer [Wed, 1 Jul 2009 18:51:30 +0000 (20:51 +0200)]
use different multicast ports for the different testsuites
Harald Hoyer [Wed, 1 Jul 2009 17:26:21 +0000 (19:26 +0200)]
omit the plymouth module in the testsuite
Harald Hoyer [Wed, 1 Jul 2009 15:49:20 +0000 (17:49 +0200)]
use _all_ modules to run the test, in case another module fails
also run the tests with 256MB virtual machines
Harald Hoyer [Wed, 1 Jul 2009 15:49:50 +0000 (17:49 +0200)]
do not assume nfs for root=/dev/... but for /dev/nfs
Harald Hoyer [Wed, 1 Jul 2009 12:02:52 +0000 (14:02 +0200)]
man page update
Harald Hoyer [Wed, 1 Jul 2009 12:40:45 +0000 (14:40 +0200)]
specfile cleanup
removed mkinitrd replacement
Harald Hoyer [Tue, 30 Jun 2009 14:12:12 +0000 (16:12 +0200)]
prepare init to mount devtmpfs instead of tmpfs on /dev
Harald Hoyer [Tue, 30 Jun 2009 14:10:06 +0000 (16:10 +0200)]
let dmraid remove the used partitions
Warren Togami [Tue, 30 Jun 2009 22:22:44 +0000 (18:22 -0400)]
Fix legacy root=/dev/nfs nfsroot=IP:path case
TODO: root=/dev/nfs DHCP cases are still broken.
Warren Togami [Tue, 30 Jun 2009 22:03:16 +0000 (18:03 -0400)]
NFS empty path becomes "/tftpboot/%s" only if root=/dev/nfs legacy mode
Warren Togami [Tue, 30 Jun 2009 21:48:56 +0000 (17:48 -0400)]
Cleanup parse-nfsroot and NFS tests.
TODO: root=/dev/nfs is still broken.
Warren Togami [Tue, 30 Jun 2009 20:38:57 +0000 (16:38 -0400)]
Add test for Legacy root=IP:path NFSv3 syntax
Warren Togami [Tue, 30 Jun 2009 20:27:45 +0000 (16:27 -0400)]
netroot= variant is not supported for NFS, you must use root=
TODO: This temporarily breaks Legacy root=/dev/nfs.
Warren Togami [Tue, 30 Jun 2009 19:35:18 +0000 (15:35 -0400)]
Really fix --drivers
Warren Togami [Tue, 30 Jun 2009 19:17:08 +0000 (15:17 -0400)]
Fix case where --drivers was specified.
Warren Togami [Tue, 30 Jun 2009 18:36:57 +0000 (14:36 -0400)]
Detect block drivers during dracut since we cannot rely on the modules.block list.
Seewer Philippe [Fri, 26 Jun 2009 03:28:38 +0000 (23:28 -0400)]
Bugfix: Fix BOOTIF argument translation
Warren Togami [Wed, 24 Jun 2009 04:34:24 +0000 (00:34 -0400)]
Clarify some NFS parsing and point out things that need to be fixed.
Warren Togami [Tue, 23 Jun 2009 21:08:39 +0000 (17:08 -0400)]
Remove legacy nfsroot.txt derived shortcuts and accompanying tests.
(further cleanup is needed)
Harald Hoyer [Tue, 23 Jun 2009 05:47:42 +0000 (07:47 +0200)]
prompt the crypto disk, when asking for a password
also check, if root is already mounted and flock against
console activities.
Harald Hoyer [Tue, 23 Jun 2009 05:44:56 +0000 (07:44 +0200)]
add Requires of mkinitrd to dracut rpm
Warren Togami [Mon, 22 Jun 2009 20:40:09 +0000 (16:40 -0400)]
Remove dracut invented variations of Legacy nfsroot.txt syntax and accompanying tests.
- Remove root=nfs nfsroot=...
- Remove root=nfs4 nfsroot=...
- Remove root=/dev/nfs4 nfsroot=...
- Legacy nfsroot= without root=/dev/nfs should be unsupported according to the nfsroot.txt.
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/filesystems/nfsroot.txt
45 root=/dev/nfs
46
47 This is necessary to enable the pseudo-NFS-device. Note that it's not a
48 real device but just a synonym to tell the kernel to use NFS instead of
49 a real device.
Harald Hoyer [Fri, 19 Jun 2009 12:40:09 +0000 (14:40 +0200)]
mv Authors AUTHORS, add AUTHORS to specfile
Harald Hoyer [Fri, 19 Jun 2009 11:53:46 +0000 (13:53 +0200)]
add target for "dist" and "gitrpm"
"make gitrpm" creates an rpm from the last git checkin
"make rpm" creates an rpm for the version tagged with $VERSION
"make dist" creates a tarball for the version tagged with $VERSION
Harald Hoyer [Fri, 19 Jun 2009 11:43:06 +0000 (13:43 +0200)]
specfile changes
Harald Hoyer [Fri, 19 Jun 2009 11:41:55 +0000 (13:41 +0200)]
add README.generic
Harald Hoyer [Fri, 19 Jun 2009 11:36:30 +0000 (13:36 +0200)]
/usr/lib/dracut -> /usr/share/dracut
Harald Hoyer [Fri, 19 Jun 2009 10:19:40 +0000 (12:19 +0200)]
removed shebang from .sh and changed mode to 0644
Harald Hoyer [Fri, 19 Jun 2009 10:17:40 +0000 (12:17 +0200)]
renamed dracut-lib to dracut-lib.sh
Harald Hoyer [Fri, 19 Jun 2009 10:10:46 +0000 (12:10 +0200)]
dracut.spec without switch_root
Harald Hoyer [Fri, 19 Jun 2009 10:09:14 +0000 (12:09 +0200)]
updated switch_root.c
matches the version, which will go to util-linux-ng
Harald Hoyer [Fri, 19 Jun 2009 09:12:24 +0000 (11:12 +0200)]
add rdblacklist command line parameter
Harald Hoyer [Fri, 19 Jun 2009 06:35:15 +0000 (08:35 +0200)]
manpage iSCSI update
Harald Hoyer [Fri, 19 Jun 2009 10:11:21 +0000 (12:11 +0200)]
make iSCSI boot with root=dhcp and mount partitions labeled with "ROOT"
or "/"
Harald Hoyer [Fri, 19 Jun 2009 07:00:15 +0000 (09:00 +0200)]
install rules to ignore some devices
Harald Hoyer [Fri, 19 Jun 2009 06:58:15 +0000 (08:58 +0200)]
prepare udev rules for udev >= 143
Harald Hoyer [Fri, 19 Jun 2009 06:48:35 +0000 (08:48 +0200)]
do not poweroff in TEST-10-RAID if rdinitdebug is set
Harald Hoyer [Fri, 19 Jun 2009 06:47:32 +0000 (08:47 +0200)]
do not poweroff in TEST-30-ISCSI, if rdinitdebug is set
Harald Hoyer [Fri, 19 Jun 2009 06:47:01 +0000 (08:47 +0200)]
uncomment hard-off for TEST-30-ISCSI
Harald Hoyer [Fri, 19 Jun 2009 06:46:23 +0000 (08:46 +0200)]
moved test-init to TEST-10-RAID
Victor Lowther [Sat, 13 Jun 2009 18:21:19 +0000 (13:21 -0500)]
Make /dev/shm in the initramfs.
Pretty much everyone uses it, and things break of userspace
does not make it because of a case of mistaken identities.
/sbin/start_udev on FC11, I am looking at you.
Seewer Philippe [Thu, 18 Jun 2009 13:35:00 +0000 (15:35 +0200)]
removed exit on fail "sh -e" for dhclient-script
The Bug causing dhclient to recall BIND has been identified:
dhclient-script runs with #!/bin/sh -e, causing setup_interface
to fail if no hostname is provided by dhcp as it is the last statement
in that function.
Harald Hoyer [Thu, 18 Jun 2009 12:16:25 +0000 (14:16 +0200)]
remove redundant vol_id run from out udev rules
moved mdadm rules before luks rules
add nbd vol_id rules
Harald Hoyer [Thu, 18 Jun 2009 12:35:09 +0000 (14:35 +0200)]
add DEBUGFAIL to TEST-10-RAID
Harald Hoyer [Thu, 18 Jun 2009 12:29:59 +0000 (14:29 +0200)]
add iSCSI testsuite
Harald Hoyer [Thu, 18 Jun 2009 12:28:39 +0000 (14:28 +0200)]
use 128M for the test virtual machines instead of 512M
Harald Hoyer [Thu, 18 Jun 2009 12:27:55 +0000 (14:27 +0200)]
kill the server after the test_run
Harald Hoyer [Thu, 18 Jun 2009 12:17:12 +0000 (14:17 +0200)]
install "basename" for path_id
Harald Hoyer [Thu, 18 Jun 2009 11:57:14 +0000 (13:57 +0200)]
also resume from "swsuspend" partitions
Harald Hoyer [Thu, 18 Jun 2009 08:37:41 +0000 (10:37 +0200)]
Merge branch 'master' of ssh://dracut.git.sourceforge.net/gitroot/dracut
Seewer Philippe [Thu, 18 Jun 2009 08:36:32 +0000 (10:36 +0200)]
fix check for dhclient-script, if interface is already up
Harald Hoyer [Thu, 18 Jun 2009 08:03:51 +0000 (10:03 +0200)]
resume from any suspend partition
If not "noresume" is specified and no explicit "resume=" given, try to resume
from any partition with type "suspend"
Warren Togami [Wed, 17 Jun 2009 19:59:50 +0000 (15:59 -0400)]
rdblacklist is for kernel drivers, not dracut modules.
Harald Hoyer [Wed, 17 Jun 2009 18:55:59 +0000 (20:55 +0200)]
revert testsuite failures to handle old style dhcp root-path format
Harald Hoyer [Wed, 17 Jun 2009 18:25:23 +0000 (20:25 +0200)]
support old style root=dhcp root-path=server-ip:/path
Harald Hoyer [Wed, 17 Jun 2009 13:41:44 +0000 (15:41 +0200)]
add manpage
Harald Hoyer [Wed, 17 Jun 2009 13:38:43 +0000 (15:38 +0200)]
install man page
Harald Hoyer [Wed, 17 Jun 2009 09:54:41 +0000 (11:54 +0200)]
add more documentation
Harald Hoyer [Wed, 17 Jun 2009 13:30:42 +0000 (15:30 +0200)]
add PATH
Philippe Seewer [Wed, 17 Jun 2009 11:25:25 +0000 (13:25 +0200)]
dhclient.conf points to the wrong location. Caused by not paying
attention while rebasing.
Philippe Seewer [Tue, 16 Jun 2009 18:50:31 +0000 (20:50 +0200)]
multinic support: Add bootdev cmdline argument
This introduces a new cmdline argument bootdev, to support the case
where multiple nics need to be up before the netroot handler is called.
Cases involved might be bonding, iscsi multipathing, bonding, ...
This argument is required to decide which interface is the primary to
use for dhcp root-path, default gw, etc.
When multiple ip= items are present on the cmdline, the ip= parser
now enforces the presence of <dev> further demands that the new argument
bootdev contains the name of the primary interface. Configurtion if of
course still delegated to netroot but in is enhance to ensure that netroot
"waits" for all required interfaces to be up.
Example: root=dhcp ip=eth0:dhcp ip=client-ip:::netmask::eth1:off bootdev=eth0
First, the ip= cmdline parser ensures that all ip items contain a <dev> then
checks the ip items and checks as well that an ip= item for the given bootdev
was found.
When the first netroot starts, probably for eth1, it checks wheter interface
configuration for all interfaces is available. If not it exits. The second
start of netroot (eth0, which was a bit delayed because of dhcp) sees that
all interfaces are present, configures them and continues.
Philippe Seewer [Tue, 16 Jun 2009 18:21:41 +0000 (20:21 +0200)]
multnic support: move actual interface configuration to netroot
Instead of configuring devices when they are ready, ifup and
dhclient-script write script files which are then sourced by
netroot.
This solves the problem of having multiple interfaces and not knowing
which one to use for dhcp or default route. This way, netroot (which
is serialized anyway) configures the interface before calling the root
handler and deconfigures it if the handler failed.
Example: root=nfs:server:path and ip=dhcp with eth0 and eth1 receiving
a dhcp reply, but eth0 is the correct one to use.
Assuming eth1 is the first to receive the dhcp-reply, netroot starts
and configures eth1. nfsroot is run but fails, so eth1 is deconfigured. If
eth0 has received a dhcp-reply (or not, then we wait) the other locked
netroot process starts and tries with eth0 and succeeds.
Philippe Seewer [Tue, 16 Jun 2009 17:35:03 +0000 (19:35 +0200)]
netroot: Add pxelinux BOOTIF support
Having BOOTIF as an argument is a clear pointer which interface should be
used for netroot. This changes network rule generation accordingly.
Philippe Seewer [Tue, 16 Jun 2009 17:26:35 +0000 (19:26 +0200)]
netroot: Only start interface configuration if really needed
Currently network configuration is launched by udev as soon as it
discovers a driver. This isn't such a good idea since we don't know
if network configuration is actually required. Change this by writing
the udev rules on the fly if required.
Philippe Seewer [Tue, 16 Jun 2009 17:14:51 +0000 (19:14 +0200)]
netroot: Add ip= cmdline checker
As with other netroot boot arguments ip= lines should be parsed and
checked. Having this has the advantage that other cmdline scripts
can tell the ip= parser if dhcp or ip=:srv:... is needed, like
parse-root.sh (renamed dhcp-fallback) or parse-nfsroot do.
The nfs test-suite has one check which uses static ip lines, but
the autoconf param is wrong. Fixed this as well.
Philippe Seewer [Tue, 16 Jun 2009 16:25:16 +0000 (18:25 +0200)]
netroot: Introduce detailed cmdline parsers
This introduces detailed cmdline parsing, warning or aborting if the
cmdline does not contain arguments according to the spec.
Makeing sure the parsers don't just call getarg for netroot et al,
allows their reuse inside netroot to analyse dhcp root-path as well.
Hence we can get rid of the current netroot hooks. The hook itself stays
in order to add further modules which should run before netroot handlers
are called.
This has one drawback: nfsroot needs some more logic to handle nfs
specific data inside dhcp root-path.
The parsers have been writting according to current discussions about
cmdline arguments. This lead to the "discovery" that some test-cases
violate the spec. These tests have not been removed, but change to
"must fail".
Philippe Seewer [Tue, 16 Jun 2009 16:05:45 +0000 (18:05 +0200)]
Add warn() function to log warnings but not die()
Philippe Seewer [Tue, 16 Jun 2009 16:03:59 +0000 (18:03 +0200)]
Log error messages to /dev/kmsg
When die()'ing inside scripts that are udev run, a simple echo isn't
good, udev usually swallows that. Routing messages to /dev/kmsg
ensures they appear on screen and in addition are easily saved through
dmesg.