dracut-020-51.git20120706

- cope with systemd-udevd unit renaming
- fixed network renaming
- removed dash module
This commit is contained in:
Harald Hoyer 2012-07-06 14:41:00 +02:00
parent 1837a53535
commit 2d3fda91ea
30 changed files with 1937 additions and 2 deletions

View File

@ -0,0 +1,28 @@
From 194b80f974751b2eb5e6f50075d150b9c8083b77 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 2 Jul 2012 22:51:24 +0200
Subject: [PATCH] dracut-functions.sh:find_kernel_modules_by_path() fixed
hostonly part
filter /sys/module/* modules by path
---
dracut-functions.sh | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/dracut-functions.sh b/dracut-functions.sh
index 2898c30..6de7c72 100755
--- a/dracut-functions.sh
+++ b/dracut-functions.sh
@@ -1277,7 +1277,11 @@ find_kernel_modules_by_path () (
IFS=$_OLDIFS
else
( cd /sys/module; echo *; ) \
- | xargs -r modinfo -F filename -k $kernel 2>/dev/null
+ | xargs -r modinfo -F filename -k $kernel 2>/dev/null \
+ | while read a; do
+ [[ $a = kernel*/$1/* ]] || continue
+ echo $srcmods/$a
+ done
fi
return 0
)

View File

@ -0,0 +1,64 @@
From c204501e3eaf31a69ef69aa567f5d3c88f69c66a Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 3 Jul 2012 13:14:12 +0200
Subject: [PATCH] base/init.sh: error out early, if /dev, /proc or /sys cannot
be mounted
---
modules.d/99base/init.sh | 25 ++++++++++++++++++++-----
1 file changed, 20 insertions(+), 5 deletions(-)
diff --git a/modules.d/99base/init.sh b/modules.d/99base/init.sh
index d395a99..3eb6424 100755
--- a/modules.d/99base/init.sh
+++ b/modules.d/99base/init.sh
@@ -20,14 +20,22 @@ export PATH
RD_DEBUG=""
. /lib/dracut-lib.sh
-trap "emergency_shell Signal caught!" 0
-
# mount some important things
[ ! -d /proc/self ] && \
- mount -t proc -o nosuid,noexec,nodev proc /proc >/dev/null 2>&1
+ mount -t proc -o nosuid,noexec,nodev proc /proc >/dev/null
+
+if [ "$?" != "0" ]; then
+ echo "Cannot mount proc on /proc! Compile the kernel with CONFIG_PROC_FS!"
+ exit 1
+fi
[ ! -d /sys/kernel ] && \
- mount -t sysfs -o nosuid,noexec,nodev sysfs /sys >/dev/null 2>&1
+ mount -t sysfs -o nosuid,noexec,nodev sysfs /sys >/dev/null
+
+if [ "$?" != "0" ]; then
+ echo "Cannot mount sysfs on /sys! Compile the kernel with CONFIG_SYSFS!"
+ exit 1
+fi
if [ -x /lib/systemd/systemd-timestamp ]; then
RD_TIMESTAMP=$(/lib/systemd/systemd-timestamp)
@@ -39,7 +47,12 @@ fi
setdebug
if ! ismounted /dev; then
- mount -t devtmpfs -o mode=0755,nosuid,strictatime devtmpfs /dev >/dev/null
+ mount -t devtmpfs -o mode=0755,nosuid,strictatime devtmpfs /dev >/dev/null
+fi
+
+if ! ismounted /dev; then
+ echo "Cannot mount devtmpfs on /dev! Compile the kernel with CONFIG_DEVTMPFS!"
+ exit 1
fi
# prepare the /dev directory
@@ -66,6 +79,8 @@ if ! ismounted /run; then
rm -fr /newrun
fi
+trap "emergency_shell Signal caught!" 0
+
[ -d /run/initramfs ] || mkdir -p -m 0755 /run/initramfs
UDEVVERSION=$(udevadm --version)

View File

@ -0,0 +1,189 @@
From 0e14946a2032040899d792cf8eefd5db341074c8 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 3 Jul 2012 14:18:55 +0200
Subject: [PATCH] add lsinitrd and mkinitrd man pages
---
Makefile | 14 ++++++++++---
dracut.spec | 2 ++
lsinitrd.1.asc | 43 +++++++++++++++++++++++++++++++++++++
mkinitrd.8.asc | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 120 insertions(+), 3 deletions(-)
create mode 100644 lsinitrd.1.asc
create mode 100644 mkinitrd.8.asc
diff --git a/Makefile b/Makefile
index 1d5531d..78cf85d 100644
--- a/Makefile
+++ b/Makefile
@@ -9,7 +9,12 @@ sysconfdir ?= ${prefix}/etc
bindir ?= ${prefix}/bin
mandir ?= ${prefix}/share/man
-manpages = dracut.8 dracut.cmdline.7 dracut.conf.5 dracut-catimages.8
+manpages = dracut.8 \
+ dracut.cmdline.7 \
+ dracut.conf.5 \
+ dracut-catimages.8 \
+ lsinitrd.1 \
+ mkinitrd.8
.PHONY: install clean archive rpm testimage test all check AUTHORS doc
@@ -55,7 +60,7 @@ install: doc dracut-version.sh
mkdir -p $(DESTDIR)$(bindir)
mkdir -p $(DESTDIR)$(sysconfdir)
mkdir -p $(DESTDIR)$(pkglibdir)/modules.d
- mkdir -p $(DESTDIR)$(mandir)/man5 $(DESTDIR)$(mandir)/man7 $(DESTDIR)$(mandir)/man8
+ mkdir -p $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(mandir)/man5 $(DESTDIR)$(mandir)/man7 $(DESTDIR)$(mandir)/man8
install -m 0755 dracut.sh $(DESTDIR)$(bindir)/dracut
install -m 0755 dracut-catimages.sh $(DESTDIR)$(bindir)/dracut-catimages
install -m 0755 mkinitrd-dracut.sh $(DESTDIR)$(bindir)/mkinitrd
@@ -68,8 +73,11 @@ install: doc dracut-version.sh
install -m 0755 dracut-logger.sh $(DESTDIR)$(pkglibdir)/dracut-logger.sh
install -m 0755 dracut-initramfs-restore.sh $(DESTDIR)$(pkglibdir)/dracut-initramfs-restore
cp -arx modules.d $(DESTDIR)$(pkglibdir)
+ install -m 0644 lsinitrd.1 $(DESTDIR)$(mandir)/man1/lsinitrd.1
+ install -m 0644 mkdinitrd.8 $(DESTDIR)$(mandir)/man8/mkinitrd.8
install -m 0644 dracut.8 $(DESTDIR)$(mandir)/man8/dracut.8
- install -m 0644 dracut-catimages.8 $(DESTDIR)$(mandir)/man8/dracut-catimages.8
+ install -m 0644 dracut-catimages.8 \
+ $(DESTDIR)$(mandir)/man8/dracut-catimages.8
install -m 0644 dracut.conf.5 $(DESTDIR)$(mandir)/man5/dracut.conf.5
install -m 0644 dracut.cmdline.7 $(DESTDIR)$(mandir)/man7/dracut.cmdline.7
ln -s dracut.cmdline.7 $(DESTDIR)$(mandir)/man7/dracut.kernel.7
diff --git a/dracut.spec b/dracut.spec
index 06d8139..b258121 100644
--- a/dracut.spec
+++ b/dracut.spec
@@ -255,9 +255,11 @@ rm -rf $RPM_BUILD_ROOT
%endif
%dir /etc/dracut.conf.d
%{_mandir}/man8/dracut.8*
+%{_mandir}/man8/mkinitrd.8*
%{_mandir}/man7/dracut.kernel.7*
%{_mandir}/man7/dracut.cmdline.7*
%{_mandir}/man5/dracut.conf.5*
+%{_mandir}/man1/lsinitrd.1*
%{dracutlibdir}/modules.d/00bootchart
%{dracutlibdir}/modules.d/00dash
%{dracutlibdir}/modules.d/04watchdog
diff --git a/lsinitrd.1.asc b/lsinitrd.1.asc
new file mode 100644
index 0000000..5b0c62e
--- /dev/null
+++ b/lsinitrd.1.asc
@@ -0,0 +1,43 @@
+LSINITRD(1)
+=========
+:doctype: manpage
+:man source: dracut
+:man manual: dracut
+
+NAME
+----
+lsinitrd - tool to show the contents of an initramfs image
+
+SYNOPSIS
+--------
+*lsinit* ['OPTION...'] [<image>]
+
+DESCRIPTION
+-----------
+lsinitrd shows the contents of an initramfs image. if <image> is omitted, then
+lsinitrd uses the default image /boot/initramfs-<kernel version>.img.
+
+OPTIONS
+-------
+**-h, --help**::
+ print a help message and exit.
+
+**-s, --size**::
+ sort the contents of the initramfs by size.
+
+AVAILABILITY
+------------
+The lsinitrd command is part of the dracut package and is available from
+link:$$https://dracut.wiki.kernel.org$$[https://dracut.wiki.kernel.org]
+
+AUTHORS
+-------
+Harald Hoyer
+
+Amerigo Wang
+
+Nikoli
+
+SEE ALSO
+--------
+*dracut*(8)
diff --git a/mkinitrd.8.asc b/mkinitrd.8.asc
new file mode 100644
index 0000000..2792915
--- /dev/null
+++ b/mkinitrd.8.asc
@@ -0,0 +1,64 @@
+MKINITRD(8)
+=========
+:doctype: manpage
+:man source: dracut
+:man manual: dracut
+
+NAME
+----
+mkinitrd - is a compat wrapper, which calls dracut to generate an initramfs
+
+SYNOPSIS
+--------
+*mkinitrd* ['OPTION...'] [<initrd-image>] <kernel-version>
+
+DESCRIPTION
+-----------
+mkinitrd creates an initramfs image <initrd-image> for the kernel with
+version <kernel-version> by calling "dracut".
+
+If a more fine grained control over the resulting image is needed,
+"dracut" should be called directly.
+
+OPTIONS
+-------
+**--version**::
+ print info about the version
+
+**-v, --verbose**::
+ increase verbosity level
+
+**-f, --force**::
+ overwrite existing initramfs file.
+
+**--image-version*::
+ append the kernel version to the target image
+ <initrd-image>-<kernel-version>.
+
+**--with=<module>**::
+ add the kernel module <module> to the initramfs.
+
+**--preload=<module>**::
+ preload the kernel module <module> in the initramfs before any other kernel
+ modules are loaded. This can be used to ensure a certain device naming, which
+ should in theory be avoided and the use of symbolic links in /dev is
+ encouraged.
+
+**--nocompress**::
+ do not compress the resulting image.
+
+**--help**::
+ print a help message and exit.
+
+AVAILABILITY
+------------
+The mkinitrd command is part of the dracut package and is available from
+link:$$https://dracut.wiki.kernel.org$$[https://dracut.wiki.kernel.org]
+
+AUTHORS
+-------
+Harald Hoyer
+
+SEE ALSO
+--------
+*dracut*(8)

View File

@ -0,0 +1,66 @@
From 9f355169f454987405fcb79dc3eba6a280981a8c Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 3 Jul 2012 14:20:14 +0200
Subject: [PATCH] manpages: simplify AUTHORS
---
dracut.8.asc | 24 ++++++++----------------
dracut.cmdline.7.asc | 3 +--
2 files changed, 9 insertions(+), 18 deletions(-)
diff --git a/dracut.8.asc b/dracut.8.asc
index 196e2e8..3c0efb9 100644
--- a/dracut.8.asc
+++ b/dracut.8.asc
@@ -364,29 +364,21 @@ link:$$https://dracut.wiki.kernel.org$$[https://dracut.wiki.kernel.org]
AUTHORS
-------
-*Harald Hoyer*::
- Project Leader and Developer
+Harald Hoyer
-*Victor Lowther*::
- Developer
+Victor Lowther
-*Philippe Seewer*::
- Developer
+Philippe Seewer
-*Warren Togami*::
- Developer
+Warren Togami
-*Amadeusz Żołnowski*::
- Developer
+Amadeusz Żołnowski
-*Jeremy Katz*::
- Developer
+Jeremy Katz
-*David Dillow*::
- Developer
+David Dillow
-*Will Woods*::
- Developer
+Will Woods
SEE ALSO
--------
diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc
index 3bfb53a..997c513 100644
--- a/dracut.cmdline.7.asc
+++ b/dracut.cmdline.7.asc
@@ -650,8 +650,7 @@ _/etc/cmdline.d/*.conf_::
AUTHOR
------
-*Harald Hoyer*::
- Project Leader and Developer
+Harald Hoyer
SEE ALSO
--------

View File

@ -0,0 +1,365 @@
From ffa71b4afa3e8865ab4f068f908ff8e05744a6ee Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 3 Jul 2012 14:20:51 +0200
Subject: [PATCH] dracut.sh: use getopt to parse arguments
now we can put options and arguments anywhere we like.
e.g.
$ dracut test.img --force
---
dracut.sh | 233 ++++++++++++++++++++++++++++++++++++++++++++-----------------
1 file changed, 169 insertions(+), 64 deletions(-)
diff --git a/dracut.sh b/dracut.sh
index 4a6d5c7..c1be619 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -24,7 +24,7 @@
#
# store for logging
-dracut_args="$@"
+dracut_args=( "$@" )
set -o pipefail
@@ -36,7 +36,32 @@ usage() {
# 80x25 linebreak here ^
cat << EOF
-Usage: $0 [OPTION]... <initramfs> <kernel-version>
+Usage: $0 [OPTION]... [<initramfs> [<kernel-version>]]
+
+Version: $DRACUT_VERSION
+
+Creates initial ramdisk images for preloading modules
+
+ -h, --help Display all options
+
+If a [LIST] has multiple arguments, then you have to put these in quotes.
+
+For example:
+
+ # dracut --add-drivers "module1 module2" ...
+
+EOF
+}
+
+long_usage() {
+ [[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut
+ if [[ -f $dracutbasedir/dracut-version.sh ]]; then
+ . $dracutbasedir/dracut-version.sh
+ fi
+
+# 80x25 linebreak here ^
+ cat << EOF
+Usage: $0 [OPTION]... [<initramfs> [<kernel-version>]]
Version: $DRACUT_VERSION
@@ -139,8 +164,11 @@ Creates initial ramdisk images for preloading modules
--sshkey [SSHKEY] Add ssh key to initramfs (use with ssh-client module)
If [LIST] has multiple arguments, then you have to put these in quotes.
+
For example:
-# dracut --add-drivers "module1 module2" ...
+
+ # dracut --add-drivers "module1 module2" ...
+
EOF
}
@@ -151,9 +179,10 @@ EOF
# example:
# push stack 1 2 "3 4"
push() {
+ local _i
local __stack=$1; shift
- for i in "$@"; do
- eval ${__stack}'[${#'${__stack}'[@]}]="$i"'
+ for _i in "$@"; do
+ eval ${__stack}'[${#'${__stack}'[@]}]="$_i"'
done
}
@@ -169,16 +198,16 @@ push() {
pop() {
local __stack=$1; shift
local __resultvar=$1
- local myresult;
+ local _value;
# check for empty stack
eval '[[ ${#'${__stack}'[@]} -eq 0 ]] && return 1'
- eval myresult='${'${__stack}'[${#'${__stack}'[@]}-1]}'
+ eval _value='${'${__stack}'[${#'${__stack}'[@]}-1]}'
if [[ "$__resultvar" ]]; then
- eval $__resultvar="'$myresult'"
+ eval $__resultvar="'$_value'"
else
- echo "$myresult"
+ echo "$_value"
fi
eval unset ${__stack}'[${#'${__stack}'[@]}-1]'
return 0
@@ -202,52 +231,105 @@ read_arg() {
fi
}
-# Little helper function for reading args from the commandline to a stack.
-# it automatically handles -a b and -a=b variants, and returns 1 if
-# we need to shift $3.
-push_arg() {
- # $1 = arg name
- # $2 = arg value
- # $3 = arg parameter
- local rematch='^[^=]*=(.*)$'
- if [[ $2 =~ $rematch ]]; then
- push "$1" "${BASH_REMATCH[1]}"
- else
- push "$1" "$3"
- # There is no way to shift our callers args, so
- # return 1 to indicate they should do it instead.
- return 1
- fi
-}
-
verbosity_mod_l=0
unset kernel
unset outfile
-while (($# > 0)); do
- case ${1%%=*} in
- -a|--add) push_arg add_dracutmodules_l "$@" || shift;;
- --force-add) push_arg force_add_dracutmodules_l "$@" || shift;;
- --add-drivers) push_arg add_drivers_l "$@" || shift;;
- --omit-drivers) push_arg omit_drivers_l "$@" || shift;;
- -m|--modules) push_arg dracutmodules_l "$@" || shift;;
- -o|--omit) push_arg omit_dracutmodules_l "$@" || shift;;
- -d|--drivers) push_arg drivers_l "$@" || shift;;
- --filesystems) push_arg filesystems_l "$@" || shift;;
- -I|--install) push_arg install_items_l "$@" || shift;;
- --fwdir) push_arg fw_dir_l "$@" || shift;;
- --libdirs) push_arg libdirs_l "$@" || shift;;
- --fscks) push_arg fscks_l "$@" || shift;;
- --add-fstab) push_arg add_fstab_l "$@" || shift;;
- --mount) push_arg fstab_lines "$@" || shift;;
+# Workaround -i, --include taking 2 arguments
+set -- "${@/--include/++include}"
+
+# This prevents any long argument ending with "-i"
+# -i, like --opt-i but I think we can just prevent that
+set -- "${@/%-i/++include}"
+
+TEMP=$(unset POSIXLY_CORRECT; getopt \
+ -o "a:m:o:d:I:k:c:L:fvqlHhM" \
+ --long add: \
+ --long force-add: \
+ --long add-drivers: \
+ --long omit-drivers: \
+ --long modules: \
+ --long omit: \
+ --long drivers: \
+ --long filesystems: \
+ --long install: \
+ --long fwdir: \
+ --long libdirs: \
+ --long fscks: \
+ --long add-fstab: \
+ --long mount: \
+ --long nofscks: \
+ --long kmoddir: \
+ --long conf: \
+ --long confdir: \
+ --long tmpdir: \
+ --long stdlog: \
+ --long compress: \
+ --long prefix: \
+ --long force \
+ --long kernel-only \
+ --long no-kernel \
+ --long strip \
+ --long nostrip \
+ --long hardlink \
+ --long nohardlink \
+ --long noprefix \
+ --long mdadmconf \
+ --long nomdadmconf \
+ --long lvmconf \
+ --long nolvmconf \
+ --long debug \
+ --long profile \
+ --long sshkey: \
+ --long verbose \
+ --long quiet \
+ --long local \
+ --long hostonly \
+ --long no-hostonly \
+ --long fstab \
+ --long help \
+ --long bzip2 \
+ --long lzma \
+ --long xz \
+ --long no-compress \
+ --long gzip \
+ --long list-modules \
+ --long show-modules \
+ --long keep \
+ --long printsize \
+ -- "$@")
+
+if (( $? != 0 )); then
+ usage
+ exit 1
+fi
+
+eval set -- "$TEMP"
+
+while :; do
+ case $1 in
+ -a|--add) push add_dracutmodules_l "$2"; shift;;
+ --force-add) push force_add_dracutmodules_l "$2"; shift;;
+ --add-drivers) push add_drivers_l "$2"; shift;;
+ --omit-drivers) push omit_drivers_l "$2"; shift;;
+ -m|--modules) push dracutmodules_l "$2"; shift;;
+ -o|--omit) push omit_dracutmodules_l "$2"; shift;;
+ -d|--drivers) push drivers_l "$2"; shift;;
+ --filesystems) push filesystems_l "$2"; shift;;
+ -I|--install) push install_items_l "$2"; shift;;
+ --fwdir) push fw_dir_l "$2"; shift;;
+ --libdirs) push libdirs_l "$2"; shift;;
+ --fscks) push fscks_l "$2"; shift;;
+ --add-fstab) push add_fstab_l "$2"; shift;;
+ --mount) push fstab_lines "$2"; shift;;
--nofscks) nofscks_l="yes";;
- -k|--kmoddir) read_arg drivers_dir_l "$@" || shift;;
- -c|--conf) read_arg conffile "$@" || shift;;
- --confdir) read_arg confdir "$@" || shift;;
- --tmpdir) read_arg tmpdir_l "$@" || shift;;
- -L|--stdlog) read_arg stdloglvl_l "$@" || shift;;
- --compress) read_arg compress_l "$@" || shift;;
- --prefix) read_arg prefix_l "$@" || shift;;
+ -k|--kmoddir) drivers_dir_l="$2"; shift;;
+ -c|--conf) conffile="$2"; shift;;
+ --confdir) confdir="$2"; shift;;
+ --tmpdir) tmpdir_l="$2"; shift;;
+ -L|--stdlog) stdloglvl_l="$2"; shift;;
+ --compress) compress_l="$2"; shift;;
+ --prefix) prefix_l="$2"; shift;;
-f|--force) force=yes;;
--kernel-only) kernel_only="yes"; no_kernel="no";;
--no-kernel) kernel_only="no"; no_kernel="yes";;
@@ -262,7 +344,7 @@ while (($# > 0)); do
--nolvmconf) lvmconf_l="no";;
--debug) debug="yes";;
--profile) profile="yes";;
- --sshkey) read_arg sshkey "$@" || shift;;
+ --sshkey) sshkey="$2"; shift;;
-v|--verbose) ((verbosity_mod_l++));;
-q|--quiet) ((verbosity_mod_l--));;
-l|--local)
@@ -273,48 +355,67 @@ while (($# > 0)); do
-H|--hostonly) hostonly_l="yes" ;;
--no-hostonly) hostonly_l="no" ;;
--fstab) use_fstab_l="yes" ;;
- -h|--help) usage; exit 1 ;;
+ -h|--help) long_usage; exit 1 ;;
-i|--include) push include_src "$2"
- push include_target "$3"
- shift 2;;
+ shift;;
--bzip2) compress_l="bzip2";;
--lzma) compress_l="lzma";;
--xz) compress_l="xz";;
--no-compress) _no_compress_l="cat";;
--gzip) compress_l="gzip";;
- --list-modules)
- do_list="yes";
- ;;
+ --list-modules) do_list="yes";;
-M|--show-modules)
show_modules_l="yes"
;;
--keep) keep="yes";;
--printsize) printsize="yes";;
- -*) printf "\nUnknown option: %s\n\n" "$1" >&2; usage; exit 1;;
+
+ --) shift; break;;
+
+ *) # should not even reach this point
+ printf "\n!Unknown option: '%s'\n\n" "$1" >&2; usage; exit 1;;
+ esac
+ shift
+done
+
+# getopt cannot handle multiple arguments, so just handle "-I,--include"
+# the old fashioned way
+
+while (($# > 0)); do
+ case ${1%%=*} in
+ ++include) push include_src "$2"
+ push include_target "$3"
+ shift 2;;
*)
if ! [[ ${outfile+x} ]]; then
outfile=$1
elif ! [[ ${kernel+x} ]]; then
kernel=$1
else
- echo "Unknown argument: $1"
+ printf "\nUnknown arguments: %s\n\n" "$*" >&2
usage; exit 1;
fi
;;
esac
shift
done
+
if ! [[ $kernel ]]; then
kernel=$(uname -r)
fi
-[[ $outfile ]] || outfile="/boot/initramfs-$kernel.img"
+
+if ! [[ $outfile ]]; then
+ outfile="/boot/initramfs-$kernel.img"
+fi
for i in /usr/sbin /sbin /usr/bin /bin; do
rl=$i
if [ -L "$i" ]; then
rl=$(readlink -f $i)
fi
- NPATH+=":$rl"
+ if [[ "$NPATH" != "*:$rl*" ]] ; then
+ NPATH+=":$rl"
+ fi
done
export PATH="${NPATH#:}"
unset NPATH
@@ -536,8 +637,12 @@ done
omit_drivers="${omit_drivers_corrected%|}"
unset omit_drivers_corrected
-
-ddebug "Executing $0 $dracut_args"
+# prepare args for logging
+for ((i=0; i < ${#dracut_args[@]}; i++)); do
+ strstr "${dracut_args[$i]}" " " && \
+ dracut_args[$i]="\"${dracut_args[$i]}\""
+done
+ddebug "Executing: $0 ${dracut_args[@]}"
[[ $do_list = yes ]] && {
for mod in $dracutbasedir/modules.d/*; do
@@ -573,7 +678,7 @@ if [[ ! -d "$outdir" ]]; then
dfatal "Can't write $outfile: Directory $outdir does not exist."
exit 1
elif [[ ! -w "$outdir" ]]; then
- dfatal "No permission to write $outdir."
+ dfatal "No permission to write to $outdir."
exit 1
elif [[ -f "$outfile" && ! -w "$outfile" ]]; then
dfatal "No permission to write $outfile."

View File

@ -0,0 +1,22 @@
From f0e10d9351be491f5ff703b6ba4ed230a5673609 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 3 Jul 2012 18:20:46 +0200
Subject: [PATCH] usrmount/mount-usr.sh: check the right path with ismounted
---
modules.d/98usrmount/mount-usr.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules.d/98usrmount/mount-usr.sh b/modules.d/98usrmount/mount-usr.sh
index 3173241..c277d74 100755
--- a/modules.d/98usrmount/mount-usr.sh
+++ b/modules.d/98usrmount/mount-usr.sh
@@ -84,7 +84,7 @@ mount_usr()
info "Mounting /usr"
mount "$NEWROOT/usr" 2>&1 | vinfo
fi
- if ! ismounted /usr; then
+ if ! ismounted "$NEWROOT/usr"; then
warn "Mounting /usr to $NEWROOT/usr failed"
warn "*** Dropping you to a shell; the system will continue"
warn "*** when you leave the shell."

View File

@ -0,0 +1,105 @@
From a128f03b305aebdce6a99a6b027c17ed58a1648e Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 3 Jul 2012 18:21:54 +0200
Subject: [PATCH] TEST-03-USR-MOUNT: change test to use a seperate disk
---
test/TEST-03-USR-MOUNT/create-root.sh | 14 ++++++++++++--
test/TEST-03-USR-MOUNT/fstab | 2 +-
test/TEST-03-USR-MOUNT/test-init.sh | 2 +-
test/TEST-03-USR-MOUNT/test.sh | 8 ++++++--
4 files changed, 20 insertions(+), 6 deletions(-)
diff --git a/test/TEST-03-USR-MOUNT/create-root.sh b/test/TEST-03-USR-MOUNT/create-root.sh
index 6662bca..9a3e561 100755
--- a/test/TEST-03-USR-MOUNT/create-root.sh
+++ b/test/TEST-03-USR-MOUNT/create-root.sh
@@ -12,13 +12,23 @@ sfdisk -C 5120 -H 2 -S 32 -L /dev/sda <<EOF
,
EOF
+sfdisk -C 5120 -H 2 -S 32 -L /dev/sdb <<EOF
+,16
+,
+EOF
+
+
mkfs.btrfs -L dracut /dev/sda2
+mkfs.btrfs -L dracutusr /dev/sdb2
btrfs device scan /dev/sda2
+btrfs device scan /dev/sdb2
mkdir -p /root
mount -t btrfs /dev/sda2 /root
-btrfs subvolume create /root/usr
[ -d /root/usr ] || mkdir /root/usr
-mount -t btrfs -o subvol=usr /dev/sda2 /root/usr
+mount -t btrfs /dev/sdb2 /root/usr
+btrfs subvolume create /root/usr/usr
+umount /root/usr
+mount -t btrfs -o subvol=usr /dev/sdb2 /root/usr
cp -a -t /root /source/*
mkdir -p /root/run
umount /root/usr
diff --git a/test/TEST-03-USR-MOUNT/fstab b/test/TEST-03-USR-MOUNT/fstab
index 0e0a0e0..0cc3370 100644
--- a/test/TEST-03-USR-MOUNT/fstab
+++ b/test/TEST-03-USR-MOUNT/fstab
@@ -1,2 +1,2 @@
/dev/sda2 / btrfs defaults 0 0
-/dev/sda2 /usr btrfs subvol=usr,ro 0 0
+/dev/sdb2 /usr btrfs subvol=usr,ro 0 0
diff --git a/test/TEST-03-USR-MOUNT/test-init.sh b/test/TEST-03-USR-MOUNT/test-init.sh
index 494313b..63520ab 100755
--- a/test/TEST-03-USR-MOUNT/test-init.sh
+++ b/test/TEST-03-USR-MOUNT/test-init.sh
@@ -14,7 +14,7 @@ ismounted() {
}
if ismounted /usr; then
- echo "dracut-root-block-success" >/dev/sdb
+ echo "dracut-root-block-success" >/dev/sdc
fi
export TERM=linux
export PS1='initramfs-test:\w\$ '
diff --git a/test/TEST-03-USR-MOUNT/test.sh b/test/TEST-03-USR-MOUNT/test.sh
index 34a120f..d966c3c 100755
--- a/test/TEST-03-USR-MOUNT/test.sh
+++ b/test/TEST-03-USR-MOUNT/test.sh
@@ -16,7 +16,8 @@ client_run() {
dd if=/dev/zero of=$TESTDIR/result bs=1M count=1
$testdir/run-qemu \
-hda $TESTDIR/root.btrfs \
- -hdb $TESTDIR/result \
+ -hdb $TESTDIR/usr.btrfs \
+ -hdc $TESTDIR/result \
-m 256M -nographic \
-net none -kernel /boot/vmlinuz-$KVERSION \
-watchdog ib700 -watchdog-action poweroff \
@@ -37,7 +38,7 @@ client_run() {
}
test_run() {
- client_run "no option specified, should fail" && return 1
+ client_run "no option specified" || return 1
client_run "readonly root" "ro" || return 1
client_run "writeable root" "rw" || return 1
return 0
@@ -45,8 +46,10 @@ test_run() {
test_setup() {
rm -f $TESTDIR/root.btrfs
+ rm -f $TESTDIR/usr.btrfs
# Create the blank file to use as a root filesystem
dd if=/dev/null of=$TESTDIR/root.btrfs bs=1M seek=160
+ dd if=/dev/null of=$TESTDIR/usr.btrfs bs=1M seek=160
kernel=$KVERSION
# Create what will eventually be our root filesystem onto an overlay
@@ -100,6 +103,7 @@ test_setup() {
$testdir/run-qemu \
-hda $TESTDIR/root.btrfs \
+ -hdb $TESTDIR/usr.btrfs \
-m 256M -nographic -net none \
-kernel "/boot/vmlinuz-$kernel" \
-append "root=/dev/dracut/root rw rootfstype=btrfs quiet console=ttyS0,115200n81 selinux=0" \

View File

@ -0,0 +1,22 @@
From 38bbec3731b8e7b6b130debb4eed43bbdab75dea Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 3 Jul 2012 18:22:29 +0200
Subject: [PATCH] TEST-30-ISCSI: put back in hard-off.sh for tests
---
test/TEST-30-ISCSI/test.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/TEST-30-ISCSI/test.sh b/test/TEST-30-ISCSI/test.sh
index cf4b6ec..5ebd9ac 100755
--- a/test/TEST-30-ISCSI/test.sh
+++ b/test/TEST-30-ISCSI/test.sh
@@ -155,7 +155,7 @@ test_setup() {
initdir=$TESTDIR/overlay
. $basedir/dracut-functions.sh
dracut_install poweroff shutdown
-# inst_hook emergency 000 ./hard-off.sh
+ inst_hook emergency 000 ./hard-off.sh
inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
)
sudo $basedir/dracut.sh -l -i $TESTDIR/overlay / \

View File

@ -0,0 +1,35 @@
From f7bccf3724834ca42b2521f0367291219314a09a Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 3 Jul 2012 18:23:27 +0200
Subject: [PATCH] lsinitrd.sh: print usage for -?, -h
---
lsinitrd.sh | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/lsinitrd.sh b/lsinitrd.sh
index e6767dc..f27f755 100755
--- a/lsinitrd.sh
+++ b/lsinitrd.sh
@@ -19,13 +19,19 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
-[[ $# -le 2 ]] || { echo "Usage: $(basename $0) [-s] [<initramfs file> [<filename>]]" ; exit 1 ; }
+usage()
+{
+ echo "Usage: $(basename $0) [-s] [<initramfs file> [<filename>]]"
+}
+
+[[ $# -le 2 ]] || { usage ; exit 1 ; }
sorted=0
while getopts "s" opt; do
case $opt in
s) sorted=1;;
- \?) exit 1;;
+ h) usage; exit 0;;
+ \?) usage; exit 1;;
esac
done
shift $((OPTIND-1))

View File

@ -0,0 +1,22 @@
From d8caa679e06e779a04e2353cfeab80de47477d2a Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 3 Jul 2012 18:23:59 +0200
Subject: [PATCH] lsinitrd.sh: get rid of awk call
---
lsinitrd.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lsinitrd.sh b/lsinitrd.sh
index f27f755..fc4b8b0 100755
--- a/lsinitrd.sh
+++ b/lsinitrd.sh
@@ -63,7 +63,7 @@ if [[ $# -eq 2 ]]; then
exit $?
fi
-echo "$image: $(du -h $image | awk '{print $1}')"
+echo "$image: $(du -h $image | while read a b; do echo $a;done)"
echo "========================================================================"
$CAT "$image" | cpio --extract --verbose --quiet --to-stdout 'lib/dracut/dracut-*' 2>/dev/null
echo "========================================================================"

View File

@ -0,0 +1,22 @@
From a85ee030ab6b3b29833b10be6b83c89e8fc0c455 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 3 Jul 2012 18:24:21 +0200
Subject: [PATCH] lsinitrd.sh: fixed version file extraction
---
lsinitrd.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lsinitrd.sh b/lsinitrd.sh
index fc4b8b0..a844932 100755
--- a/lsinitrd.sh
+++ b/lsinitrd.sh
@@ -65,7 +65,7 @@ fi
echo "$image: $(du -h $image | while read a b; do echo $a;done)"
echo "========================================================================"
-$CAT "$image" | cpio --extract --verbose --quiet --to-stdout 'lib/dracut/dracut-*' 2>/dev/null
+$CAT "$image" | cpio --extract --verbose --quiet --to-stdout '*lib/dracut/dracut-*' 2>/dev/null
echo "========================================================================"
if [ "$sorted" -eq 1 ]; then
$CAT "$image" | cpio --extract --verbose --quiet --list | sort -n -k5

View File

@ -0,0 +1,22 @@
From eaf4cb6bbb6367c967d1af3a00af5be3eba98a56 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 5 Jul 2012 06:57:11 +0200
Subject: [PATCH] Makefile: mkinitrd man page install typo
---
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index 78cf85d..07741d0 100644
--- a/Makefile
+++ b/Makefile
@@ -74,7 +74,7 @@ install: doc dracut-version.sh
install -m 0755 dracut-initramfs-restore.sh $(DESTDIR)$(pkglibdir)/dracut-initramfs-restore
cp -arx modules.d $(DESTDIR)$(pkglibdir)
install -m 0644 lsinitrd.1 $(DESTDIR)$(mandir)/man1/lsinitrd.1
- install -m 0644 mkdinitrd.8 $(DESTDIR)$(mandir)/man8/mkinitrd.8
+ install -m 0644 mkinitrd.8 $(DESTDIR)$(mandir)/man8/mkinitrd.8
install -m 0644 dracut.8 $(DESTDIR)$(mandir)/man8/dracut.8
install -m 0644 dracut-catimages.8 \
$(DESTDIR)$(mandir)/man8/dracut-catimages.8

View File

@ -0,0 +1,22 @@
From 0251fcd4003501f5a6a50fa31d640f4bf307c3de Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 5 Jul 2012 10:11:27 +0200
Subject: [PATCH] fips: change module list
---
modules.d/01fips/module-setup.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules.d/01fips/module-setup.sh b/modules.d/01fips/module-setup.sh
index 3a35c9b..dbf51e3 100755
--- a/modules.d/01fips/module-setup.sh
+++ b/modules.d/01fips/module-setup.sh
@@ -13,7 +13,7 @@ depends() {
installkernel() {
local _fipsmodules _mod
_fipsmodules="aead aes_generic xts aes-x86_64 ansi_cprng cbc ccm chainiv ctr"
- _fipsmodules+=" des deflate ecb eseqiv hmac seqiv sha256 sha512"
+ _fipsmodules+=" des deflate ecb eseqiv hmac seqiv sha256_generic sha512"
_fipsmodules+=" cryptomgr crypto_null tcrypt dm-mod dm-crypt"
mkdir -m 0755 -p "${initdir}/etc/modprobe.d"

View File

@ -0,0 +1,42 @@
From 394ffc1d979d47d6ec4c0419ea13e98e1b781bd5 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 5 Jul 2012 10:28:56 +0200
Subject: [PATCH] i18n/module-setup.sh: s/error/info if no keymap is
configured
https://bugzilla.redhat.com/show_bug.cgi?id=836418
---
modules.d/10i18n/module-setup.sh | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/modules.d/10i18n/module-setup.sh b/modules.d/10i18n/module-setup.sh
index a7ddc82..a1cf1c8 100755
--- a/modules.d/10i18n/module-setup.sh
+++ b/modules.d/10i18n/module-setup.sh
@@ -74,9 +74,11 @@ install() {
for map in ${item[1]//,/ }
do
map=(${map//-/ })
- value=$(grep "^${map[0]}=" "${item[0]}")
- value=${value#*=}
- echo "${map[1]:-${map[0]}}=${value}"
+ if [[ -f "${item[0]}" ]]; then
+ value=$(grep "^${map[0]}=" "${item[0]}")
+ value=${value#*=}
+ echo "${map[1]:-${map[0]}}=${value}"
+ fi
done
done
}
@@ -155,9 +157,10 @@ install() {
EXT_KEYMAPS+=\ ${UNIKEYMAP}\ ${GRP_TOGGLE}
[[ ${KEYMAP} ]] || {
- derror 'No KEYMAP.'
+ dinfo 'No KEYMAP configured.'
return 1
}
+
findkeymap ${KEYMAP}
for map in ${EXT_KEYMAPS}

View File

@ -0,0 +1,85 @@
From 338b43cd6a97cf767af2953ce5c69240d4c32290 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 5 Jul 2012 10:42:22 +0200
Subject: [PATCH] fips: add instmods silent check mode "-c -s"
---
dracut-functions.sh | 18 ++++++++++++------
modules.d/01fips/module-setup.sh | 4 ++--
2 files changed, 14 insertions(+), 8 deletions(-)
diff --git a/dracut-functions.sh b/dracut-functions.sh
index 6de7c72..d91e2a4 100755
--- a/dracut-functions.sh
+++ b/dracut-functions.sh
@@ -1290,8 +1290,8 @@ find_kernel_modules () {
find_kernel_modules_by_path drivers
}
-# instmods [-c] <kernel module> [<kernel module> ... ]
-# instmods [-c] <kernel subsystem>
+# instmods [-c [-s]] <kernel module> [<kernel module> ... ]
+# instmods [-c [-s]] <kernel subsystem>
# install kernel modules along with all their dependencies.
# <kernel subsystem> can be e.g. "=block" or "=drivers/usb/storage"
instmods() {
@@ -1299,11 +1299,17 @@ instmods() {
# called [sub]functions inherit _fderr
local _fderr=9
local _check=no
+ local _silent=no
if [[ $1 = '-c' ]]; then
_check=yes
shift
fi
+ if [[ $1 = '-s' ]]; then
+ _silent=yes
+ shift
+ fi
+
function inst1mod() {
local _ret=0 _mod="$1"
case $_mod in
@@ -1362,8 +1368,8 @@ instmods() {
if (($# == 0)); then # filenames from stdin
while read _mod; do
inst1mod "${_mod%.ko*}" || {
- if [ "$_check" = "yes" ]; then
- dfatal "Failed to install $_mod"
+ if [[ "$_check" == "yes" ]]; then
+ [[ "$_silent" == "no" ]] && dfatal "Failed to install $_mod"
return 1
fi
}
@@ -1371,8 +1377,8 @@ instmods() {
fi
while (($# > 0)); do # filenames as arguments
inst1mod ${1%.ko*} || {
- if [ "$_check" = "yes" ]; then
- dfatal "Failed to install $1"
+ if [[ "$_check" == "yes" ]]; then
+ [[ "$_silent" == "no" ]] && dfatal "Failed to install $1"
return 1
fi
}
diff --git a/modules.d/01fips/module-setup.sh b/modules.d/01fips/module-setup.sh
index dbf51e3..2d238fb 100755
--- a/modules.d/01fips/module-setup.sh
+++ b/modules.d/01fips/module-setup.sh
@@ -13,13 +13,13 @@ depends() {
installkernel() {
local _fipsmodules _mod
_fipsmodules="aead aes_generic xts aes-x86_64 ansi_cprng cbc ccm chainiv ctr"
- _fipsmodules+=" des deflate ecb eseqiv hmac seqiv sha256_generic sha512"
+ _fipsmodules+=" des deflate ecb eseqiv hmac seqiv sha256 sha256_generic sha512 sha512_generic"
_fipsmodules+=" cryptomgr crypto_null tcrypt dm-mod dm-crypt"
mkdir -m 0755 -p "${initdir}/etc/modprobe.d"
for _mod in $_fipsmodules; do
- if hostonly='' instmods $_mod; then
+ if hostonly='' instmods -c -s $_mod; then
echo $_mod >> "${initdir}/etc/fipsmodules"
echo "blacklist $_mod" >> "${initdir}/etc/modprobe.d/fips.conf"
fi

View File

@ -0,0 +1,25 @@
From d04f16f60047b3d4c52fb4799aa34462f7fe62b7 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 5 Jul 2012 14:30:45 +0200
Subject: [PATCH] install user/group adm for journal
---
modules.d/98systemd/module-setup.sh | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/modules.d/98systemd/module-setup.sh b/modules.d/98systemd/module-setup.sh
index d712724..d20d18d 100755
--- a/modules.d/98systemd/module-setup.sh
+++ b/modules.d/98systemd/module-setup.sh
@@ -101,6 +101,11 @@ install() {
fi
fi
+ # install adm user/group for journald
+ dracut_install nologin
+ egrep '^adm:' "$initdir/etc/passwd" 2>/dev/null >> "$initdir/etc/passwd"
+ egrep '^adm:' /etc/group >> "$initdir/etc/group"
+
ln -fs $systemdutildir/systemd "$initdir/init"
rm -f "${initdir}${systemdsystemunitdir}/emergency.service"

View File

@ -0,0 +1,75 @@
From e7dc1e42cdf519c20c9f104153ef778462fcdbd9 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 5 Jul 2012 12:54:13 +0200
Subject: [PATCH] network: factor out parse_ifname_opts() for ifname-genrules
---
modules.d/40network/ifname-genrules.sh | 2 ++
modules.d/40network/net-lib.sh | 16 ++++++++++++++++
modules.d/40network/parse-ifname.sh | 16 +---------------
3 files changed, 19 insertions(+), 15 deletions(-)
diff --git a/modules.d/40network/ifname-genrules.sh b/modules.d/40network/ifname-genrules.sh
index e188c88..b0b429c 100755
--- a/modules.d/40network/ifname-genrules.sh
+++ b/modules.d/40network/ifname-genrules.sh
@@ -7,6 +7,8 @@ if ! getarg ifname= >/dev/null ; then
return
fi
+command -v parse_ifname_opts >/dev/null || . /lib/net-lib.sh
+
{
for p in $(getargs ifname=); do
parse_ifname_opts $p
diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh
index 9132e4d..9a1e004 100644
--- a/modules.d/40network/net-lib.sh
+++ b/modules.d/40network/net-lib.sh
@@ -289,3 +289,19 @@ ip_to_var() {
esac
fi
}
+
+parse_ifname_opts() {
+ local IFS=:
+ set $1
+
+ case $# in
+ 7)
+ ifname_if=$1
+ # udev requires MAC addresses to be lower case
+ ifname_mac=$(echo $2:$3:$4:$5:$6:$7 | sed 'y/ABCDEF/abcdef/')
+ ;;
+ *)
+ die "Invalid arguments for ifname="
+ ;;
+ esac
+}
diff --git a/modules.d/40network/parse-ifname.sh b/modules.d/40network/parse-ifname.sh
index ce73a72..d5156b3 100755
--- a/modules.d/40network/parse-ifname.sh
+++ b/modules.d/40network/parse-ifname.sh
@@ -18,21 +18,7 @@ if ! getarg ifname= >/dev/null ; then
return
fi
-parse_ifname_opts() {
- local IFS=:
- set $1
-
- case $# in
- 7)
- ifname_if=$1
- # udev requires MAC addresses to be lower case
- ifname_mac=$(echo $2:$3:$4:$5:$6:$7 | sed 'y/ABCDEF/abcdef/')
- ;;
- *)
- die "Invalid arguments for ifname="
- ;;
- esac
-}
+command -v parse_ifname_opts >/dev/null || . /lib/net-lib.sh
# Check ifname= lines
for p in $(getargs ifname=); do

View File

@ -0,0 +1,123 @@
From f1e9f613d9eea3105e906c114266d283ac898d44 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 6 Jul 2012 12:28:17 +0200
Subject: [PATCH] systemd: exit with sane state
---
modules.d/98systemd/dracut-cmdline.sh | 6 ++++--
modules.d/98systemd/dracut-initqueue.sh | 6 ++++--
modules.d/98systemd/dracut-pre-pivot.sh | 6 ++++--
modules.d/98systemd/dracut-pre-trigger.sh | 6 ++++--
modules.d/98systemd/dracut-pre-udev.sh | 6 ++++--
5 files changed, 20 insertions(+), 10 deletions(-)
diff --git a/modules.d/98systemd/dracut-cmdline.sh b/modules.d/98systemd/dracut-cmdline.sh
index e1a75ea..6a44815 100755
--- a/modules.d/98systemd/dracut-cmdline.sh
+++ b/modules.d/98systemd/dracut-cmdline.sh
@@ -8,9 +8,10 @@ NEWROOT="/sysroot"
[ -d /run/lock ] || mkdir -p -m 0755 /run/lock
if [ -f /dracut-state.sh ]; then
- . /dracut-state.sh || :
+ . /dracut-state.sh 2>/dev/null
fi
-. /lib/dracut-lib.sh
+type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
+
source_conf /etc/conf.d
# run scriptlets to parse the command line
@@ -23,3 +24,4 @@ source_hook cmdline
export root rflags fstype netroot NEWROOT
export -p > /dracut-state.sh
+exit 0
diff --git a/modules.d/98systemd/dracut-initqueue.sh b/modules.d/98systemd/dracut-initqueue.sh
index 03f1c9b..bc63582 100755
--- a/modules.d/98systemd/dracut-initqueue.sh
+++ b/modules.d/98systemd/dracut-initqueue.sh
@@ -3,9 +3,10 @@
# ex: ts=8 sw=4 sts=4 et filetype=sh
if [ -f /dracut-state.sh ]; then
- . /dracut-state.sh || :
+ . /dracut-state.sh 2>/dev/null
fi
-. /lib/dracut-lib.sh
+type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
+
source_conf /etc/conf.d
getarg 'rd.break=initqueue' 'rdbreak=initqueue' && emergency_shell -n initqueue "Break before initqueue"
@@ -106,3 +107,4 @@ done
export -p > /dracut-state.sh
systemctl isolate initrd-switch-root.target
+exit 0
diff --git a/modules.d/98systemd/dracut-pre-pivot.sh b/modules.d/98systemd/dracut-pre-pivot.sh
index 89d7e6d..29a8248 100755
--- a/modules.d/98systemd/dracut-pre-pivot.sh
+++ b/modules.d/98systemd/dracut-pre-pivot.sh
@@ -3,9 +3,10 @@
# ex: ts=8 sw=4 sts=4 et filetype=sh
if [ -f /dracut-state.sh ]; then
- . /dracut-state.sh || :
+ . /dracut-state.sh 2>/dev/null
fi
-. /lib/dracut-lib.sh
+type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
+
source_conf /etc/conf.d
# pre pivot scripts are sourced just before we doing cleanup and switch over
@@ -49,3 +50,4 @@ getarg rd.break rdbreak && emergency_shell -n switch_root "Break before switch_r
cp -avr /lib/systemd/system/dracut*.service /run/systemd/system/
export -p > /dracut-state.sh
+exit 0
diff --git a/modules.d/98systemd/dracut-pre-trigger.sh b/modules.d/98systemd/dracut-pre-trigger.sh
index 9521eaa..52ecfaf 100755
--- a/modules.d/98systemd/dracut-pre-trigger.sh
+++ b/modules.d/98systemd/dracut-pre-trigger.sh
@@ -3,9 +3,10 @@
# ex: ts=8 sw=4 sts=4 et filetype=sh
if [ -f /dracut-state.sh ]; then
- . /dracut-state.sh || :
+ . /dracut-state.sh 2>/dev/null
fi
-. /lib/dracut-lib.sh
+type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
+
source_conf /etc/conf.d
getargbool 0 rd.udev.info -y rdudevinfo && udevadm control --log-priority=info
@@ -17,3 +18,4 @@ source_hook pre-trigger
udevadm control --reload >/dev/null 2>&1 || :
export -p > /dracut-state.sh
+exit 0
diff --git a/modules.d/98systemd/dracut-pre-udev.sh b/modules.d/98systemd/dracut-pre-udev.sh
index 3b5ac37..2566ab9 100755
--- a/modules.d/98systemd/dracut-pre-udev.sh
+++ b/modules.d/98systemd/dracut-pre-udev.sh
@@ -3,9 +3,10 @@
# ex: ts=8 sw=4 sts=4 et filetype=sh
if [ -f /dracut-state.sh ]; then
- . /dracut-state.sh || :
+ . /dracut-state.sh 2>/dev/null
fi
-. /lib/dracut-lib.sh
+type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
+
source_conf /etc/conf.d
# pre pivot scripts are sourced just before we doing cleanup and switch over
@@ -14,3 +15,4 @@ getarg 'rd.break=pre-udev' 'rdbreak=pre-udev' && emergency_shell -n pre-udev "Br
source_hook pre-udev
export -p > /dracut-state.sh
+exit 0

View File

@ -0,0 +1,26 @@
From e5efb6a798788195e2c1154deb582abf2dc0c6f5 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 6 Jul 2012 12:29:44 +0200
Subject: [PATCH] dracut.asc: add lsinitrd and mkinitrd
---
dracut.asc | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/dracut.asc b/dracut.asc
index 6d93379..e1f756c 100644
--- a/dracut.asc
+++ b/dracut.asc
@@ -1022,6 +1022,12 @@ include::dracut.conf.5.asc[]
[[dracutcmdline7]]
include::dracut.cmdline.7.asc[]
+[[lsinitrd1]]
+include::lsinitrd.1.asc[]
+
+[[mkinitrd8]]
+include::mkinitrd.8.asc[]
+
:leveloffset: 0
[appendix]
License

View File

@ -0,0 +1,39 @@
From 18595cede8d84212bc8f9055f5710f97998ed165 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 6 Jul 2012 12:30:03 +0200
Subject: [PATCH] dracut.8.asc: fixup NOTE sections
---
dracut.8.asc | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/dracut.8.asc b/dracut.8.asc
index 3c0efb9..619fcaf 100644
--- a/dracut.8.asc
+++ b/dracut.8.asc
@@ -46,7 +46,7 @@ example:
**-o, --omit** _<list of dracut modules>_::
omit a space-separated list of dracut modules. This parameter can be
specified multiple times.
-
++
[NOTE]
===============================
If [LIST] has multiple arguments, then you have to put these in quotes. For
@@ -130,7 +130,7 @@ example:
specify a space-separated list of kernel filesystem modules to exclusively
include in the generic initramfs. This parameter can be specified multiple
times.
-
++
[NOTE]
===============================
If [LIST] has multiple arguments, then you have to put these in quotes. For
@@ -273,7 +273,6 @@ provide a valid _/etc/fstab_.
===============================
If [LIST] has multiple arguments, then you have to put these in quotes. For
example:
-+
----
# dracut --install "/bin/foo /sbin/bar" ...
----

View File

@ -0,0 +1,23 @@
From 5d0404e3b373f29b80f4383fdd87a8525537d6e1 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 6 Jul 2012 12:30:50 +0200
Subject: [PATCH] dracut.cmdline.7.asc: fixup
---
dracut.cmdline.7.asc | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc
index 997c513..5f0396c 100644
--- a/dracut.cmdline.7.asc
+++ b/dracut.cmdline.7.asc
@@ -65,7 +65,8 @@ rootfstype=ext3
do not honor special mount options for the root filesystem found in
_/etc/fstab_ of the real root.
-**resume=**_<path to resume partition>_
+**resume=**_<path to resume partition>_::
+ resume from a swap partition
+
E.g.:
+

View File

@ -0,0 +1,152 @@
From 1760dfc051dfd84e932dbd63ba2b3c7e8b6ecf50 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 6 Jul 2012 12:31:31 +0200
Subject: [PATCH] network: do not rename other interfaces and document the
ifname usage
We do not support renaming in the kernel namespace anymore (as udev does
that not anymore). So, if a user wants to use ifname, he has to rename
to a custom namespace. "eth[0-9]+" is not allowed anymore.
---
dracut.cmdline.7.asc | 49 +++++++++++++++++++++++++-------
modules.d/40network/ifname-genrules.sh | 7 +----
modules.d/40network/net-genrules.sh | 4 +--
modules.d/40network/net-lib.sh | 10 +++++++
modules.d/95fcoe/fcoe-genrules.sh | 2 +-
5 files changed, 53 insertions(+), 19 deletions(-)
diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc
index 5f0396c..755d641 100644
--- a/dracut.cmdline.7.asc
+++ b/dracut.cmdline.7.asc
@@ -295,24 +295,51 @@ Network
**ip=**_<interface>_:_{dhcp|on|any|dhcp6|auto6}_[:[_<mtu>_][:_<macaddr>_]]::
This parameter can be specified multiple times.
+
+=====================
dhcp|on|any|dhcp6::: get ip from dhcp server on a specific interface
auto6::: do IPv6 autoconfiguration
-<macaddr>::: optionally set <macaddr> on the <interface>
+<macaddr>::: optionally **set** <macaddr> on the <interface>. This
+cannot be used in conjunction with the **ifname** argument for the
+same <interface>.
+=====================
+
+[IMPORTANT]
+=====================
+It is recommended to either bind <interface> to a MAC with the **ifname**
+argument. Or use biosdevname to name your interfaces, which will then have names according to their hardware location.
+
+em<port>::: for embedded NICs
+p<slot>#<port>_<virtual instance>::: for cards in PCI slots
+=====================
**ip=**_<client-IP>_:_<server-IP>_:_<gateway-IP>_:_<netmask>_:_<client_hostname>_:_<interface>_:_{none|off|dhcp|on|any|dhcp6|auto6|ibft}_[:[_<mtu>_][:_<macaddr>_]]::
explicit network configuration. If you want do define a IPv6 address, put it
in brackets (e.g. [2001:DB8::1]). This parameter can be specified multiple
times.
+
-<macaddr>::: optionally set <macaddr> on the <interface>
+=====================
+<macaddr>::: optionally **set** <macaddr> on the <interface>. This
+cannot be used in conjunction with the **ifname** argument for the
+same <interface>.
+=====================
+
+[IMPORTANT]
+=====================
+It is recommended to either bind <interface> to a MAC with the **ifname**
+argument. Or use biosdevname to name your interfaces, which will then have names according to their hardware location.
+
+em<port>::: for embedded NICs
+p<slot>#<port>_<virtual instance>::: for cards in PCI slots
+=====================
**ifname=**_<interface>_:_<MAC>_::
- Assign network device name <interface> (ie eth0) to the NIC with MAC <MAC>.
- Note: If you use this option you _must_ specify an ifname= argument for all
- interfaces used in ip= or fcoe= arguments. However, if the interface in
- ip= or fcoe= is a bridge, bonding or vlan interface, you should specify
- an ifname= for _each_ of its underlying interfaces. This parameter can be
- specified multiple times.
+ Assign network device name <interface> (ie "bootnet") to the NIC with MAC <MAC>.
++
+[IMPORTANT]
+
+Do **not** use the default kernel naming scheme for the interface name,
+as it can conflict with the kernel names. So, don't use "eth[0-9]+" for the
+interface name. Better name it "bootnet" or "bluesocket".
**bootdev=**_<interface>_::
specify network interface to use routing and netroot information from.
@@ -430,8 +457,10 @@ FCoE
**fcoe=**_<edd|interface|MAC>_:_{dcb|nodcb}_::
Try to connect to a FCoE SAN through the NIC specified by _<interface>_ or
_<MAC>_ or EDD settings. For the second argument, currently only nodcb is
- supported. This parameter can be specified multiple times. Note: letters in
- the MAC-address must be lowercase!
+ supported. This parameter can be specified multiple times.
++
+[NOTE]
+letters in the MAC-address must be lowercase!
NBD
~~~
diff --git a/modules.d/40network/ifname-genrules.sh b/modules.d/40network/ifname-genrules.sh
index b0b429c..d5f8b0f 100755
--- a/modules.d/40network/ifname-genrules.sh
+++ b/modules.d/40network/ifname-genrules.sh
@@ -15,9 +15,4 @@ command -v parse_ifname_opts >/dev/null || . /lib/net-lib.sh
printf 'SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="%s", ATTR{type}=="1", NAME="%s"\n' "$ifname_mac" "$ifname_if"
done
- # Rename non named interfaces out of the way for named ones.
- for p in $(getargs ifname=); do
- parse_ifname_opts $p
- printf 'SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="?*", ATTR{type}=="1", NAME!="?*", KERNEL=="%s", NAME="%%k-renamed"\n' "$ifname_if"
- done
-} > /etc/udev/rules.d/50-ifname.rules
+} >> /etc/udev/rules.d/80-ifname.rules
diff --git a/modules.d/40network/net-genrules.sh b/modules.d/40network/net-genrules.sh
index 3bb5d80..8aeee2d 100755
--- a/modules.d/40network/net-genrules.sh
+++ b/modules.d/40network/net-genrules.sh
@@ -54,7 +54,7 @@ fix_bootif() {
# Default: We don't know the interface to use, handle all
else
- printf 'SUBSYSTEM=="net", RUN+="%s"\n' "/sbin/initqueue --onetime $ifup" > /etc/udev/rules.d/61-default-net.rules
+ printf 'SUBSYSTEM=="net", RUN+="%s"\n' "/sbin/initqueue --onetime $ifup" > /etc/udev/rules.d/91-default-net.rules
fi
-} > /etc/udev/rules.d/60-net.rules
+} > /etc/udev/rules.d/90-net.rules
diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh
index 9a1e004..641b21e 100644
--- a/modules.d/40network/net-lib.sh
+++ b/modules.d/40network/net-lib.sh
@@ -304,4 +304,14 @@ parse_ifname_opts() {
die "Invalid arguments for ifname="
;;
esac
+
+ case $ifname_if in
+ eth[0-9]|eth[0-9][0-9]|eth[0-9][0-9][0-9]|eth[0-9][0-9][0-9][0-9])
+ warn "ifname=$ifname_if uses the kernel name space for interfaces"
+ warn "This can fail for multiple network interfaces and is discouraged!"
+ warn "Please use a custom name like \"netboot\" or \"bluesocket\""
+ warn "or use biosdevname and no ifname= at all."
+ ;;
+ esac
+
}
diff --git a/modules.d/95fcoe/fcoe-genrules.sh b/modules.d/95fcoe/fcoe-genrules.sh
index d87f72c..80894ed 100755
--- a/modules.d/95fcoe/fcoe-genrules.sh
+++ b/modules.d/95fcoe/fcoe-genrules.sh
@@ -13,4 +13,4 @@
else
printf 'ACTION=="add", SUBSYSTEM=="net", NAME=="%s", RUN+="/sbin/initqueue --onetime --unique --name fcoe-up-$env{INTERFACE} /sbin/fcoe-up $env{INTERFACE} %s"\n' "$fcoe_interface" "$fcoe_dcb"
fi
-} > /etc/udev/rules.d/60-fcoe.rules
+} > /etc/udev/rules.d/92-fcoe.rules

View File

@ -0,0 +1,21 @@
From 528864e4604599e446950817ce7eaeaafa844930 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 6 Jul 2012 12:42:06 +0200
Subject: [PATCH] mkinitrd.8.asc: mark paragraph as important
---
mkinitrd.8.asc | 1 +
1 file changed, 1 insertion(+)
diff --git a/mkinitrd.8.asc b/mkinitrd.8.asc
index 2792915..25661c8 100644
--- a/mkinitrd.8.asc
+++ b/mkinitrd.8.asc
@@ -17,6 +17,7 @@ DESCRIPTION
mkinitrd creates an initramfs image <initrd-image> for the kernel with
version <kernel-version> by calling "dracut".
+[IMPORTANT]
If a more fine grained control over the resulting image is needed,
"dracut" should be called directly.

View File

@ -0,0 +1,38 @@
From f1e7add2bf74b836bc29d20df2e4e53638e49936 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 6 Jul 2012 12:57:17 +0200
Subject: [PATCH] network/ifname-genrules.sh: check for multiple ifname= lines
---
modules.d/40network/ifname-genrules.sh | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/modules.d/40network/ifname-genrules.sh b/modules.d/40network/ifname-genrules.sh
index d5f8b0f..3cf4be7 100755
--- a/modules.d/40network/ifname-genrules.sh
+++ b/modules.d/40network/ifname-genrules.sh
@@ -12,7 +12,23 @@ command -v parse_ifname_opts >/dev/null || . /lib/net-lib.sh
{
for p in $(getargs ifname=); do
parse_ifname_opts $p
+
+ if [ -f /tmp/ifname-$ifname_mac ]; then
+ read oldif < /tmp/ifname-$ifname_mac
+ fi
+ if [ -f /tmp/ifname-$ifname_if ]; then
+ read oldmac < /tmp/ifname-$ifname_if
+ fi
+ if [ -n "$oldif" -a -n "$oldmac" -a "$oldif" = "$ifname_if" -a "$oldmac" = "$ifname_mac" ]; then
+ # skip same ifname= declaration
+ continue
+ fi
+
+ [ -n "$oldif" ] && warn "Multiple interface names specified for MAC $ifname_mac: $oldif"
+ [ -n "$oldmac" ] && warn "Multiple MAC specified for $ifname_if: $oldmac"
+
printf 'SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="%s", ATTR{type}=="1", NAME="%s"\n' "$ifname_mac" "$ifname_if"
+ echo $ifname_if > /tmp/ifname-$ifname_mac
+ echo $ifname_mac > /tmp/ifname-$ifname_if
done
-
} >> /etc/udev/rules.d/80-ifname.rules

View File

@ -0,0 +1,21 @@
From a421016671d59d99d182194223e83a6a616dedf2 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 6 Jul 2012 13:48:05 +0200
Subject: [PATCH] dracut.sh: keep vim syntax highlighting happy
---
dracut.sh | 1 +
1 file changed, 1 insertion(+)
diff --git a/dracut.sh b/dracut.sh
index c1be619..db2e33b 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -641,6 +641,7 @@ unset omit_drivers_corrected
for ((i=0; i < ${#dracut_args[@]}; i++)); do
strstr "${dracut_args[$i]}" " " && \
dracut_args[$i]="\"${dracut_args[$i]}\""
+ #" keep vim happy
done
ddebug "Executing: $0 ${dracut_args[@]}"

View File

@ -0,0 +1,55 @@
From e09048aaf5cbc6c98fc03bdf89250e5c0e70f8c0 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 6 Jul 2012 13:49:03 +0200
Subject: [PATCH] systemd: check, that --prefix= does not contain /run
systemd will mount /run before dracut has a chance to copy over the
original content.
---
dracut.sh | 3 ++-
modules.d/98systemd/module-setup.sh | 10 +++++++---
2 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/dracut.sh b/dracut.sh
index db2e33b..0b43f44 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -779,7 +779,8 @@ export initdir dracutbasedir dracutmodules drivers \
use_fstab fstab_lines libdirs fscks nofscks \
stdloglvl sysloglvl fileloglvl kmsgloglvl logfile \
debug host_fs_types host_devs sshkey add_fstab \
- DRACUT_VERSION udevdir systemdutildir systemdsystemunitdir
+ DRACUT_VERSION udevdir systemdutildir systemdsystemunitdir \
+ prefix
# Create some directory structure first
[[ $prefix ]] && mkdir -m 0755 -p "${initdir}${prefix}"
diff --git a/modules.d/98systemd/module-setup.sh b/modules.d/98systemd/module-setup.sh
index d20d18d..b2111a9 100755
--- a/modules.d/98systemd/module-setup.sh
+++ b/modules.d/98systemd/module-setup.sh
@@ -4,10 +4,9 @@
check() {
[[ $mount_needs ]] && return 1
- if [[ -x /lib/systemd/systemd ]] || [[ -x /usr/lib/systemd/systemd ]]; then
- return 255
+ if [[ -x $systemdutildir/systemd ]]; then
+ return 255
fi
- [[ $systemdutildir ]] && return 255
return 1
}
@@ -17,6 +16,11 @@ depends() {
}
install() {
+ if strstr "$prefix" "/run/"; then
+ dfatal "systemd does not work a prefix, which contains \"/run\"!!"
+ exit 1
+ fi
+
dracut_install -o \
$systemdutildir/systemd \
$systemdutildir/systemd-cgroups-agent \

View File

@ -0,0 +1,81 @@
From e1619ee151b20549dc5c6112a5715df58db7b108 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 6 Jul 2012 14:06:05 +0200
Subject: [PATCH] fixed bash/sh requirements
---
modules.d/90btrfs/btrfs_finished.sh | 2 +-
modules.d/90btrfs/btrfs_timeout.sh | 2 +-
modules.d/90livenet/fetch-liveupdate.sh | 2 +-
modules.d/90livenet/livenetroot.sh | 2 +-
modules.d/90livenet/module-setup.sh | 2 +-
modules.d/99img-lib/module-setup.sh | 3 +--
6 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/modules.d/90btrfs/btrfs_finished.sh b/modules.d/90btrfs/btrfs_finished.sh
index 7e87dec..5e7691a 100755
--- a/modules.d/90btrfs/btrfs_finished.sh
+++ b/modules.d/90btrfs/btrfs_finished.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
diff --git a/modules.d/90btrfs/btrfs_timeout.sh b/modules.d/90btrfs/btrfs_timeout.sh
index 84f7997..cd64443 100755
--- a/modules.d/90btrfs/btrfs_timeout.sh
+++ b/modules.d/90btrfs/btrfs_timeout.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
diff --git a/modules.d/90livenet/fetch-liveupdate.sh b/modules.d/90livenet/fetch-liveupdate.sh
index 88aa2b1..024feaa 100755
--- a/modules.d/90livenet/fetch-liveupdate.sh
+++ b/modules.d/90livenet/fetch-liveupdate.sh
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
# fetch-liveupdate - fetch an update image for dmsquash-live media.
# this gets called by the "initqueue/online" hook for each network interface
# that comes online.
diff --git a/modules.d/90livenet/livenetroot.sh b/modules.d/90livenet/livenetroot.sh
index 617be62..1bbee55 100755
--- a/modules.d/90livenet/livenetroot.sh
+++ b/modules.d/90livenet/livenetroot.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
# livenetroot - fetch a live image from the network and run it
type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
diff --git a/modules.d/90livenet/module-setup.sh b/modules.d/90livenet/module-setup.sh
index 265f29e..4249655 100755
--- a/modules.d/90livenet/module-setup.sh
+++ b/modules.d/90livenet/module-setup.sh
@@ -6,7 +6,7 @@ check() {
}
depends() {
- echo network url-lib dmsquash-live
+ echo network url-lib dmsquash-live img-lib
return 0
}
diff --git a/modules.d/99img-lib/module-setup.sh b/modules.d/99img-lib/module-setup.sh
index 9ff5d7c..ebd0436 100755
--- a/modules.d/99img-lib/module-setup.sh
+++ b/modules.d/99img-lib/module-setup.sh
@@ -13,8 +13,7 @@ depends() {
}
install() {
- # NOTE/TODO: we require bash, but I don't know how to specify that..
- dracut_install tar gzip dd
+ dracut_install tar gzip dd bash
# TODO: make this conditional on a cmdline flag / config option
dracut_install -o cpio xz bzip2
inst_simple "$moddir/img-lib.sh" "/lib/img-lib.sh"

View File

@ -0,0 +1,56 @@
From d96c3254e8bbe56763617f45f1148d81b10f4745 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 6 Jul 2012 14:22:10 +0200
Subject: [PATCH] dracut.spec,dracut.conf.d/fedora.conf.example: no dash
hard remove dash from supported modules
we do not want to have anything to do with dash bugs
---
dracut.conf.d/fedora.conf.example | 7 +++----
dracut.spec | 4 +++-
2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/dracut.conf.d/fedora.conf.example b/dracut.conf.d/fedora.conf.example
index 25b5cfa..ee53844 100644
--- a/dracut.conf.d/fedora.conf.example
+++ b/dracut.conf.d/fedora.conf.example
@@ -2,13 +2,12 @@
# i18n
i18n_vars="/etc/sysconfig/keyboard:KEYTABLE-KEYMAP /etc/sysconfig/i18n:SYSFONT-FONT,FONTACM-FONT_MAP,FONT_UNIMAP"
-omit_dracutmodules+=" dash "
omit_drivers+=" .*/fs/ocfs/.* "
-add_dracutmodules+=" systemd "
stdloglvl=3
-realinitpath="/usr/lib/systemd/systemd"
install_items+=" vi /etc/virc ps grep cat rm "
-prefix="/"
+readonly prefix="/"
systemdutildir=/usr/lib/systemd
systemdsystemunitdir=/usr/lib/systemd/system
udevdir=/usr/lib/udev
+add_dracutmodules+=" systemd "
+realinitpath="/usr/lib/systemd/systemd"
diff --git a/dracut.spec b/dracut.spec
index b258121..a6fec89 100644
--- a/dracut.spec
+++ b/dracut.spec
@@ -190,6 +190,9 @@ rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/01fips
rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/02fips-aesni
%endif
+# we do not support dash in the initramfs
+rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/00dash
+
# remove gentoo specific modules
rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/50gensplash
@@ -261,7 +264,6 @@ rm -rf $RPM_BUILD_ROOT
%{_mandir}/man5/dracut.conf.5*
%{_mandir}/man1/lsinitrd.1*
%{dracutlibdir}/modules.d/00bootchart
-%{dracutlibdir}/modules.d/00dash
%{dracutlibdir}/modules.d/04watchdog
%{dracutlibdir}/modules.d/05busybox
%{dracutlibdir}/modules.d/10i18n

