add more documentation
authorHarald Hoyer <harald@redhat.com>
Wed, 17 Jun 2009 09:54:41 +0000 (11:54 +0200)
committerHarald Hoyer <harald@redhat.com>
Wed, 17 Jun 2009 13:43:53 +0000 (15:43 +0200)
Authors [new file with mode: 0644]
HACKING
README
TODO
dracut.8 [new file with mode: 0644]

diff --git a/Authors b/Authors
new file mode 100644 (file)
index 0000000..eb73545
--- /dev/null
+++ b/Authors
@@ -0,0 +1,11 @@
+Andreas Thienemann <andreas@bawue.net>
+Bill Nottingham <notting@redhat.com>
+Dave Jones <davej@redhat.com>
+David Dillow <dave@thedillows.org>
+Harald Hoyer <harald@redhat.com>
+Jeremy Katz <katzj@redhat.com>
+Peter Jones <pjones@redhat.com>
+Seewer Philippe <philippe.seewer@bfh.ch>
+Victor Lowther <victor.lowther@gmail.com>
+Warren Togami <wtogami@redhat.com>
+
diff --git a/HACKING b/HACKING
index 2613767..97a8050 100644 (file)
--- a/HACKING
+++ b/HACKING
@@ -1,8 +1,7 @@
-Right now, I'm doing most of my testing using a qemu/kvm guest and
+Right now, most of the testing is done using a qemu/kvm guest and
 generating the initramfs on another box but the support is all present
 to build for the "running" machine.  For the former, you can boot the guest
-using qemu's -kernel and -initrd options.  Currently supported rootfs
-types are regular partitions, root-on-lvm and root-on-lvm-on-encrypted-pv.
+using qemu's -kernel and -initrd options.  
 
 dracut exists and will build an image.  It is command-line equivalent
 to most mkinitrd implementations and should be pretty straight-forward
@@ -20,3 +19,5 @@ while kernel modules are called "drivers".
 
 Requirements:
 * udev
+* nfs module: nfs daemon and rpc helper
+* iscsi: iscsi
diff --git a/README b/README
index cd25d3b..cb03264 100644 (file)
--- a/README
+++ b/README
@@ -74,5 +74,3 @@ of 'subscribe initramfs email@host.com'
 
 
 Licensed under the GPLv2
-
-Copyright 2008,2009, Red Hat, Inc. -- Jeremy Katz <katzj@redhat.com>
diff --git a/TODO b/TODO
index 589719e..ed92206 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,60 +1,2 @@
-Current TODO list, broken into things which are relevant for the
-initramfs itself (/init et al) vs the generator.  A lot of things
-are/should be marked with "FIXME" in the code
+See https://sourceforge.net/apps/trac/dracut/wiki/TODO
 
