Commit Graph

547 Commits (c30070c8f503fc373268912890df2456da3de1fd)

Author SHA1 Message Date
Victor Lowther 4eba843dde Revert --resolve-names=never in init
That flag is too new to work on most shipping distros, so fall back to
including /etc/group and the libnss_files.
2009-06-01 04:04:34 -05:00
David Dillow 5103130352 nfsroot: move to netroot framework
Parse and convert commandline options in the cmdline hook, and
fill in the missing pieces in the netroot hook. This also allows
root=dhcp to work as expected.
2009-06-01 00:56:01 -04:00
David Dillow 7d7efa4a3d netroot: add common handler for network root devices
/sbin/netroot is a jumping off point to allow various network
root devices to share infrastructure. It will loop over scriptlets
in the netroot handler, looking for a handler to run for this type
of netroot. Handlers can do choose to act based on command line
options to the kernel, or via DHCP options received on this interface.
They should massage root= into a form suitable for their handler.
2009-06-01 00:42:43 -04:00
David Dillow ae5bc1fd8a dracut-lib: add source_all to library
The network root handler will need this.
2009-06-01 00:39:56 -04:00
David Dillow d15c7a1ab7 cmdline: cleanup handling and block: handler
Now init checks that we understood the root= option, and can
act upon it, presenting and error if not. Also, clean up the
generation of udev rules such that we don't require /bin/echo.
2009-06-01 00:21:53 -04:00
David Dillow e450281431 dracut: add cmdline hook
This hook is where each module should parse kernel command line
options and perform any legacy translation.
2009-06-01 00:07:26 -04:00
Victor Lowther e314863e67 Several updates to make dracut a bit more robust.
First, add a check script to 99base to ensure that it will load its
prerequisites.

Second, disable the udev magic dracut normally uses when generating
test images -- it was causing random failures when creating the test
root filesystem, presumably due to race conditions between the
rootfs creation scripts and udev.

Third, consolidate the rootfs creation scripts into one script.
2009-05-30 16:53:12 -05:00
Victor Lowther 5033486389 Have udevd never try to resolve user or group ownership of devices.
This gets rid of the need to have potentially security-sensitive files
like /etc/passwd and /etc/group in the initramfs, and makes the initramfs
a bit smaller.  We trust the final userspace to do The Right Thing when
assigning user/group ownership to devices.
2009-05-30 11:45:47 -05:00
Warren Togami ba126e82af $drivers specified from .conf or --drivers get copied once, instead of multiple times with other calls to instmods() 2009-05-28 15:55:44 -04:00
Harald Hoyer 4127130480 prefixed more internal command line options with "rd"
break -> rdbreak
netdebug -> rdnetdebug
2009-05-27 14:56:20 +02:00
Andreas Thienemann 5fa499403f cleanup environment before calling real init 2009-05-26 18:08:19 +02:00
Andreas Thienemann e89bf85757 Prevent unnecessary installation of bash if bash. Same goes for dash. 2009-05-26 18:06:56 +02:00
Harald Hoyer 65f14ce19c renamed internal command line options to rd* namespace
ramfsdebug -> rdinitdebug
udevinfo -> rdudevinfo
udevdebug -> rdudevdebug
2009-05-25 17:59:21 +02:00
David Dillow df44688f3e lib: create a library for useful shell functions
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>
2009-05-25 12:13:54 +02:00
Warren Togami 7ee170746f Abort if switch_root does not exist.
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.)
2009-05-21 19:14:50 -04:00
Warren Togami 4ae46e575d Oops, make it work 2009-05-21 15:16:44 -04:00
Warren Togami 76434898ad Do not attempt to load policy if selinux-policy is not installed. 2009-05-21 14:34:38 -04:00
Harald Hoyer a4aee9e573 add emergency hook 2009-05-20 14:25:35 +02:00
Harald Hoyer 155c171d88 recreate /dev/null after /dev mounting 2009-05-20 11:59:34 +02:00
Harald Hoyer b6e0fea80c change file descriptor for flock locking
dash does not like filedescriptors > 9
2009-05-15 12:48:11 +02:00
Harald Hoyer fea5683693 sleep 0.5 seconds instead of 1 2009-03-24 11:35:52 +01:00
Harald Hoyer c7e0d91c80 add udevdebug and udevinfo command line arguments 2009-03-24 11:34:45 +01:00
Harald Hoyer 4479cb2b45 move root command line argument parsing to modules 2009-03-24 11:33:58 +01:00
Harald Hoyer 2003e18962 rename "debug" to "ramfsdebug" to differ from the kernel "debug" argument 2009-03-24 11:32:54 +01:00
Harald Hoyer ef08521555 only create the /bin/sh symlink to bash, if it does not exist yet 2009-03-24 11:29:03 +01:00
Harald Hoyer 47f151f762 Merge branch 'enhanced-test-framework' of git://fnordovax.org/dracut into test
Conflicts:
	modules.d/50plymouth/63-luks.rules
	modules.d/50plymouth/cryptroot.sh
	modules.d/50plymouth/install
	modules.d/90crypt/63-luks.rules
	modules.d/90crypt/cryptroot.sh
	modules.d/90crypt/install