View File

@ -0,0 +1,51 @@
From 995487641743afebd84f1476c3d32120e7e357ae Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 6 Jul 2012 14:33:53 +0200
Subject: [PATCH] systemd/module-setup.sh: also include systemd-udevd* units
systemd-udev* was renamed to systemd-udevd*
---
modules.d/98systemd/module-setup.sh | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/modules.d/98systemd/module-setup.sh b/modules.d/98systemd/module-setup.sh
index b2111a9..60e1be2 100755
--- a/modules.d/98systemd/module-setup.sh
+++ b/modules.d/98systemd/module-setup.sh
@@ -55,7 +55,9 @@ install() {
$systemdsystemunitdir/systemd-shutdownd.socket \
$systemdsystemunitdir/systemd-ask-password-console.path \
$systemdsystemunitdir/systemd-udev-control.socket \
+ $systemdsystemunitdir/systemd-udevd-control.socket \
$systemdsystemunitdir/systemd-udev-kernel.socket \
+ $systemdsystemunitdir/systemd-udevd-kernel.socket \
$systemdsystemunitdir/systemd-ask-password-plymouth.path \
$systemdsystemunitdir/systemd-journald.socket \
$systemdsystemunitdir/systemd-initctl.service \
@@ -67,8 +69,11 @@ install() {
$systemdsystemunitdir/kexec.service \
$systemdsystemunitdir/fsck@.service \
$systemdsystemunitdir/systemd-udev.service \
+ $systemdsystemunitdir/systemd-udevd.service \
$systemdsystemunitdir/systemd-udev-trigger.service \
+ $systemdsystemunitdir/systemd-udevd-trigger.service \
$systemdsystemunitdir/systemd-udev-settle.service \
+ $systemdsystemunitdir/systemd-udevd-settle.service \
$systemdsystemunitdir/systemd-ask-password-plymouth.service \
$systemdsystemunitdir/systemd-journald.service \
$systemdsystemunitdir/systemd-vconsole-setup.service \
@@ -79,10 +84,14 @@ install() {
$systemdsystemunitdir/sockets.target.wants/systemd-initctl.socket \
$systemdsystemunitdir/sockets.target.wants/systemd-shutdownd.socket \
$systemdsystemunitdir/sockets.target.wants/systemd-udev-control.socket \
+ $systemdsystemunitdir/sockets.target.wants/systemd-udevd-control.socket \
$systemdsystemunitdir/sockets.target.wants/systemd-udev-kernel.socket \
+ $systemdsystemunitdir/sockets.target.wants/systemd-udevd-kernel.socket \
$systemdsystemunitdir/sockets.target.wants/systemd-journald.socket \
$systemdsystemunitdir/sysinit.target.wants/systemd-udev.service \
+ $systemdsystemunitdir/sysinit.target.wants/systemd-udevd.service \
$systemdsystemunitdir/sysinit.target.wants/systemd-udev-trigger.service \
+ $systemdsystemunitdir/sysinit.target.wants/systemd-udevd-trigger.service \
$systemdsystemunitdir/ctrl-alt-del.target \
$systemdsystemunitdir/single.service \
$systemdsystemunitdir/syslog.socket \

View File

@ -10,7 +10,7 @@
Name: dracut
Version: 020
Release: 22.git20120702%{?dist}
Release: 51.git20120706%{?dist}
Summary: Initramfs generator using udev
%if 0%{?fedora} || 0%{?rhel}
@ -50,6 +50,35 @@ Patch18: 0018-dracut-functions.sh-create-initdir-if-it-does-not-ex.patch
Patch19: 0019-dracut-install.c-for-lazy-install-shebangs-do-not-ch.patch
Patch20: 0020-usrmount-mount-usr.sh-give-emergency_shell-if-usr-mo.patch
Patch21: 0021-dracut-functions.sh-forgot-set-version-kernel-for-mo.patch
Patch22: 0022-dracut-functions.sh-find_kernel_modules_by_path-fixe.patch
Patch23: 0023-base-init.sh-error-out-early-if-dev-proc-or-sys-cann.patch
Patch24: 0024-add-lsinitrd-and-mkinitrd-man-pages.patch
Patch25: 0025-manpages-simplify-AUTHORS.patch
Patch26: 0026-dracut.sh-use-getopt-to-parse-arguments.patch
Patch27: 0027-usrmount-mount-usr.sh-check-the-right-path-with-ismo.patch
Patch28: 0028-TEST-03-USR-MOUNT-change-test-to-use-a-seperate-disk.patch
Patch29: 0029-TEST-30-ISCSI-put-back-in-hard-off.sh-for-tests.patch
Patch30: 0030-lsinitrd.sh-print-usage-for-h.patch
Patch31: 0031-lsinitrd.sh-get-rid-of-awk-call.patch
Patch32: 0032-lsinitrd.sh-fixed-version-file-extraction.patch
Patch33: 0033-Makefile-mkinitrd-man-page-install-typo.patch
Patch34: 0034-fips-change-module-list.patch
Patch35: 0035-i18n-module-setup.sh-s-error-info-if-no-keymap-is-co.patch
Patch36: 0036-fips-add-instmods-silent-check-mode-c-s.patch
Patch37: 0037-install-user-group-adm-for-journal.patch
Patch38: 0038-network-factor-out-parse_ifname_opts-for-ifname-genr.patch
Patch39: 0039-systemd-exit-with-sane-state.patch
Patch40: 0040-dracut.asc-add-lsinitrd-and-mkinitrd.patch
Patch41: 0041-dracut.8.asc-fixup-NOTE-sections.patch
Patch42: 0042-dracut.cmdline.7.asc-fixup.patch
Patch43: 0043-network-do-not-rename-other-interfaces-and-document-.patch
Patch44: 0044-mkinitrd.8.asc-mark-paragraph-as-important.patch
Patch45: 0045-network-ifname-genrules.sh-check-for-multiple-ifname.patch
Patch46: 0046-dracut.sh-keep-vim-syntax-highlighting-happy.patch
Patch47: 0047-systemd-check-that-prefix-does-not-contain-run.patch
Patch48: 0048-fixed-bash-sh-requirements.patch
Patch49: 0049-dracut.spec-dracut.conf.d-fedora.conf.example-no-das.patch
Patch50: 0050-systemd-module-setup.sh-also-include-systemd-udevd-u.patch
BuildRequires: dash bash git
@ -212,6 +241,9 @@ rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/01fips
rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/02fips-aesni
%endif
# we do not support dash in the initramfs
rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/00dash
# remove gentoo specific modules
rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/50gensplash
@ -277,11 +309,12 @@ rm -rf $RPM_BUILD_ROOT
%endif
%dir /etc/dracut.conf.d
%{_mandir}/man8/dracut.8*
%{_mandir}/man8/mkinitrd.8*
%{_mandir}/man7/dracut.kernel.7*
%{_mandir}/man7/dracut.cmdline.7*
%{_mandir}/man5/dracut.conf.5*
%{_mandir}/man1/lsinitrd.1*
%{dracutlibdir}/modules.d/00bootchart
%{dracutlibdir}/modules.d/00dash
%{dracutlibdir}/modules.d/04watchdog
%{dracutlibdir}/modules.d/05busybox
%{dracutlibdir}/modules.d/10i18n
@ -373,6 +406,11 @@ rm -rf $RPM_BUILD_ROOT
%dir /var/lib/dracut/overlay
%changelog
* Fri Jul 06 2012 Harald Hoyer <harald@redhat.com> 020-51.git20120706
- cope with systemd-udevd unit renaming
- fixed network renaming
- removed dash module
* Mon Jul 02 2012 Harald Hoyer <harald@redhat.com> 020-22.git20120702
- fixed kernel modules install