-INITRAMFS TODO
---------------
-* The hard-coded list of udev rules that we care about is kind of
-lame.  See about getting /lib/udev/initrules.d or similar for storing
-the rules that we care about in the initramfs.  These could be
-symlinks/hardlinks to the main rules in some cases or special-cased
-ones
-* LVM activation by udev is a bit of a large hammer right now
-* root= parsing should be done with udev creating /dev/root symlink
-for us appropriately
-* Proving some support with a simple network based root would be good
-  * Do we just call dhclient, etc or try to get NetworkManager going?
-* Would be nice not to have to kill and restart udev across switchroot 
-* mdraid 
-* dmraid newer versions will be completly event based
-* multipath
-* Should SELinux policy be done in the initramfs or from the real
-rootfs?
-* Keyboard layout/consolefont setup is Fedora/RHEL-specific.  
-* iSCSI
-* NFS, NBD
-* parse root parameters from DHCP
-* s390
-
-GENERATOR TODO
---------------
-* Default module specificatoin could use some work
-* udev rule copying, as mentioned above, is a bit too hard-coded
-* pkg-config integration, to make it easy for other packages to use us.
-* Autotool-izing the package is probably overkill, but making the Makefile
-  vaguely autotools-compatible and adding a configure script would probably
-  be a good thing.
-
-
-Special cases to revisit later
-------------------------------
-* livecd (/ on dm-snapshot over ext3 on squashfs on iso9660)
-* installer
-* kdump 
-
-Other tasks performed by the initrd other than mounting rootfs 
---------------------------------------------------------------
-*  restore from hibernate
-* kdump
-* Loading initial SELinux policy. 
-
-
-Future Enhancement Requests
----------------------------
-
-Note that our main concern, especially right now, is proving viability of some of the ideas and then showing it with the things that we already support. If things work out, then it should be doable to start putting in support for new things that we don't already have support for. Nothing in this list is guaranteed but if people have ideas about new things, put them here and they'll at least be considered.
-
-* run ssh server to enter crypto password or perform debugging (supported by debian)
-* Make it possible to easily extend the initramfs, e.g. by packages that provide additional features to the initramfs, e.g. an ssh server (partly? supported by initramfs-tools in debian. e.g. with /etc/initramfs-tools/hooks)
-* Hook in overlay filesystem like aufs/unionfs (necessary for Debian/Ubuntu LTSP and LiveCD etc.)
-* switchroot without re-running daemons like udev again (not sure if this is possible) -- maybe using something based on /dev/ksm ( http://lwn.net/Articles/306704/ )?
diff --git a/dracut.8 b/dracut.8
new file mode 100644 (file)
index 0000000..146bcb1
--- /dev/null
+++ b/dracut.8
@@ -0,0 +1,189 @@
+.TH DRACUT 8 "June 2009" "Linux"
+.SH NAME
+switch_root \- switch to another filesystem as the root of the mount tree.
+.SH SYNOPSIS
+\fBdracut\fR [\fIOPTION\fR]... \fI<image>\fR  \fI<kernel-version>\fR
+
+.SH DESCRIPTION
+.B switch_root
+\fBdracut\fR creates an initial image used by the kernel for
+preloading the block device modules (such as IDE, SCSI or RAID)
+which are needed to access the root filesystem.
+
+.SH OPTIONS
+.TP
+.BR \-f ", " \-\-force
+overwrite existing initramfs file.
+.TP
+.BR \-m ", " \-\-modules " \fILIST\fR"
+specify a space-separated list of dracut modules to call 
+when building the initramfs. 
+Modules are located in 
+.IR /usr/lib/dracut/modules.d .
+.TP
+.BR \-o ", " \-\-omit " \fILIST\fR"
+omit a space-separated list of dracut modules.
+.TP
+.BR \-d ", " \-\-drivers " \fILIST\fR"
+specify a space-separated list of kernel modules to include in the initramfs.
+.TP
+.BR \-h ", " \-\-help
+display help text and exit. 
+.TP
+.B \-\-debug
+output debug information of the build process
+.TP
+.BR \-v ", " \-\-verbose
+verbose output during the build process
+.TP
+.BR \-c ", " \-\-conf " \fIFILE\fR"
+specify configuration file to use.
+Default: 
+.IR /etc/dracut.conf
+.TP
+.BR \-l ", " \-\-local
+local mode. Use modules from the current working
+directory instead of the system-wide installed in
+.IR /usr/lib/dracut/modules.d .
+Useful when running dracut from a git checkout.
+.TP
+.BR \-H ", " \-\-hostonly
+Host-Only mode: Install only what is needed for
+booting the local host instead of a generic host.
+.TP
+.BR \-i ", " \-\-include " \fISOURCE\fR" "" " \fITARGET\fR"
+include the files in the SOURCE directory into the
+target directory in the final initramfs.
+.TP
+.BR \-I ", " \-\-install " \fILIST\fR"
+install the space separated list of files into the initramfs.
+
+.SH KERNEL COMMAND LINE
+The root filesystem used by the kernel is specified in the boot configuration
+file, as always. The traditional \fBroot=/dev/hda1\fR style device 
+specification is allowed. If a label is used, as in \fBroot=LABEL=rootPart\fR
+the initrd will search all available devices for an ext2 or ext3 filesystem
+with the appropriate label, and mount that device as the root filesystem.
+\fBroot=UUID=uuidnumber\fR will mount the partition with that UUID as the 
+root filesystem.
+
+.SH Standard
+.TP
+.B init=<path to real init>
+.TP
+.B root=<path to blockdevice>
+specify e.g. \fI/dev/sda1\fR or
+\fI/dev/disk/by-path/pci-0000:00:1f.1-scsi-0:0:1:0-part1\fR
+
+.SH DHCP
+.TP
+.B root=dhcp
+get IP from dhcp server, root-path option from dhcp specifies root location
+
+.SH NFS
+.TP
+.B root=[<server-ip>:]<root-dir>[:<nfs-options>]
+mount nfs share from <server-ip>:/<root-dir>, if no server-ip is given,
+use dhcp next_server. 
+NFS options can be appended with the prefix "." or ","
+.TP
+.B root=dhcp root-path=<server-ip>:<root-dir>[:<nfs-options>]
+root=dhcp alone directs initrd to look at the DHCP root-path where NFS 
+options can be specified.
+.TP
+.B root=/dev/nfs nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]
+\fBDeprecated!\fR kernel Documentation/filesystems/nfsroot.txt defines 
+this method.  
+This is supported by dracut but not recommended.
+
+.SH iSCSI
+.TP
+.B root=iscsi:[<servername>]:[<protocol>]:[<port>]:[<LUN>]:<targetname>
+protocol defaults to "6", LUN defaults to "0".
+
+If the "servername" field is provided by BOOTP or DHCP, then that
+field is used in conjunction with other associated fields to contact
+the boot server in the Boot stage (Section 7).  However, if the
+"servername" field is not provided, then the "targetname" field is
+then used in the Discovery Service stage in conjunction with other
+associated fields.
+
+http://tools.ietf.org/html/rfc4173
+
+.TP
+.B root=??? iscsiroot=...
+.TP
+.B root=??? iscsi_initiator= iscsi_target_name= iscsi_target_ip= iscsi_target_port= iscsi_target_group= iscsi_username=  iscsi_password= iscsi_in_username= iscsi_in_password=
+.TP
+.B root=??? iscsi_firmware
+
+.SH NBD
+.TP
+.B root=nbd:<server>:<port>[:<fstype>][:<mountopts>]
+mount nbd share from <server>
+.TP
+.B root=dhcp root-path=nbd:<server>:<port>[:<fstype>][:<mountopts>]
+root=dhcp alone directs initrd to look at the DHCP root-path where NBD options can be specified.
+This syntax is only usable in cases where you are directly mounting the volume as the rootfs.
+
+.SH Network
+.TP bootdev=<interface>
+.B specify the network interface to boot from
+.TP
+.B ip=[dhcp|on|any]
+get ip from dhcp server from all interfaces. If root=dhcp, loop sequentially through all interfaces (eth0, eth1, ...) and use the first with a valid DHCP root-path.
+.TP
+.B ip=<interface>:[dhcp|on|any]
+get ip from dhcp server on a specific interface
+.TP
+.B ip=<client-IP-number>:<gateway-IP-number>:<netmask>:<client-hostname>:<interface>:[dhcp|on|any|]
+explicit network configuration
+
+.SH Misc
+.TP
+.B rdblacklist=<modulename>
+TBD: do not load modulename
+
+.SH Debug
+.TP
+.B rdinitdebug
+set -x for the dracut shell
+.TP
+.B rdbreak=[pre-udev|pre-mount|mount|pre-pivot|]
+drop the shell on defined breakpoint
+.TP
+.B rdudevinfo
+set udev to loglevel info
+.TP
+.B rdudevdebug
+set udev to loglevel debug
+.TP
+.B rdnetdebug
+debug network scripts in dracut. Output is written to /tmp/
+
+
+.SH CONFIGURATION IN INITRAMFS
+.TP 
+.B /conf/conf.d/
+Any files found in /conf/conf.d/ will be sourced in the initramfs to 
+specify special variables. 
+Command line options can override values set here.
+
+.SH AUTHORS
+.nf
+Andreas Thienemann <andreas@bawue.net>
+Bill Nottingham <notting@redhat.com>
+Dave Jones <davej@redhat.com>
+David Dillow <dave@thedillows.org>
+Harald Hoyer <harald@redhat.com>
+Jeremy Katz <katzj@redhat.com>
+Peter Jones <pjones@redhat.com>
+Seewer Philippe <philippe.seewer@bfh.ch>
+Victor Lowther <victor.lowther@gmail.com>
+Warren Togami <wtogami@redhat.com>
+.fi
+.SH AVAILABILITY
+The dracut command is part of the dracut package and is available from
+https://sourceforge.net/apps/trac/dracut/wiki
+
+