2009-03-23 15:28:14 +01:00
Victor Lowther 37dcb40001 do not use grep to test if sysroot is mounted 2009-03-23 15:06:45 +01:00
Victor Lowther 80c9d068b2 Just pass args the kernel passed to us, not /proc/cmdline args. 2009-03-20 03:08:40 -05:00
Victor Lowther b5c7c7e829 Silence in the initramfs is golden.
Get rid of gratuitous text -- we should only talk if asking a question or
if something screwed up.
2009-03-20 03:08:40 -05:00
Victor Lowther 35f90aafd2 Move finding and mounting root on block devices into its own hook. 2009-03-20 03:08:40 -05:00
Victor Lowther 99576a2a63 Split out resume handling into its own hook. 2009-03-20 03:08:40 -05:00
Victor Lowther 1b87b9670a Move parsing rootfs options to a pre-udev hook. 2009-03-20 03:08:40 -05:00
Victor Lowther f81a894eb0 Move processing root options into a pre-udev hook.
Also make changes that will make it easier to udevify resuming
from hibernate and mounting root.
2009-03-20 03:08:39 -05:00
Victor Lowther 88ffd2df3f Update test framework to create and use LVM on cryptroot 2009-03-20 03:08:39 -05:00
Harald Hoyer bb040f9315 trigger root mount via udev rules 2009-03-09 13:08:12 +01:00
Harald Hoyer ab83e0a6f5 get crypt password with rules 2009-03-09 13:08:12 +01:00
Victor Lowther 7bff75da14 Make udevd shut up
Do this by loading /etc/group and /lib*/libnss_files.so.* onto the initramfs
2009-03-08 11:39:43 -05:00
Victor Lowther 76c88488c4 Move root option processing into a pre-mount hook.
This will make it easier to add support for root on nfs, root on iscsi,
root on multipath, and other such oddities.
2009-03-07 08:02:03 -06:00
Victor Lowther faf882394b Simplify switch_root.c a bit
Shift some required functionality from switch_root.c to init.

String manipulation and filtering, and testing for the existence of init
is easier in the init script than in C.
2009-03-06 22:32:37 -06:00
Seewer Philippe a916b0709d dracut and ubuntu 8.10
Followup: Harald Hoyers "Merge" repository boots on ub8.10 with a dracut.conf similar to the following one and the attached patch applied

> cat dracut.conf
modules="ata_piix sd_mod sg"
dracutmodules="dash kernel-modules debug terminfo udev-rules.ub810 base"
2009-03-06 16:35:05 +01:00
Harald Hoyer 7cd15fe768 use $(( instead of $[ 2009-03-06 14:33:42 +01:00
Harald Hoyer 1e984a27d2 start udevd with --resolve-names=never 2009-03-06 10:57:16 +01:00
Harald Hoyer 63efe29bb3 use switch_root code from http://pjones.fedorapeople.org/mkstart/usr/lib/mkstart/switchroot.c 2009-03-06 10:57:12 +01:00
Harald Hoyer a890fe2922 redirect more to null 2009-03-05 17:17:32 +01:00
Harald Hoyer 879305557c kill udev before switch_root and bail out after 10 seconds of mount tries 2009-03-05 14:21:59 +01:00
Harald Hoyer c4da240717 replace switch_root shell script with binary
The switch_root shell script did not work with bash-4.0-2, because
"exec" gets the real path of the executable which is then
"/sysroot/lib/ld-linux.so.2" instread of "./lib/ld-linux.so.2".

Also the required chroot binary might live in /usr/bin, which can
be mounted later.

Here is the switch_root code from nash, which can be stripped down
further, but which works.

>From f1b1e4f8694104f007e4483c36b0bf40a5760167 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Date: Wed, 4 Mar 2009 13:41:07 +0100
Subject: [PATCH] replace switch_root shell script with binary

The switch_root shell script did not work with bash-4.0-2, because
"exec" gets the real path of the executable which is then
"/sysroot/lib/ld-linux.so.2" instead of "./lib/ld-linux.so.2".
Also the required chroot binary might live in /usr/bin, which can
be mounted later.

Here is the switch_root code from nash, which can be stripped down
further, but which works.
2009-03-04 17:23:03 +01:00
Victor Lowther 20abd91484 Create a self-contained structure for dracut modules
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.
2009-03-04 16:55:14 +01:00