dracut-036-16.git20140206

- version 036
- parse dns information on "ip=" command line arg
- preserve ownership of files, if root creates the initramfs
- parse ibft nameserver settings
- do not run dhcp twice on an interface
- try to not reload systemd
This commit is contained in:
Harald Hoyer 2014-02-06 17:06:12 +01:00
parent 131b9510f9
commit bcb5fa941d
91 changed files with 1604 additions and 8901 deletions

1
.gitignore vendored
View File

@ -21,3 +21,4 @@
/dracut-032.tar.bz2
/dracut-033.tar.bz2
/dracut-034.tar.bz2
/dracut-036.tar.xz

View File

@ -0,0 +1,21 @@
From d50a99c5ceeb7107f624c5d3238d37509b2217a8 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Wed, 29 Jan 2014 08:37:43 +0100
Subject: [PATCH] NEWS: update for version 036
---
NEWS | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/NEWS b/NEWS
index 5b88600..ccf279f 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,7 @@
+dracut-036
+==========
+- fixed skipcpio signature checking
+
dracut-035
==========
- changed dracut tarball compression to xz

View File

@ -1,38 +0,0 @@
From a3c0cef9a79608a45fee94ff6b31f9c63864923f Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 8 Oct 2013 10:30:00 +0200
Subject: [PATCH] lvm: install thin utils for non-hostonly
---
modules.d/90lvm/module-setup.sh | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/modules.d/90lvm/module-setup.sh b/modules.d/90lvm/module-setup.sh
index f98ffff..514addc 100755
--- a/modules.d/90lvm/module-setup.sh
+++ b/modules.d/90lvm/module-setup.sh
@@ -52,13 +52,17 @@ install() {
inst lvm
- get_host_lvs | while read line; do
- printf "%s" " rd.lvm.lv=$line"
- if ! [[ $_needthin ]]; then
- [[ "$(lvs --noheadings -o segtype ${line%%/*} 2>/dev/null)" == *thin* ]] && _needthin=1
- fi
- done >> "${initdir}/etc/cmdline.d/90lvm.conf"
- echo >> "${initdir}/etc/cmdline.d/90lvm.conf"
+ if [[ $hostonly ]]; then
+ get_host_lvs | while read line; do
+ printf "%s" " rd.lvm.lv=$line"
+ if ! [[ $_needthin ]]; then
+ [[ "$(lvs --noheadings -o segtype ${line%%/*} 2>/dev/null)" == *thin* ]] && _needthin=1
+ fi
+ done >> "${initdir}/etc/cmdline.d/90lvm.conf"
+ echo >> "${initdir}/etc/cmdline.d/90lvm.conf"
+ else
+ _needthin=1
+ fi
inst_rules "$moddir/64-lvm.rules"

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,50 @@
From 66bfe863f551389add3a3a53067264ce32eba302 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 30 Jan 2014 13:50:02 +0100
Subject: [PATCH] network: understand ip=.....:<dns1>:<dns2>
---
modules.d/40network/net-lib.sh | 23 +++++++++++++++++------
1 file changed, 17 insertions(+), 6 deletions(-)
diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh
index 7544401..36fad12 100755
--- a/modules.d/40network/net-lib.sh
+++ b/modules.d/40network/net-lib.sh
@@ -339,7 +339,7 @@ ip_to_var() {
fi
done
- unset ip srv gw mask hostname dev autoconf macaddr mtu
+ unset ip srv gw mask hostname dev autoconf macaddr mtu dns1 dns2
case $# in
0) autoconf="error" ;;
1) autoconf=$1 ;;
@@ -347,11 +347,22 @@ ip_to_var() {
3) [ -n "$1" ] && dev=$1; [ -n "$2" ] && autoconf=$2; [ -n "$3" ] && mtu=$3 ;;
4) [ -n "$1" ] && dev=$1; [ -n "$2" ] && autoconf=$2; [ -n "$3" ] && mtu=$3; [ -n "$4" ] && macaddr=$4 ;;
*) [ -n "$1" ] && ip=$1; [ -n "$2" ] && srv=$2; [ -n "$3" ] && gw=$3; [ -n "$4" ] && mask=$4;
- [ -n "$5" ] && hostname=$5; [ -n "$6" ] && dev=$6; [ -n "$7" ] && autoconf=$7; [ -n "$8" ] && mtu=$8;
- if [ -n "${9}" -a -n "${10}" -a -n "${11}" -a -n "${12}" -a -n "${13}" -a -n "${14}" ]; then
- macaddr="${9}:${10}:${11}:${12}:${13}:${14}"
- fi
- ;;
+ [ -n "$5" ] && hostname=$5; [ -n "$6" ] && dev=$6; [ -n "$7" ] && autoconf=$7;
+ case "$8" in
+ [0-9]*:*|[0-9]*.[0-9]*.[0-9]*.[0-9]*)
+ dns1="$mtu"; unset $mtu
+ [ -n "$9" ] && dns2="$9"
+ ;;
+ [0-9]*)
+ mtu="$8"
+ ;;
+ *)
+ if [ -n "${9}" -a -n "${10}" -a -n "${11}" -a -n "${12}" -a -n "${13}" -a -n "${14}" ]; then
+ macaddr="${9}:${10}:${11}:${12}:${13}:${14}"
+ fi
+ ;;
+ esac
+ ;;
esac
# ip=<ipv4-address> means anaconda-style static config argument cluster:

View File

@ -1,48 +0,0 @@
From 6c8fc6e377b94e26e6d03cddbf174cb27caad0a6 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 8 Oct 2013 15:02:14 +0200
Subject: [PATCH] 10i18n/parse-i18n.sh: parse rd.vconsole and rd.locale
and removed systemd part, because parse-i18n.sh is not even installed in
systemd driven initramfs images.
---
modules.d/10i18n/parse-i18n.sh | 22 ++++++++--------------
1 file changed, 8 insertions(+), 14 deletions(-)
diff --git a/modules.d/10i18n/parse-i18n.sh b/modules.d/10i18n/parse-i18n.sh
index 348c5bc..416a746 100755
--- a/modules.d/10i18n/parse-i18n.sh
+++ b/modules.d/10i18n/parse-i18n.sh
@@ -19,24 +19,18 @@ inst_key_val() {
unset _value
}
-inst_key_val '' /etc/vconsole.conf vconsole.keymap KEYMAP -d KEYTABLE
-inst_key_val '' /etc/vconsole.conf vconsole.font FONT -d SYSFONT
-inst_key_val '' /etc/vconsole.conf vconsole.font.map FONT_MAP -d CONTRANS
-inst_key_val '' /etc/vconsole.conf vconsole.font.unimap FONT_UNIMAP -d UNIMAP
-inst_key_val 1 /etc/vconsole.conf vconsole.font.unicode UNICODE vconsole.unicode
-inst_key_val '' /etc/vconsole.conf vconsole.keymap.ext EXT_KEYMAP
+inst_key_val '' /etc/vconsole.conf rd.vconsole.keymap vconsole.keymap KEYMAP -d KEYTABLE
+inst_key_val '' /etc/vconsole.conf rd.vconsole.font vconsole.font FONT -d SYSFONT
+inst_key_val '' /etc/vconsole.conf rd.vconsole.font.map vconsole.font.map FONT_MAP -d CONTRANS
+inst_key_val '' /etc/vconsole.conf rd.vconsole.font.unimap vconsole.font.unimap FONT_UNIMAP -d UNIMAP
+inst_key_val 1 /etc/vconsole.conf rd.vconsole.font.unicode vconsole.font.unicode UNICODE vconsole.unicode
+inst_key_val '' /etc/vconsole.conf rd.vconsole.keymap.ext vconsole.keymap.ext EXT_KEYMAP
-inst_key_val '' /etc/locale.conf locale.LANG LANG
-inst_key_val '' /etc/locale.conf locale.LC_ALL LC_ALL
+inst_key_val '' /etc/locale.conf rd.locale.LANG locale.LANG LANG
+inst_key_val '' /etc/locale.conf rd.locale.LC_ALL locale.LC_ALL LC_ALL
if [ -f /etc/locale.conf ]; then
. /etc/locale.conf
export LANG
export LC_ALL
fi
-
-if [ -n "$DRACUT_SYSTEMD" ]; then
- rm -f -- /etc/udev/rules.d/10-console.rules
- rm -f -- /lib/udev/rules.d/10-console.rules
- rm -f -- /lib/udev/console_init
-fi

View File

@ -0,0 +1,36 @@
From c8a9a6b4a7dff76c66e84f65b2717632e1bb4505 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 30 Jan 2014 16:11:40 +0100
Subject: [PATCH] dracut.sh: only set the owner of files to 0:0, if generated
as non-root
If the root user generates the initramfs image, preserve the ownership
of the files. This of course cannot be done for non-root users
generating an initramfs image.
---
dracut.sh | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/dracut.sh b/dracut.sh
index 9b715ab..ccff358 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -1462,13 +1462,16 @@ fi
rm -f -- "$outfile"
dinfo "*** Creating image file ***"
+
+[[ "$UID" != 0 ]] && cpio_owner_root="-R 0:0"
+
if [[ $create_early_cpio = yes ]]; then
echo 1 > "$early_cpio_dir/d/early_cpio"
# The microcode blob is _before_ the initramfs blob, not after
- (cd "$early_cpio_dir/d"; find . -print0 | cpio --null -R 0:0 -H newc -o --quiet >../early.cpio)
+ (cd "$early_cpio_dir/d"; find . -print0 | cpio --null $cpio_owner_root -H newc -o --quiet >../early.cpio)
mv $early_cpio_dir/early.cpio $outfile.$$
fi
-if ! ( umask 077; cd "$initdir"; find . -print0 | cpio --null -R 0:0 -H newc -o --quiet | \
+if ! ( umask 077; cd "$initdir"; find . -print0 | cpio --null $cpio_owner_root -H newc -o --quiet | \
$compress >> "$outfile.$$"; ); then
dfatal "dracut: creation of $outfile.$$ failed"
exit 1

View File

@ -0,0 +1,22 @@
From f57850d7e8800cc28c766c77ad0a881a9b6a1f36 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 30 Jan 2014 14:27:18 +0100
Subject: [PATCH] dracut-functions.sh: also search in the updates directory
---
dracut-functions.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dracut-functions.sh b/dracut-functions.sh
index 7cfa097..c766ca3 100755
--- a/dracut-functions.sh
+++ b/dracut-functions.sh
@@ -1551,7 +1551,7 @@ find_kernel_modules_by_path () {
_OLDIFS=$IFS
IFS=:
while read a rest; do
- [[ $a = */$1/* ]] || continue
+ [[ $a = */$1/* ]] || [[ $a = */updates/* ]] || continue
printf "%s\n" "$srcmods/$a"
done < "$srcmods/modules.dep"
IFS=$_OLDIFS

View File

@ -1,38 +0,0 @@
From 05214a0bedc084a41c35a128609745ad04a0c6cf Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 8 Oct 2013 15:03:40 +0200
Subject: [PATCH] dracut.sh: do not bail out, if kernel modules dir is missing
and only print a warning message
---
dracut.sh | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/dracut.sh b/dracut.sh
index e135dfc..d9533dd 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -496,17 +496,18 @@ if [[ $regenerate_all == "yes" ]]; then
((ret+=$?))
done
exit $ret
-elif [[ $kernel ]]; then
- if ! [[ -d /lib/modules/$kernel ]] && [[ $no_kernel != yes ]]; then
- printf -- "Kernel version $kernel has no modules in /lib/modules/$kernel\n" >&2
- exit 1
- fi
fi
if ! [[ $kernel ]]; then
kernel=$(uname -r)
fi
+if [[ $kernel ]]; then
+ if ! [[ -d /lib/modules/$kernel ]] && [[ $no_kernel != yes ]]; then
+ printf -- "Kernel version $kernel has no module directory /lib/modules/$kernel\n" >&2
+ fi
+fi
+
if ! [[ $outfile ]]; then
[[ -f /etc/machine-id ]] && read MACHINE_ID < /etc/machine-id

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,34 @@
From e95e48c6eee46ea0d3cbaa9e28576f795204018a Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 30 Jan 2014 17:11:43 +0100
Subject: [PATCH] network/net-lib.sh: parse ibft nameserver settings
---
modules.d/40network/net-lib.sh | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh
index 36fad12..1b51c85 100755
--- a/modules.d/40network/net-lib.sh
+++ b/modules.d/40network/net-lib.sh
@@ -185,6 +185,7 @@ ibft_to_cmdline() {
for iface in /sys/firmware/ibft/ethernet*; do
local mac="" dev=""
local dhcp="" ip="" gw="" mask="" hostname=""
+ local dns1 dns2
[ -e ${iface}/mac ] || continue
mac=$(read a < ${iface}/mac; echo $a)
@@ -203,9 +204,11 @@ ibft_to_cmdline() {
[ "$ip" = "0.0.0.0" ] && continue
[ -e ${iface}/gateway ] && gw=$(read a < ${iface}/gateway; echo $a)
[ -e ${iface}/subnet-mask ] && mask=$(read a < ${iface}/subnet-mask; echo $a)
+ [ -e ${iface}/primary-dns ] && dns1=$(read a < ${iface}/primary-dns; echo $a)
+ [ -e ${iface}/secondary-dns ] && dns2=$(read a < ${iface}/secondary-dns; echo $a)
[ -e ${iface}/hostname ] && hostname=$(read a < ${iface}/hostname; echo $a)
if [ -n "$ip" ] && [ -n "$mask" ]; then
- echo "ip=$ip::$gw:$mask:$hostname:$dev:none"
+ echo "ip=$ip::$gw:$mask:$hostname:$dev:none${dns1:+:$dns1}${dns2:+:$dns2}"
else
warn "${iface} does not contain a valid iBFT configuration"
warn "ip-addr=$ip"

View File

@ -1,47 +0,0 @@
From 3622d6d7b0806023d60f62fc90b859adaefe5e59 Mon Sep 17 00:00:00 2001
From: "Brian C. Lane" <bcl@redhat.com>
Date: Tue, 8 Oct 2013 15:13:44 +0200
Subject: [PATCH] dmsquash-live: add /dev/mapper/live-base
This is similar to the reason for adding the
/run/initramfs/live-baseloop symlink -- access to the original live
image without overlays.
livemedia-creator does not create a osmin.img, so there is no mountable
device for it to use when rsyncing the live image to the target. It
needs a device that points to the original live image without overlays.
Note that lmc won't be creating osmin.img, since really isn't needed any
longer. Its purpose was to provide a minimal image that could be dd'd to
the target. Now that we use rsync this is no longer necessary.
The included patch adds a /dev/mapper/live-base device that Anaconda can
use whether or not there is an osmin present.
---
modules.d/90dmsquash-live/dmsquash-live-root.sh | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/modules.d/90dmsquash-live/dmsquash-live-root.sh b/modules.d/90dmsquash-live/dmsquash-live-root.sh
index 8951f80..5705e8d 100755
--- a/modules.d/90dmsquash-live/dmsquash-live-root.sh
+++ b/modules.d/90dmsquash-live/dmsquash-live-root.sh
@@ -144,6 +144,9 @@ do_live_overlay() {
over=$OVERLAY_LOOPDEV
fi
echo 0 $sz snapshot $base $over p 8 | dmsetup create live-rw
+
+ # Create a device that always points to a ro base image
+ echo 0 $sz linear $base 0 | dmsetup create --readonly live-base
}
# live cd helper function
@@ -225,9 +228,6 @@ if [ -n "$ROOTFLAGS" ]; then
ROOTFLAGS="-o $ROOTFLAGS"
fi
-if [ -b "$BASE_LOOPDEV" ]; then
- ln -s $BASE_LOOPDEV /run/initramfs/live-baseloop
-fi
ln -s /dev/mapper/live-rw /dev/root
printf 'mount %s /dev/mapper/live-rw %s\n' "$ROOTFLAGS" "$NEWROOT" > $hookdir/mount/01-$$-live.sh

View File

@ -0,0 +1,72 @@
From 1982098e00a545894d7aabba13a99c324e56ed52 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 30 Jan 2014 17:12:24 +0100
Subject: [PATCH] network/ifup.sh: handle $dns1 and $dns2 from "ip=" settings
---
dracut.cmdline.7.asc | 7 +++++++
modules.d/40network/ifup.sh | 21 ++++++++++++---------
2 files changed, 19 insertions(+), 9 deletions(-)
diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc
index 963ba07..985285b 100644
--- a/dracut.cmdline.7.asc
+++ b/dracut.cmdline.7.asc
@@ -472,6 +472,13 @@ cannot be used in conjunction with the **ifname** argument for the
same <interface>.
=====================
+**ip=**__<client-IP>__:[__<peer>__]:__<gateway-IP>__:__<netmask>__:__<client_hostname>__:__<interface>__:__{none|off|dhcp|on|any|dhcp6|auto6|ibft}__[:[__<dns1>__][:__<dns2>__]]::
+ 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. __<peer>__ is optional and is the address of the remote endpoint
+ for pointopoint interfaces and it may be followed by a slash and a decimal
+ number, encoding the network prefix length.
+
**ifname=**__<interface>__:__<MAC>__::
Assign network device name <interface> (ie "bootnet") to the NIC with
MAC <MAC>.
diff --git a/modules.d/40network/ifup.sh b/modules.d/40network/ifup.sh
index 2edcfe6..b33981b 100755
--- a/modules.d/40network/ifup.sh
+++ b/modules.d/40network/ifup.sh
@@ -264,18 +264,15 @@ if [ "$netif" = "$vlanname" ] && [ ! -e /tmp/net.$vlanname.up ]; then
ip link set "$vlanname" up
fi
-# setup nameserver
-namesrv=$(getargs nameserver)
-if [ -n "$namesrv" ] ; then
- for s in $namesrv; do
- echo nameserver $s
- done
-fi >> /tmp/net.$netif.resolv.conf
-
# No ip lines default to dhcp
ip=$(getarg ip)
if [ -z "$ip" ]; then
+ namesrv=$(getargs nameserver)
+ for s in $namesrv; do
+ echo nameserver $s >> /tmp/net.$netif.resolv.conf
+ done
+
if [ "$netroot" = "dhcp6" ]; then
do_dhcp -6
else
@@ -307,8 +304,14 @@ for p in $(getargs ip=); do
[ "$use_bridge" != 'true' ] && \
[ "$use_vlan" != 'true' ] && continue
+ # setup nameserver
+ namesrv="$dns1 $dns2 $(getargs nameserver)"
+ for s in $namesrv; do
+ echo nameserver $s >> /tmp/net.$netif.resolv.conf
+ done
+
# Store config for later use
- for i in ip srv gw mask hostname macaddr; do
+ for i in ip srv gw mask hostname macaddr dns1 dns2; do
eval '[ "$'$i'" ] && echo '$i'="$'$i'"'
done > /tmp/net.$netif.override

View File

@ -1,21 +0,0 @@
From ab2676d29144097239c189b1a6d938e0420eb580 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Wed, 9 Oct 2013 08:20:39 +0200
Subject: [PATCH] base/init.sh: also mkdir /run/lock
---
modules.d/99base/init.sh | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules.d/99base/init.sh b/modules.d/99base/init.sh
index ae73fd2..3ba440a 100755
--- a/modules.d/99base/init.sh
+++ b/modules.d/99base/init.sh
@@ -90,6 +90,7 @@ trap "action_on_fail Signal caught!" 0
[ -d /run/initramfs ] || mkdir -p -m 0755 /run/initramfs
[ -d /run/log ] || mkdir -p -m 0755 /run/log
+[ -d /run/lock ] || mkdir -p -m 0755 /run/lock
export UDEVVERSION=$(udevadm --version)
if [ $UDEVVERSION -gt 166 ]; then

View File

@ -0,0 +1,43 @@
From c8608373039e66768d34bcf8d43da48d68c5be2a Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 31 Jan 2014 15:33:05 +0100
Subject: [PATCH] base/rdsosreport.sh: add dracut version to rdsosreport
---
modules.d/99base/rdsosreport.sh | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/modules.d/99base/rdsosreport.sh b/modules.d/99base/rdsosreport.sh
index 5e11166..3e2ac87 100755
--- a/modules.d/99base/rdsosreport.sh
+++ b/modules.d/99base/rdsosreport.sh
@@ -8,13 +8,7 @@ exec >/run/initramfs/rdsosreport.txt 2>&1
set -x
-cat /proc/self/mountinfo
-cat /proc/mounts
-
-blkid
-blkid -o udev
-
-ls -l /dev/disk/by*
+cat /lib/dracut/dracut-*
cat /proc/cmdline
@@ -26,6 +20,14 @@ for _i in /etc/cmdline.d/*.conf; do
cat $_i
done
+cat /proc/self/mountinfo
+cat /proc/mounts
+
+blkid
+blkid -o udev
+
+ls -l /dev/disk/by*
+
for _i in /etc/conf.d/*.conf; do
[ -f "$_i" ] || break
echo $_i

View File

@ -1,28 +0,0 @@
From cfdec163f9dfd5e083f2c8a728c476381faa8baa Mon Sep 17 00:00:00 2001
From: Alexander Tsoy <alexander@tsoy.me>
Date: Wed, 9 Oct 2013 06:39:46 +0400
Subject: [PATCH] resume: fix swap detection in hostonly
Check for other possible fs types. This fixes swap detection when using
TuxOnIce kernel.
Note that parse-resume.sh generate udev rules with support for
ID_FS_TYPE=suspend, but we do not include it here, because it is
libvolume_id thing and host_fs_types is populated using blkid.
---
modules.d/95resume/module-setup.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules.d/95resume/module-setup.sh b/modules.d/95resume/module-setup.sh
index b6d2c48..8b37616 100755
--- a/modules.d/95resume/module-setup.sh
+++ b/modules.d/95resume/module-setup.sh
@@ -7,7 +7,7 @@ check() {
# No point trying to support resume, if no swap partition exist
[[ $hostonly ]] || [[ $mount_needs ]] && {
for fs in "${host_fs_types[@]}"; do
- [[ $fs = swap ]] && return 0
+ [[ $fs =~ ^(swap|swsuspend|swsupend)$ ]] && return 0
done
return 255
}

View File

@ -0,0 +1,297 @@
From f52759131bd8d0c118106de9c1f0ddb68bf16521 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 4 Feb 2014 12:01:11 +0100
Subject: [PATCH] test: include the same Makefile.testdir
---
test/TEST-01-BASIC/Makefile | 11 +----------
test/TEST-02-SYSTEMD/Makefile | 11 +----------
test/TEST-03-USR-MOUNT/Makefile | 11 +----------
test/TEST-04-FULL-SYSTEMD/Makefile | 11 +----------
test/TEST-10-RAID/Makefile | 11 +----------
test/TEST-11-LVM/Makefile | 11 +----------
test/TEST-12-RAID-DEG/Makefile | 11 +----------
test/TEST-13-ENC-RAID-LVM/Makefile | 11 +----------
test/TEST-14-IMSM/Makefile | 11 +----------
test/TEST-15-BTRFSRAID/Makefile | 11 +----------
test/TEST-16-DMSQUASH/Makefile | 11 +----------
test/TEST-17-LVM-THIN/Makefile | 11 +----------
test/TEST-20-NFS/Makefile | 11 +----------
test/TEST-30-ISCSI/Makefile | 11 +----------
test/TEST-40-NBD/Makefile | 11 +----------
test/TEST-50-MULTINIC/Makefile | 11 +----------
test/TEST-99-RPM/Makefile | 11 +----------
17 files changed, 17 insertions(+), 170 deletions(-)
diff --git a/test/TEST-01-BASIC/Makefile b/test/TEST-01-BASIC/Makefile
index aad2705..2dcab81 100644
--- a/test/TEST-01-BASIC/Makefile
+++ b/test/TEST-01-BASIC/Makefile
@@ -1,10 +1 @@
-all:
- @$(MAKE) -s --no-print-directory -C ../.. all
- @V=$(V) basedir=../.. testdir=../ ./test.sh --all
-setup:
- @$(MAKE) --no-print-directory -C ../.. all
- @basedir=../.. testdir=../ ./test.sh --setup
-clean:
- @basedir=../.. testdir=../ ./test.sh --clean
-run:
- @basedir=../.. testdir=../ ./test.sh --run
+-include ../Makefile.testdir
diff --git a/test/TEST-02-SYSTEMD/Makefile b/test/TEST-02-SYSTEMD/Makefile
index aad2705..2dcab81 100644
--- a/test/TEST-02-SYSTEMD/Makefile
+++ b/test/TEST-02-SYSTEMD/Makefile
@@ -1,10 +1 @@
-all:
- @$(MAKE) -s --no-print-directory -C ../.. all
- @V=$(V) basedir=../.. testdir=../ ./test.sh --all
-setup:
- @$(MAKE) --no-print-directory -C ../.. all
- @basedir=../.. testdir=../ ./test.sh --setup
-clean:
- @basedir=../.. testdir=../ ./test.sh --clean
-run:
- @basedir=../.. testdir=../ ./test.sh --run
+-include ../Makefile.testdir
diff --git a/test/TEST-03-USR-MOUNT/Makefile b/test/TEST-03-USR-MOUNT/Makefile
index aad2705..2dcab81 100644
--- a/test/TEST-03-USR-MOUNT/Makefile
+++ b/test/TEST-03-USR-MOUNT/Makefile
@@ -1,10 +1 @@
-all:
- @$(MAKE) -s --no-print-directory -C ../.. all
- @V=$(V) basedir=../.. testdir=../ ./test.sh --all
-setup:
- @$(MAKE) --no-print-directory -C ../.. all
- @basedir=../.. testdir=../ ./test.sh --setup
-clean:
- @basedir=../.. testdir=../ ./test.sh --clean
-run:
- @basedir=../.. testdir=../ ./test.sh --run
+-include ../Makefile.testdir
diff --git a/test/TEST-04-FULL-SYSTEMD/Makefile b/test/TEST-04-FULL-SYSTEMD/Makefile
index aad2705..2dcab81 100644
--- a/test/TEST-04-FULL-SYSTEMD/Makefile
+++ b/test/TEST-04-FULL-SYSTEMD/Makefile
@@ -1,10 +1 @@
-all:
- @$(MAKE) -s --no-print-directory -C ../.. all
- @V=$(V) basedir=../.. testdir=../ ./test.sh --all
-setup:
- @$(MAKE) --no-print-directory -C ../.. all
- @basedir=../.. testdir=../ ./test.sh --setup
-clean:
- @basedir=../.. testdir=../ ./test.sh --clean
-run:
- @basedir=../.. testdir=../ ./test.sh --run
+-include ../Makefile.testdir
diff --git a/test/TEST-10-RAID/Makefile b/test/TEST-10-RAID/Makefile
index aad2705..2dcab81 100644
--- a/test/TEST-10-RAID/Makefile
+++ b/test/TEST-10-RAID/Makefile
@@ -1,10 +1 @@
-all:
- @$(MAKE) -s --no-print-directory -C ../.. all
- @V=$(V) basedir=../.. testdir=../ ./test.sh --all
-setup:
- @$(MAKE) --no-print-directory -C ../.. all
- @basedir=../.. testdir=../ ./test.sh --setup
-clean:
- @basedir=../.. testdir=../ ./test.sh --clean
-run:
- @basedir=../.. testdir=../ ./test.sh --run
+-include ../Makefile.testdir
diff --git a/test/TEST-11-LVM/Makefile b/test/TEST-11-LVM/Makefile
index aad2705..2dcab81 100644
--- a/test/TEST-11-LVM/Makefile
+++ b/test/TEST-11-LVM/Makefile
@@ -1,10 +1 @@
-all:
- @$(MAKE) -s --no-print-directory -C ../.. all
- @V=$(V) basedir=../.. testdir=../ ./test.sh --all
-setup:
- @$(MAKE) --no-print-directory -C ../.. all
- @basedir=../.. testdir=../ ./test.sh --setup
-clean:
- @basedir=../.. testdir=../ ./test.sh --clean
-run:
- @basedir=../.. testdir=../ ./test.sh --run
+-include ../Makefile.testdir
diff --git a/test/TEST-12-RAID-DEG/Makefile b/test/TEST-12-RAID-DEG/Makefile
index aad2705..2dcab81 100644
--- a/test/TEST-12-RAID-DEG/Makefile
+++ b/test/TEST-12-RAID-DEG/Makefile
@@ -1,10 +1 @@
-all:
- @$(MAKE) -s --no-print-directory -C ../.. all
- @V=$(V) basedir=../.. testdir=../ ./test.sh --all
-setup:
- @$(MAKE) --no-print-directory -C ../.. all
- @basedir=../.. testdir=../ ./test.sh --setup
-clean:
- @basedir=../.. testdir=../ ./test.sh --clean
-run:
- @basedir=../.. testdir=../ ./test.sh --run
+-include ../Makefile.testdir
diff --git a/test/TEST-13-ENC-RAID-LVM/Makefile b/test/TEST-13-ENC-RAID-LVM/Makefile
index aad2705..2dcab81 100644
--- a/test/TEST-13-ENC-RAID-LVM/Makefile
+++ b/test/TEST-13-ENC-RAID-LVM/Makefile
@@ -1,10 +1 @@
-all:
- @$(MAKE) -s --no-print-directory -C ../.. all
- @V=$(V) basedir=../.. testdir=../ ./test.sh --all
-setup:
- @$(MAKE) --no-print-directory -C ../.. all
- @basedir=../.. testdir=../ ./test.sh --setup
-clean:
- @basedir=../.. testdir=../ ./test.sh --clean
-run:
- @basedir=../.. testdir=../ ./test.sh --run
+-include ../Makefile.testdir
diff --git a/test/TEST-14-IMSM/Makefile b/test/TEST-14-IMSM/Makefile
index bc0ddb6..2dcab81 100644
--- a/test/TEST-14-IMSM/Makefile
+++ b/test/TEST-14-IMSM/Makefile
@@ -1,10 +1 @@
-all:
- @make -s --no-print-directory -C ../.. all
- @basedir=../.. testdir=../ ./test.sh --all
-setup:
- @make --no-print-directory -C ../.. all
- @basedir=../.. testdir=../ ./test.sh --setup
-clean:
- @basedir=../.. testdir=../ ./test.sh --clean
-run:
- @basedir=../.. testdir=../ ./test.sh --run
+-include ../Makefile.testdir
diff --git a/test/TEST-15-BTRFSRAID/Makefile b/test/TEST-15-BTRFSRAID/Makefile
index aad2705..2dcab81 100644
--- a/test/TEST-15-BTRFSRAID/Makefile
+++ b/test/TEST-15-BTRFSRAID/Makefile
@@ -1,10 +1 @@
-all:
- @$(MAKE) -s --no-print-directory -C ../.. all
- @V=$(V) basedir=../.. testdir=../ ./test.sh --all
-setup:
- @$(MAKE) --no-print-directory -C ../.. all
- @basedir=../.. testdir=../ ./test.sh --setup
-clean:
- @basedir=../.. testdir=../ ./test.sh --clean
-run:
- @basedir=../.. testdir=../ ./test.sh --run
+-include ../Makefile.testdir
diff --git a/test/TEST-16-DMSQUASH/Makefile b/test/TEST-16-DMSQUASH/Makefile
index aad2705..2dcab81 100644
--- a/test/TEST-16-DMSQUASH/Makefile
+++ b/test/TEST-16-DMSQUASH/Makefile
@@ -1,10 +1 @@
-all:
- @$(MAKE) -s --no-print-directory -C ../.. all
- @V=$(V) basedir=../.. testdir=../ ./test.sh --all
-setup:
- @$(MAKE) --no-print-directory -C ../.. all
- @basedir=../.. testdir=../ ./test.sh --setup
-clean:
- @basedir=../.. testdir=../ ./test.sh --clean
-run:
- @basedir=../.. testdir=../ ./test.sh --run
+-include ../Makefile.testdir
diff --git a/test/TEST-17-LVM-THIN/Makefile b/test/TEST-17-LVM-THIN/Makefile
index aad2705..2dcab81 100644
--- a/test/TEST-17-LVM-THIN/Makefile
+++ b/test/TEST-17-LVM-THIN/Makefile
@@ -1,10 +1 @@
-all:
- @$(MAKE) -s --no-print-directory -C ../.. all
- @V=$(V) basedir=../.. testdir=../ ./test.sh --all
-setup:
- @$(MAKE) --no-print-directory -C ../.. all
- @basedir=../.. testdir=../ ./test.sh --setup
-clean:
- @basedir=../.. testdir=../ ./test.sh --clean
-run:
- @basedir=../.. testdir=../ ./test.sh --run
+-include ../Makefile.testdir
diff --git a/test/TEST-20-NFS/Makefile b/test/TEST-20-NFS/Makefile
index aad2705..2dcab81 100644
--- a/test/TEST-20-NFS/Makefile
+++ b/test/TEST-20-NFS/Makefile
@@ -1,10 +1 @@
-all:
- @$(MAKE) -s --no-print-directory -C ../.. all
- @V=$(V) basedir=../.. testdir=../ ./test.sh --all
-setup:
- @$(MAKE) --no-print-directory -C ../.. all
- @basedir=../.. testdir=../ ./test.sh --setup
-clean:
- @basedir=../.. testdir=../ ./test.sh --clean
-run:
- @basedir=../.. testdir=../ ./test.sh --run
+-include ../Makefile.testdir
diff --git a/test/TEST-30-ISCSI/Makefile b/test/TEST-30-ISCSI/Makefile
index aad2705..2dcab81 100644
--- a/test/TEST-30-ISCSI/Makefile
+++ b/test/TEST-30-ISCSI/Makefile
@@ -1,10 +1 @@
-all:
- @$(MAKE) -s --no-print-directory -C ../.. all
- @V=$(V) basedir=../.. testdir=../ ./test.sh --all
-setup:
- @$(MAKE) --no-print-directory -C ../.. all
- @basedir=../.. testdir=../ ./test.sh --setup
-clean:
- @basedir=../.. testdir=../ ./test.sh --clean
-run:
- @basedir=../.. testdir=../ ./test.sh --run
+-include ../Makefile.testdir
diff --git a/test/TEST-40-NBD/Makefile b/test/TEST-40-NBD/Makefile
index aad2705..2dcab81 100644
--- a/test/TEST-40-NBD/Makefile
+++ b/test/TEST-40-NBD/Makefile
@@ -1,10 +1 @@
-all:
- @$(MAKE) -s --no-print-directory -C ../.. all
- @V=$(V) basedir=../.. testdir=../ ./test.sh --all
-setup:
- @$(MAKE) --no-print-directory -C ../.. all
- @basedir=../.. testdir=../ ./test.sh --setup
-clean:
- @basedir=../.. testdir=../ ./test.sh --clean
-run:
- @basedir=../.. testdir=../ ./test.sh --run
+-include ../Makefile.testdir
diff --git a/test/TEST-50-MULTINIC/Makefile b/test/TEST-50-MULTINIC/Makefile
index aad2705..2dcab81 100644
--- a/test/TEST-50-MULTINIC/Makefile
+++ b/test/TEST-50-MULTINIC/Makefile
@@ -1,10 +1 @@
-all:
- @$(MAKE) -s --no-print-directory -C ../.. all
- @V=$(V) basedir=../.. testdir=../ ./test.sh --all
-setup:
- @$(MAKE) --no-print-directory -C ../.. all
- @basedir=../.. testdir=../ ./test.sh --setup
-clean:
- @basedir=../.. testdir=../ ./test.sh --clean
-run:
- @basedir=../.. testdir=../ ./test.sh --run
+-include ../Makefile.testdir
diff --git a/test/TEST-99-RPM/Makefile b/test/TEST-99-RPM/Makefile
index aad2705..2dcab81 100644
--- a/test/TEST-99-RPM/Makefile
+++ b/test/TEST-99-RPM/Makefile
@@ -1,10 +1 @@
-all:
- @$(MAKE) -s --no-print-directory -C ../.. all
- @V=$(V) basedir=../.. testdir=../ ./test.sh --all
-setup:
- @$(MAKE) --no-print-directory -C ../.. all
- @basedir=../.. testdir=../ ./test.sh --setup
-clean:
- @basedir=../.. testdir=../ ./test.sh --clean
-run:
- @basedir=../.. testdir=../ ./test.sh --run
+-include ../Makefile.testdir

View File

@ -0,0 +1,26 @@
From d61a423f7cb326848e952d9e13a8cbf25ca06631 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 4 Feb 2014 12:02:05 +0100
Subject: [PATCH] network/ifup: do not ifup an already setup network interface
---
modules.d/40network/ifup.sh | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/modules.d/40network/ifup.sh b/modules.d/40network/ifup.sh
index b33981b..3a03d05 100755
--- a/modules.d/40network/ifup.sh
+++ b/modules.d/40network/ifup.sh
@@ -80,7 +80,11 @@ fi
# in netroot case we prefer netroot to bringup $netif automaticlly
[ -n "$2" -a "$2" = "-m" ] && [ -z "$netroot" ] && manualup="$2"
[ -z "$netroot" ] && [ -z "$manualup" ] && exit 0
-[ -n "$manualup" ] && >/tmp/net.$netif.manualup
+if [ -n "$manualup" ]; then
+ >/tmp/net.$netif.manualup
+else
+ [ -f /tmp/net.${iface}.did-setup ] && exit 0
+fi
# Run dhclient
do_dhcp() {

View File

@ -1,88 +0,0 @@
From 1aedbb788696f4ead7fa338edab4b3dcbbe3c8f0 Mon Sep 17 00:00:00 2001
From: Alexander Tsoy <alexander@tsoy.me>
Date: Wed, 9 Oct 2013 07:02:56 +0400
Subject: [PATCH] resume: remove resume-genrules.sh
parse-resume.sh already contains all the code from resume-genrules.sh.
Also parse-resume.sh is executed before resume-genrules.sh, so there is
no point to keep the latter.
This fixes the following error messages:
dracut-initqueue: ln: failed to create symbolic link '/dev/resume': File exists
dracut-initqueue: rm: cannot remove '/lib/dracut/hooks/initqueue/settled/resume.sh': No such file or directory
dracut-initqueue: rm: cannot remove '/lib/dracut/hooks/initqueue/timeout/resume.sh': No such file or directory
---
modules.d/95resume/module-setup.sh | 1 -
modules.d/95resume/resume-genrules.sh | 51 -----------------------------------
2 files changed, 52 deletions(-)
delete mode 100755 modules.d/95resume/resume-genrules.sh
diff --git a/modules.d/95resume/module-setup.sh b/modules.d/95resume/module-setup.sh
index 8b37616..a172c27 100755
--- a/modules.d/95resume/module-setup.sh
+++ b/modules.d/95resume/module-setup.sh
@@ -32,7 +32,6 @@ install() {
inst_hook cmdline 10 "$moddir/parse-resume.sh"
else
inst_script "$moddir/parse-resume.sh" /lib/dracut/parse-resume.sh
- inst_hook pre-udev 30 "$moddir/resume-genrules.sh"
fi
inst_script "$moddir/resume.sh" /lib/dracut/resume.sh
diff --git a/modules.d/95resume/resume-genrules.sh b/modules.d/95resume/resume-genrules.sh
deleted file mode 100755
index c542c71..0000000
--- a/modules.d/95resume/resume-genrules.sh
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/bin/sh
-# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
-# ex: ts=8 sw=4 sts=4 et filetype=sh
-
-case "$splash" in
- quiet )
- a_splash="-P splash=y"
- ;;
- * )
- a_splash="-P splash=n"
- ;;
-esac
-
-if [ -n "$resume" ]; then
- {
- printf "KERNEL==\"%s\", ACTION==\"add|change\", SYMLINK+=\"/dev/resume\"\n" \
- ${resume#/dev/};
- printf "SYMLINK==\"%s\", ACTION==\"add|change\", SYMLINK+=\"/dev/resume\"\n" \
- ${resume#/dev/};
- } >> /etc/udev/rules.d/99-resume-link.rules
-
- {
- if [ -x /usr/sbin/resume ]; then
- printf "KERNEL==\"%s\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\", RUN+=\"/sbin/initqueue --finished --unique --name 00resume /usr/sbin/resume %s \'%s\'\"\n" \
- ${resume#/dev/} "$a_splash" "$resume";
- printf "SYMLINK==\"%s\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\", RUN+=\"/sbin/initqueue --finished --unique --name 00resume /usr/sbin/resume %s \'%s\'\"\n" \
- ${resume#/dev/} "$a_splash" "$resume";
- fi
- printf "KERNEL==\"%s\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\", RUN+=\"/sbin/initqueue --finished --unique --name 00resume echo %%M:%%m > /sys/power/resume\"\n" \
- ${resume#/dev/};
- printf "SYMLINK==\"%s\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\", RUN+=\"/sbin/initqueue --finished --unique --name 00resume echo %%M:%%m > /sys/power/resume\"\n" \
- ${resume#/dev/};
- } >> /etc/udev/rules.d/99-resume.rules
-
- printf '[ -e "%s" ] && { ln -s "%s" /dev/resume; rm "$job" "%s/initqueue/timeout/resume.sh"; }\n' \
- "$resume" "$resume" "$hookdir" >> $hookdir/initqueue/settled/resume.sh
-
- printf 'warn "Cancelling resume operation. Device not found."; cancel_wait_for_dev /dev/resume; rm "$job" "%s/initqueue/settled/resume.sh";' \
- "$hookdir" >> $hookdir/initqueue/timeout/resume.sh
-
- wait_for_dev "/dev/resume"
-
-elif ! getarg noresume; then
- {
- if [ -x /usr/sbin/resume ]; then
- printf "SUBSYSTEM==\"block\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\", RUN+=\"/sbin/initqueue --finished --unique --name 00resume /usr/sbin/resume %s \$tempnode\"\n" "$a_splash"
- fi
- echo "SUBSYSTEM==\"block\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\"," \
- " RUN+=\"/sbin/initqueue --finished --unique --name 00resume echo %M:%m > /sys/power/resume\"";
- } >> /etc/udev/rules.d/99-resume.rules
-fi

View File

@ -1,105 +0,0 @@
From 871c8e40d1c7bb1bace48ce19ea1b956f7065458 Mon Sep 17 00:00:00 2001
From: P J P <ppandit@redhat.com>
Date: Fri, 11 Oct 2013 19:26:51 +0530
Subject: [PATCH] Add lzo, lz4 compression and read INITRD_COMPRESS
This patch adds support for lzop(1) & lz4(1) compression
algorithms to compress iniramfs image file. Both are supported
by the Linux kernel.
Linux kernel exports user's choice of initramfs compression
algorithm as a shell environment variable: INITRD_COMPRESS.
This patch adds support to read this variable and duly compress
the initramfs image file.
Environment variable INITRD_COMPRESS has less precedence than the
command line options --gzip, etc. Ie. command line options could
override the compression algorithm defined by $INITRD_COMPRESS.
Signed-off-by: P J P <ppandit@redhat.com>
[Edited-by: Harald Hoyer: add documentation about lzo and lz4]
---
dracut.8.asc | 16 ++++++++++++++++
dracut.sh | 13 +++++++++++++
2 files changed, 29 insertions(+)
diff --git a/dracut.8.asc b/dracut.8.asc
index 584514c..2ea6744 100644
--- a/dracut.8.asc
+++ b/dracut.8.asc
@@ -365,6 +365,22 @@ Make sure your kernel has xz decompression support compiled in, otherwise you
will not be able to boot. Equivalent to "lzma --compress=xz --check=crc32 --lzma2=dict=1MiB"
====
+**--lzo**::
+ Compress the generated initramfs using lzop.
+[WARNING]
+====
+Make sure your kernel has lzo decompression support compiled in, otherwise you
+will not be able to boot.
+====
+
+**--lz4**::
+ Compress the generated initramfs using lz4.
+[WARNING]
+====
+Make sure your kernel has lz4 decompression support compiled in, otherwise you
+will not be able to boot.
+====
+
**--compress** _<compressor>_::
Compress the generated initramfs using the passed compression program. If
you pass it just the name of a compression program, it will call that
diff --git a/dracut.sh b/dracut.sh
index d9533dd..173a259 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -165,6 +165,12 @@ Creates initial ramdisk images for preloading modules
--xz Compress the generated initramfs using xz.
Make sure that your kernel has xz support compiled
in, otherwise you will not be able to boot.
+ --lzo Compress the generated initramfs using lzop.
+ Make sure that your kernel has lzo support compiled
+ in, otherwise you will not be able to boot.
+ --lz4 Compress the generated initramfs using lz4.
+ Make sure that your kernel has lz4 support compiled
+ in, otherwise you will not be able to boot.
--compress [COMPRESSION] Compress the generated initramfs with the
passed compression program. Make sure your kernel
knows how to decompress the generated initramfs,
@@ -342,6 +348,8 @@ TEMP=$(unset POSIXLY_CORRECT; getopt \
--long bzip2 \
--long lzma \
--long xz \
+ --long lzo \
+ --long lz4 \
--long no-compress \
--long gzip \
--long list-modules \
@@ -430,6 +438,8 @@ while :; do
--bzip2) compress_l="bzip2";;
--lzma) compress_l="lzma";;
--xz) compress_l="xz";;
+ --lzo) compress_l="lzo";;
+ --lz4) compress_l="lz4";;
--no-compress) _no_compress_l="cat";;
--gzip) compress_l="gzip";;
--list-modules) do_list="yes";;
@@ -673,6 +683,7 @@ stdloglvl=$((stdloglvl + verbosity_mod_l))
[[ $fw_dir ]] || fw_dir="/lib/firmware/updates /lib/firmware"
[[ $tmpdir_l ]] && tmpdir="$tmpdir_l"
[[ $tmpdir ]] || tmpdir=/var/tmp
+[[ $INITRD_COMPRESS ]] && compress=$INITRD_COMPRESS
[[ $compress_l ]] && compress=$compress_l
[[ $show_modules_l ]] && show_modules=$show_modules_l
[[ $nofscks_l ]] && nofscks="yes"
@@ -689,6 +700,8 @@ case $compress in
lzma) compress="lzma -9";;
xz) compress="xz --check=crc32 --lzma2=dict=1MiB";;
gzip) compress="gzip -9"; command -v pigz > /dev/null 2>&1 && compress="pigz -9";;
+ lzo) compress="lzop -9";;
+ lz4) compress="lz4 -9";;
esac
if [[ $_no_compress_l = "cat" ]]; then
compress="cat"

View File

@ -0,0 +1,23 @@
From c84618d7ac5cf87c6efaaca00e52f69dcff954e1 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 4 Feb 2014 12:02:34 +0100
Subject: [PATCH] network/ifup: do not run dhclient twice on the same interface
---
modules.d/40network/ifup.sh | 3 +++
1 file changed, 3 insertions(+)
diff --git a/modules.d/40network/ifup.sh b/modules.d/40network/ifup.sh
index 3a03d05..33ec81d 100755
--- a/modules.d/40network/ifup.sh
+++ b/modules.d/40network/ifup.sh
@@ -91,6 +91,9 @@ do_dhcp() {
# dhclient-script will mark the netif up and generate the online
# event for nfsroot
# XXX add -V vendor class and option parsing per kernel
+
+ [ -e /tmp/dhclient.$netif.pid ] && return 0
+
if ! iface_has_link $netif; then
echo "No carrier detected"
return 1

View File

@ -1,37 +0,0 @@
From aabea6f7b9c057571d1869c6974d4c4f42530e7e Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Wed, 16 Oct 2013 11:30:08 +0200
Subject: [PATCH] lvm: fix thin recognition
The global var setting was happening in a pipe and did not have an
effect.
Use <<<$() instead.
< <() cannot be used, because dracut is called in chroot's environments,
where /dev/fd does not point to /proc/self/fd, but bash wants
/dev/fd/<num> for this construct.
---
modules.d/90lvm/module-setup.sh | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/modules.d/90lvm/module-setup.sh b/modules.d/90lvm/module-setup.sh
index f8b598d..cbdf4a2 100755
--- a/modules.d/90lvm/module-setup.sh
+++ b/modules.d/90lvm/module-setup.sh
@@ -57,12 +57,13 @@ install() {
inst lvm
if [[ $hostonly ]]; then
- get_host_lvs | while read line; do
+ while read line; do
+ [[ -n "$line" ]] || continue
printf "%s" " rd.lvm.lv=$line"
if ! [[ $_needthin ]]; then
[[ "$(lvs --noheadings -o segtype ${line%%/*} 2>/dev/null)" == *thin* ]] && _needthin=1
fi
- done >> "${initdir}/etc/cmdline.d/90lvm.conf"
+ done <<<$(get_host_lvs) >> "${initdir}/etc/cmdline.d/90lvm.conf"
echo >> "${initdir}/etc/cmdline.d/90lvm.conf"
else
_needthin=1

View File

@ -0,0 +1,23 @@
From 81aed4f28eca81b151e2f0ee307a2a487fb2bfcc Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Wed, 5 Feb 2014 13:06:29 +0100
Subject: [PATCH] nfs/nfsroot: symlink /dev/null to /dev/nfs, as a marker for
root=/dev/nfs
---
modules.d/95nfs/nfsroot.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules.d/95nfs/nfsroot.sh b/modules.d/95nfs/nfsroot.sh
index f04159e..d0719ef 100755
--- a/modules.d/95nfs/nfsroot.sh
+++ b/modules.d/95nfs/nfsroot.sh
@@ -16,7 +16,7 @@ NEWROOT="$3"
nfs_to_var $root $netif
[ -z "$server" ] && die "Required parameter 'server' is missing"
-mount_nfs $root $NEWROOT $netif && { [ -e /dev/root ] || ln -s null /dev/root ; }
+mount_nfs $root $NEWROOT $netif && { [ -e /dev/root ] || ln -s null /dev/root ; [ -e /dev/nfs ] || ln -s null /dev/nfs; }
[ -f $NEWROOT/etc/fstab ] && cat $NEWROOT/etc/fstab > /dev/null

View File

@ -1,22 +0,0 @@
From 68b736b50fbd6bb952d9499296ec70a218e1f5da Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Wed, 16 Oct 2013 11:31:54 +0200
Subject: [PATCH] dracut.sh: also mkdir /run/lock, which is copied to
---
dracut.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dracut.sh b/dracut.sh
index 173a259..a6e3df3 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -1094,7 +1094,7 @@ if [[ $kernel_only != yes ]]; then
fi
done
- for d in dev proc sys sysroot root run run/lock run/initramfs; do
+ for d in dev proc sys sysroot root run run/log run/lock run/initramfs; do
if [ -L "/$d" ]; then
inst_symlink "/$d"
else

View File

@ -0,0 +1,37 @@
From 751c7de98af289970e4f827245647080cf2595b3 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Wed, 5 Feb 2014 13:08:54 +0100
Subject: [PATCH] systemd/dracut-pre-pivot: run for /dev/{nfs,root} and cleanup
/dev/nfs
dracut-pre-pivot was not cleaning up /dev/nfs and did not run to clean
up /dev/root.
---
modules.d/98systemd/dracut-pre-pivot.service | 2 ++
modules.d/98systemd/dracut-pre-pivot.sh | 1 +
2 files changed, 3 insertions(+)
diff --git a/modules.d/98systemd/dracut-pre-pivot.service b/modules.d/98systemd/dracut-pre-pivot.service
index dd4e49b..6db1f2c 100644
--- a/modules.d/98systemd/dracut-pre-pivot.service
+++ b/modules.d/98systemd/dracut-pre-pivot.service
@@ -19,6 +19,8 @@ ConditionDirectoryNotEmpty=|/lib/dracut/hooks/cleanup
ConditionKernelCommandLine=|rd.break=pre-pivot
ConditionKernelCommandLine=|rd.break=cleanup
ConditionKernelCommandLine=|rd.break
+ConditionPathExists=|/dev/root
+ConditionPathExists=|/dev/nfs
[Service]
Environment=DRACUT_SYSTEMD=1
diff --git a/modules.d/98systemd/dracut-pre-pivot.sh b/modules.d/98systemd/dracut-pre-pivot.sh
index 8c7554e..e62a1ce 100755
--- a/modules.d/98systemd/dracut-pre-pivot.sh
+++ b/modules.d/98systemd/dracut-pre-pivot.sh
@@ -24,5 +24,6 @@ getarg rd.break -d rdbreak && emergency_shell -n switch_root "Break before switc
# remove helper symlink
[ -h /dev/root ] && rm -f -- /dev/root
+[ -h /dev/nfs ] && rm -f -- /dev/nfs
exit 0

View File

@ -0,0 +1,102 @@
From 352d557d4d94042e321b4acc81eeab8691e19f42 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Wed, 5 Feb 2014 13:12:29 +0100
Subject: [PATCH] Do not reload systemd with wait_for_dev
---
modules.d/90dmsquash-live/dmsquash-live-genrules.sh | 2 +-
modules.d/90dmsquash-live/parse-dmsquash-live.sh | 2 +-
modules.d/90livenet/parse-livenet.sh | 2 +-
modules.d/90lvm/parse-lvm.sh | 2 +-
modules.d/95iscsi/iscsiroot.sh | 2 +-
modules.d/95nbd/nbdroot.sh | 2 +-
modules.d/95nbd/parse-nbdroot.sh | 2 +-
7 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/modules.d/90dmsquash-live/dmsquash-live-genrules.sh b/modules.d/90dmsquash-live/dmsquash-live-genrules.sh
index b27fccc..0f51ed4 100755
--- a/modules.d/90dmsquash-live/dmsquash-live-genrules.sh
+++ b/modules.d/90dmsquash-live/dmsquash-live-genrules.sh
@@ -9,7 +9,7 @@ case "$root" in
printf 'SYMLINK=="%s", RUN+="/sbin/initqueue --settled --onetime --unique /sbin/dmsquash-live-root $env{DEVNAME}"\n' \
${root#live:/dev/}
} >> /etc/udev/rules.d/99-live-squash.rules
- wait_for_dev "${root#live:}"
+ wait_for_dev -n "${root#live:}"
;;
live:*)
if [ -f "${root#live:}" ]; then
diff --git a/modules.d/90dmsquash-live/parse-dmsquash-live.sh b/modules.d/90dmsquash-live/parse-dmsquash-live.sh
index a5564e2..6e54dfe 100755
--- a/modules.d/90dmsquash-live/parse-dmsquash-live.sh
+++ b/modules.d/90dmsquash-live/parse-dmsquash-live.sh
@@ -56,4 +56,4 @@ info "root was $liveroot, is now $root"
# make sure that init doesn't complain
[ -z "$root" ] && root="live"
-wait_for_dev /dev/mapper/live-rw
+wait_for_dev -n /dev/mapper/live-rw
diff --git a/modules.d/90livenet/parse-livenet.sh b/modules.d/90livenet/parse-livenet.sh
index 6c847ba..a6b2842 100755
--- a/modules.d/90livenet/parse-livenet.sh
+++ b/modules.d/90livenet/parse-livenet.sh
@@ -27,7 +27,7 @@ if get_url_handler "$liveurl" >/dev/null; then
netroot="livenet:$liveurl"
root="livenet" # quiet complaints from init
rootok=1
- wait_for_dev /dev/root
+ wait_for_dev -n /dev/root
else
info "livenet: no url handler for $liveurl"
fi
diff --git a/modules.d/90lvm/parse-lvm.sh b/modules.d/90lvm/parse-lvm.sh
index 74e1d43..d69cb45 100755
--- a/modules.d/90lvm/parse-lvm.sh
+++ b/modules.d/90lvm/parse-lvm.sh
@@ -13,7 +13,7 @@ if ! getargbool 1 rd.lvm -d -n rd_NO_LVM \
rm -f -- /etc/udev/rules.d/64-lvm*.rules
else
for dev in $LV_DEVS; do
- wait_for_dev "/dev/$dev"
+ wait_for_dev -n "/dev/$dev"
done
fi
diff --git a/modules.d/95iscsi/iscsiroot.sh b/modules.d/95iscsi/iscsiroot.sh
index 769124f..c56d54d 100755
--- a/modules.d/95iscsi/iscsiroot.sh
+++ b/modules.d/95iscsi/iscsiroot.sh
@@ -156,7 +156,7 @@ handle_netroot()
printf 'SYMLINK=="disk/by-path/*-iscsi-*-%s", SYMLINK+="root"\n' $iscsi_lun >> /etc/udev/rules.d/99-iscsi-root.rules
udevadm control --reload
write_fs_tab /dev/root
- wait_for_dev /dev/root
+ wait_for_dev -n /dev/root
# install mount script
[ -z "$DRACUT_SYSTEMD" ] && \
diff --git a/modules.d/95nbd/nbdroot.sh b/modules.d/95nbd/nbdroot.sh
index 2e9d917..32f346d 100755
--- a/modules.d/95nbd/nbdroot.sh
+++ b/modules.d/95nbd/nbdroot.sh
@@ -102,7 +102,7 @@ if [ "$root" = "block:/dev/root" -o "$root" = "dhcp" ]; then
udevadm control --reload
type write_fs_tab >/dev/null 2>&1 || . /lib/fs-lib.sh
write_fs_tab /dev/root "$nbdfstype" "$fsopts"
- wait_for_dev /dev/root
+ wait_for_dev -n /dev/root
if [ -z "$DRACUT_SYSTEMD" ]; then
printf '/bin/mount %s\n' \
diff --git a/modules.d/95nbd/parse-nbdroot.sh b/modules.d/95nbd/parse-nbdroot.sh
index 49c44b6..fe5a7fa 100755
--- a/modules.d/95nbd/parse-nbdroot.sh
+++ b/modules.d/95nbd/parse-nbdroot.sh
@@ -61,6 +61,6 @@ rootok=1
# Shut up init error check
if [ -z "$root" ]; then
root=block:/dev/root
- wait_for_dev /dev/root
+ wait_for_dev -n /dev/root
fi

View File

@ -1,22 +0,0 @@
From 8d89fc6bb1b5b1f4c8be0694a1e1200a09ae07d1 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Wed, 16 Oct 2013 11:39:17 +0200
Subject: [PATCH] dracut.sh: no need to make subdirs in run
---
dracut.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dracut.sh b/dracut.sh
index a6e3df3..4613d5b 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -1094,7 +1094,7 @@ if [[ $kernel_only != yes ]]; then
fi
done
- for d in dev proc sys sysroot root run run/log run/lock run/initramfs; do
+ for d in dev proc sys sysroot root run; do
if [ -L "/$d" ]; then
inst_symlink "/$d"
else

View File

@ -1,36 +0,0 @@
From 879546753341a9b2b1ad391a14ebe9fd3f6c27c4 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Wed, 16 Oct 2013 11:39:34 +0200
Subject: [PATCH] network/fcoe: only redirect output to loginit.pipe, if exists
---
modules.d/40network/dhclient-script.sh | 2 +-
modules.d/95fcoe/fcoe-up.sh | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules.d/40network/dhclient-script.sh b/modules.d/40network/dhclient-script.sh
index 07c3d9b..af483ac 100755
--- a/modules.d/40network/dhclient-script.sh
+++ b/modules.d/40network/dhclient-script.sh
@@ -48,7 +48,7 @@ setup_interface() {
PATH=/usr/sbin:/usr/bin:/sbin:/bin
export PS4="dhclient.$interface.$$ + "
-exec >>/run/initramfs/loginit.pipe 2>>/run/initramfs/loginit.pipe
+[ -e /run/initramfs/loginit.pipe ] && exec >>/run/initramfs/loginit.pipe 2>>/run/initramfs/loginit.pipe
type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
type ip_to_var >/dev/null 2>&1 || . /lib/net-lib.sh
diff --git a/modules.d/95fcoe/fcoe-up.sh b/modules.d/95fcoe/fcoe-up.sh
index ecb1593..8cf39ec 100755
--- a/modules.d/95fcoe/fcoe-up.sh
+++ b/modules.d/95fcoe/fcoe-up.sh
@@ -14,7 +14,7 @@ PATH=/usr/sbin:/usr/bin:/sbin:/bin
[ -z "$1" -o -z "$2" ] && exit 1
export PS4="fcoe-up.$1.$$ + "
-exec >>/run/initramfs/loginit.pipe 2>>/run/initramfs/loginit.pipe
+[ -e /run/initramfs/loginit.pipe ] && exec >>/run/initramfs/loginit.pipe 2>>/run/initramfs/loginit.pipe
type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
type ip_to_var >/dev/null 2>&1 || . /lib/net-lib.sh

View File

@ -0,0 +1,31 @@
From 8d21728942b52f1fe258ab63acfa5a0542d8b1fc Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Wed, 5 Feb 2014 13:58:33 +0100
Subject: [PATCH] systemd: add sys-kernel-config.mount
---
modules.d/98systemd/module-setup.sh | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/modules.d/98systemd/module-setup.sh b/modules.d/98systemd/module-setup.sh
index d625ea0..036f1c1 100755
--- a/modules.d/98systemd/module-setup.sh
+++ b/modules.d/98systemd/module-setup.sh
@@ -44,6 +44,7 @@ install() {
$systemdutildir/systemd-modules-load \
$systemdutildir/systemd-vconsole-setup \
$systemdutildir/system-generators/systemd-fstab-generator \
+ \
$systemdsystemunitdir/cryptsetup.target \
$systemdsystemunitdir/emergency.target \
$systemdsystemunitdir/sysinit.target \
@@ -72,6 +73,9 @@ install() {
$systemdsystemunitdir/timers.target \
$systemdsystemunitdir/paths.target \
$systemdsystemunitdir/umount.target \
+ \
+ $systemdsystemunitdir/sys-kernel-config.mount \
+ \
$systemdsystemunitdir/kmod-static-nodes.service \
$systemdsystemunitdir/systemd-tmpfiles-setup-dev.service \
$systemdsystemunitdir/systemd-ask-password-console.path \

View File

@ -0,0 +1,735 @@
From 30e6e809ed8d189cc8374df3c28cfbcab5a299b9 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 6 Feb 2014 16:45:20 +0100
Subject: [PATCH] Factor out all the "type -V" commands
Add new functions require_binaries() and require_any_binary() to be used
in the check() section of module-setup.sh.
These functions print a warning line telling the user, which binary is
missing for the specific dracut module.
This unifies the way of checking for binaries and makes the life of an
initramfs creator easier, if he wants to find out why a specific dracut
module is not included in the initramfs.
---
dracut-functions.sh | 57 ++++++++++++++++++++++++---
modules.d/00bash/module-setup.sh | 2 +-
modules.d/00bootchart/module-setup.sh | 2 +-
modules.d/00dash/module-setup.sh | 2 +-
modules.d/00systemd-bootchart/module-setup.sh | 2 +-
modules.d/02caps/module-setup.sh | 14 ++++---
modules.d/03modsign/module-setup.sh | 2 +-
modules.d/05busybox/module-setup.sh | 2 +-
modules.d/10i18n/module-setup.sh | 4 +-
modules.d/40network/module-setup.sh | 7 +---
modules.d/45url-lib/module-setup.sh | 2 +-
modules.d/50plymouth/module-setup.sh | 2 +-
modules.d/90btrfs/module-setup.sh | 2 +-
modules.d/90crypt/module-setup.sh | 2 +-
modules.d/90dm/module-setup.sh | 2 +-
modules.d/90dmraid/module-setup.sh | 2 +-
modules.d/90lvm/module-setup.sh | 2 +-
modules.d/90mdraid/module-setup.sh | 2 +-
modules.d/90multipath/module-setup.sh | 2 +-
modules.d/91crypt-gpg/module-setup.sh | 2 +-
modules.d/91crypt-loop/module-setup.sh | 20 ++++++----
modules.d/95cifs/module-setup.sh | 2 +-
modules.d/95dasd/module-setup.sh | 2 +-
modules.d/95dasd_mod/module-setup.sh | 1 +
modules.d/95dasd_rules/module-setup.sh | 2 +-
modules.d/95fcoe-uefi/module-setup.sh | 4 +-
modules.d/95fcoe/module-setup.sh | 5 +--
modules.d/95iscsi/module-setup.sh | 2 +-
modules.d/95nbd/module-setup.sh | 2 +-
modules.d/95nfs/module-setup.sh | 4 +-
modules.d/95ssh-client/module-setup.sh | 6 +--
modules.d/95udev-rules/module-setup.sh | 2 +-
modules.d/95zfcp/module-setup.sh | 3 +-
modules.d/95zfcp_rules/module-setup.sh | 2 +-
modules.d/95znet/module-setup.sh | 3 +-
modules.d/97biosdevname/module-setup.sh | 2 +-
modules.d/97masterkey/module-setup.sh | 2 +-
modules.d/98systemd/module-setup.sh | 2 +-
modules.d/99img-lib/module-setup.sh | 4 +-
39 files changed, 113 insertions(+), 71 deletions(-)
diff --git a/dracut-functions.sh b/dracut-functions.sh
index c766ca3..32f264b 100755
--- a/dracut-functions.sh
+++ b/dracut-functions.sh
@@ -35,6 +35,51 @@ fi
# Generic substring function. If $2 is in $1, return 0.
strstr() { [[ $1 = *$2* ]]; }
+# helper function for check() in module-setup.sh
+# to check for required installed binaries
+# issues a standardized warning message
+require_binaries() {
+ local _module_name="${moddir##*/}"
+ local _ret=0
+
+ if [[ "$1" = "-m" ]]; then
+ _module_name="$2"
+ shift 2
+ fi
+
+ for cmd in "$@"; do
+ if ! find_binary "$cmd" &>/dev/null; then
+ dwarning "$_module_name: Could not find command '$cmd'!"
+ ((_ret++))
+ fi
+ done
+ return $_ret
+}
+
+require_any_binary() {
+ local _module_name="${moddir##*/}"
+ local _ret=1
+
+ if [[ "$1" = "-m" ]]; then
+ _module_name="$2"
+ shift 2
+ fi
+
+ for cmd in "$@"; do
+ if find_binary "$cmd" &>/dev/null; then
+ _ret=0
+ break
+ fi
+ done
+
+ if (( $_ret != 0 )); then
+ dwarning "$_module_name: Could not find any command of '$@'!"
+ return 1
+ fi
+
+ return 0
+}
+
# find a binary. If we were not passed the full path directly,
# search in the usual places to find the binary.
find_binary() {
@@ -1084,7 +1129,7 @@ module_check() {
. $_moddir/module-setup.sh
is_func check || return 0
[ $_forced -ne 0 ] && unset hostonly
- check $hostonly
+ moddir=$_moddir check $hostonly
_ret=$?
unset check depends cmdline install installkernel
fi
@@ -1110,7 +1155,7 @@ module_check_mount() {
unset check depends cmdline install installkernel
check() { false; }
. $_moddir/module-setup.sh
- check 0
+ moddir=$_moddir check 0
_ret=$?
unset check depends cmdline install installkernel
fi
@@ -1134,7 +1179,7 @@ module_depends() {
unset check depends cmdline install installkernel
depends() { true; }
. $_moddir/module-setup.sh
- depends
+ moddir=$_moddir depends
_ret=$?
unset check depends cmdline install installkernel
return $_ret
@@ -1155,7 +1200,7 @@ module_cmdline() {
unset check depends cmdline install installkernel
cmdline() { true; }
. $_moddir/module-setup.sh
- cmdline
+ moddir=$_moddir cmdline
_ret=$?
unset check depends cmdline install installkernel
return $_ret
@@ -1176,7 +1221,7 @@ module_install() {
unset check depends cmdline install installkernel
install() { true; }
. $_moddir/module-setup.sh
- install
+ moddir=$_moddir install
_ret=$?
unset check depends cmdline install installkernel
return $_ret
@@ -1197,7 +1242,7 @@ module_installkernel() {
unset check depends cmdline install installkernel
installkernel() { true; }
. $_moddir/module-setup.sh
- installkernel
+ moddir=$_moddir installkernel
_ret=$?
unset check depends cmdline install installkernel
return $_ret
diff --git a/modules.d/00bash/module-setup.sh b/modules.d/00bash/module-setup.sh
index f599940..e8fc115 100755
--- a/modules.d/00bash/module-setup.sh
+++ b/modules.d/00bash/module-setup.sh
@@ -4,7 +4,7 @@
# called by dracut
check() {
- [ -x /bin/bash ]
+ require_binaries /bin/bash
}
# called by dracut
diff --git a/modules.d/00bootchart/module-setup.sh b/modules.d/00bootchart/module-setup.sh
index 107ee5b..95e5c4b 100755
--- a/modules.d/00bootchart/module-setup.sh
+++ b/modules.d/00bootchart/module-setup.sh
@@ -5,7 +5,7 @@
# called by dracut
check() {
[[ "$mount_needs" ]] && return 1
- [ -x /sbin/bootchartd ] || return 1
+ require_binaries /sbin/bootchartd || return 1
return 255
}
diff --git a/modules.d/00dash/module-setup.sh b/modules.d/00dash/module-setup.sh
index 47f7b03..8f7deec 100755
--- a/modules.d/00dash/module-setup.sh
+++ b/modules.d/00dash/module-setup.sh
@@ -4,7 +4,7 @@
# called by dracut
check() {
- [ -x /bin/dash ]
+ require_binaries /bin/dash
}
# called by dracut
diff --git a/modules.d/00systemd-bootchart/module-setup.sh b/modules.d/00systemd-bootchart/module-setup.sh
index a897cef..5cca254 100755
--- a/modules.d/00systemd-bootchart/module-setup.sh
+++ b/modules.d/00systemd-bootchart/module-setup.sh
@@ -5,7 +5,7 @@
# called by dracut
check() {
[[ "$mount_needs" ]] && return 1
- [ -x $systemdutildir/systemd-bootchart ] || return 1
+ require_binaries $systemdutildir/systemd-bootchart || return 1
return 255
}
diff --git a/modules.d/02caps/module-setup.sh b/modules.d/02caps/module-setup.sh
index 6019188..46e35a0 100755
--- a/modules.d/02caps/module-setup.sh
+++ b/modules.d/02caps/module-setup.sh
@@ -4,7 +4,7 @@
# called by dracut
check() {
- type -P capsh >/dev/null 2>&1
+ require_binaries capsh
}
# called by dracut
@@ -14,9 +14,13 @@ depends() {
# called by dracut
install() {
- inst_hook pre-pivot 00 "$moddir/caps.sh"
- inst $(type -P capsh 2>/dev/null) /usr/sbin/capsh
- # capsh wants bash and we need bash also
- inst /bin/bash
+ if ! dracut_module_included "systemd"; then
+ inst_hook pre-pivot 00 "$moddir/caps.sh"
+ inst $(type -P capsh 2>/dev/null) /usr/sbin/capsh
+ # capsh wants bash and we need bash also
+ inst /bin/bash
+ else
+ dwarning "caps: does not work with systemd in the initramfs"
+ fi
}
diff --git a/modules.d/03modsign/module-setup.sh b/modules.d/03modsign/module-setup.sh
index 5dfd90c..09285d3 100755
--- a/modules.d/03modsign/module-setup.sh
+++ b/modules.d/03modsign/module-setup.sh
@@ -9,7 +9,7 @@
# called by dracut
check() {
- [[ -x /usr/bin/keyctl ]] || return 1
+ require_binaries keyctl || return 1
# do not include module in hostonly mode,
# if no keys are present
diff --git a/modules.d/05busybox/module-setup.sh b/modules.d/05busybox/module-setup.sh
index 6e508a6..228ff8c 100755
--- a/modules.d/05busybox/module-setup.sh
+++ b/modules.d/05busybox/module-setup.sh
@@ -4,7 +4,7 @@
# called by dracut
check() {
- type -P busybox >/dev/null || return 1
+ require_binaries busybox || return 1
return 255
}
diff --git a/modules.d/10i18n/module-setup.sh b/modules.d/10i18n/module-setup.sh
index fcb18d1..a091f89 100755
--- a/modules.d/10i18n/module-setup.sh
+++ b/modules.d/10i18n/module-setup.sh
@@ -6,9 +6,7 @@
check() {
[[ "$mount_needs" ]] && return 1
- for i in setfont loadkeys kbd_mode; do
- type -P "$i" >/dev/null || return 1
- done
+ require_binaries setfont loadkeys kbd_mode || return 1
return 0
}
diff --git a/modules.d/40network/module-setup.sh b/modules.d/40network/module-setup.sh
index 48afc5a..1df4174 100755
--- a/modules.d/40network/module-setup.sh
+++ b/modules.d/40network/module-setup.sh
@@ -6,12 +6,7 @@
check() {
local _program
- for _program in ip arping dhclient ; do
- if ! type -P $_program >/dev/null; then
- derror "Could not find program \"$_program\" required by network."
- return 1
- fi
- done
+ require_binaries ip arping dhclient || return 1
return 255
}
diff --git a/modules.d/45url-lib/module-setup.sh b/modules.d/45url-lib/module-setup.sh
index 1ed97ac..1b785c2 100755
--- a/modules.d/45url-lib/module-setup.sh
+++ b/modules.d/45url-lib/module-setup.sh
@@ -3,7 +3,7 @@
# called by dracut
check() {
- command -v curl >/dev/null || return 1
+ require_binaries curl || return 1
return 255
}
diff --git a/modules.d/50plymouth/module-setup.sh b/modules.d/50plymouth/module-setup.sh
index 1360924..b818324 100755
--- a/modules.d/50plymouth/module-setup.sh
+++ b/modules.d/50plymouth/module-setup.sh
@@ -5,7 +5,7 @@
# called by dracut
check() {
[[ "$mount_needs" ]] && return 1
- type -P plymouthd >/dev/null && type -P plymouth >/dev/null
+ require_binaries plymouthd plymouth
}
# called by dracut
diff --git a/modules.d/90btrfs/module-setup.sh b/modules.d/90btrfs/module-setup.sh
index 80a538f..406fd6d 100755
--- a/modules.d/90btrfs/module-setup.sh
+++ b/modules.d/90btrfs/module-setup.sh
@@ -7,7 +7,7 @@ check() {
local _rootdev
# if we don't have btrfs installed on the host system,
# no point in trying to support it in the initramfs.
- type -P btrfs >/dev/null || return 1
+ require_binaries btrfs || return 1
[[ $hostonly ]] || [[ $mount_needs ]] && {
for fs in ${host_fs_types[@]}; do
diff --git a/modules.d/90crypt/module-setup.sh b/modules.d/90crypt/module-setup.sh
index 7d18e33..21d49c4 100755
--- a/modules.d/90crypt/module-setup.sh
+++ b/modules.d/90crypt/module-setup.sh
@@ -6,7 +6,7 @@
check() {
local _rootdev
# if cryptsetup is not installed, then we cannot support encrypted devices.
- type -P cryptsetup >/dev/null || return 1
+ require_binaries cryptsetup || return 1
[[ $hostonly ]] || [[ $mount_needs ]] && {
for fs in "${host_fs_types[@]}"; do
diff --git a/modules.d/90dm/module-setup.sh b/modules.d/90dm/module-setup.sh
index bafad67..829c24b 100755
--- a/modules.d/90dm/module-setup.sh
+++ b/modules.d/90dm/module-setup.sh
@@ -4,7 +4,7 @@
# called by dracut
check() {
- type -P dmsetup >/dev/null || return 1
+ require_binaries dmsetup || return 1
return 255
}
diff --git a/modules.d/90dmraid/module-setup.sh b/modules.d/90dmraid/module-setup.sh
index a9e27a6..d3888a4 100755
--- a/modules.d/90dmraid/module-setup.sh
+++ b/modules.d/90dmraid/module-setup.sh
@@ -7,7 +7,7 @@ check() {
local _rootdev
# if we don't have dmraid installed on the host system, no point
# in trying to support it in the initramfs.
- type -P dmraid >/dev/null || return 1
+ require_binaries dmraid || return 1
[[ $hostonly ]] || [[ $mount_needs ]] && {
for dev in "${!host_fs_types[@]}"; do
diff --git a/modules.d/90lvm/module-setup.sh b/modules.d/90lvm/module-setup.sh
index a64e5d6..357797f 100755
--- a/modules.d/90lvm/module-setup.sh
+++ b/modules.d/90lvm/module-setup.sh
@@ -5,7 +5,7 @@
# called by dracut
check() {
# No point trying to support lvm if the binaries are missing
- type -P lvm >/dev/null || return 1
+ require_binaries lvm || return 1
[[ $hostonly ]] || [[ $mount_needs ]] && {
for fs in "${host_fs_types[@]}"; do
diff --git a/modules.d/90mdraid/module-setup.sh b/modules.d/90mdraid/module-setup.sh
index 61483f2..7d72098 100755
--- a/modules.d/90mdraid/module-setup.sh
+++ b/modules.d/90mdraid/module-setup.sh
@@ -6,7 +6,7 @@
check() {
local _rootdev
# No mdadm? No mdraid support.
- type -P mdadm >/dev/null || return 1
+ require_binaries mdadm || return 1
[[ $hostonly ]] || [[ $mount_needs ]] && {
for dev in "${!host_fs_types[@]}"; do
diff --git a/modules.d/90multipath/module-setup.sh b/modules.d/90multipath/module-setup.sh
index 261a957..b60cc60 100755
--- a/modules.d/90multipath/module-setup.sh
+++ b/modules.d/90multipath/module-setup.sh
@@ -6,7 +6,7 @@
check() {
local _rootdev
# if there's no multipath binary, no go.
- type -P multipath >/dev/null || return 1
+ require_binaries multipath || return 1
is_mpath() {
local _dev=$1
diff --git a/modules.d/91crypt-gpg/module-setup.sh b/modules.d/91crypt-gpg/module-setup.sh
index 90c7bc2..b2154f0 100755
--- a/modules.d/91crypt-gpg/module-setup.sh
+++ b/modules.d/91crypt-gpg/module-setup.sh
@@ -5,7 +5,7 @@
# GPG support is optional
# called by dracut
check() {
- type -P gpg >/dev/null || return 1
+ require_binaries gpg || return 1
return 255
}
diff --git a/modules.d/91crypt-loop/module-setup.sh b/modules.d/91crypt-loop/module-setup.sh
index 00052d3..93ae92e 100644
--- a/modules.d/91crypt-loop/module-setup.sh
+++ b/modules.d/91crypt-loop/module-setup.sh
@@ -1,23 +1,27 @@
+#!/bin/bash
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+# ex: ts=8 sw=4 sts=4 et filetype=sh
+
# called by dracut
check() {
- type -P losetup >/dev/null || return 1
-
- return 255
+ require_binaries losetup || return 1
+
+ return 255
}
# called by dracut
depends() {
- echo crypt
+ echo crypt
}
# called by dracut
installkernel() {
- instmods loop
+ instmods loop
}
# called by dracut
install() {
- inst_multiple losetup
- inst "$moddir/crypt-loop-lib.sh" "/lib/dracut-crypt-loop-lib.sh"
- dracut_need_initqueue
+ inst_multiple losetup
+ inst "$moddir/crypt-loop-lib.sh" "/lib/dracut-crypt-loop-lib.sh"
+ dracut_need_initqueue
}
diff --git a/modules.d/95cifs/module-setup.sh b/modules.d/95cifs/module-setup.sh
index 546d2ff..8f5a3bf 100755
--- a/modules.d/95cifs/module-setup.sh
+++ b/modules.d/95cifs/module-setup.sh
@@ -5,7 +5,7 @@
# called by dracut
check() {
# If our prerequisites are not met, fail anyways.
- type -P mount.cifs >/dev/null || return 1
+ require_binaries mount.cifs || return 1
[[ $hostonly ]] || [[ $mount_needs ]] && {
for fs in ${host_fs_types[@]}; do
diff --git a/modules.d/95dasd/module-setup.sh b/modules.d/95dasd/module-setup.sh
index 9c93d40..da0f3c0 100755
--- a/modules.d/95dasd/module-setup.sh
+++ b/modules.d/95dasd/module-setup.sh
@@ -5,8 +5,8 @@
# called by dracut
check() {
local _arch=$(uname -m)
- [ -x /sbin/normalize_dasd_arg ] || return 1
[ "$_arch" = "s390" -o "$_arch" = "s390x" ] || return 1
+ require_binaries normalize_dasd_arg || return 1
return 0
}
diff --git a/modules.d/95dasd_mod/module-setup.sh b/modules.d/95dasd_mod/module-setup.sh
index 8fde525..bee4998 100755
--- a/modules.d/95dasd_mod/module-setup.sh
+++ b/modules.d/95dasd_mod/module-setup.sh
@@ -6,6 +6,7 @@
check() {
local _arch=$(uname -m)
[ "$_arch" = "s390" -o "$_arch" = "s390x" ] || return 1
+ require_binaries grep sed seq
return 0
}
diff --git a/modules.d/95dasd_rules/module-setup.sh b/modules.d/95dasd_rules/module-setup.sh
index d313171..51c315d 100755
--- a/modules.d/95dasd_rules/module-setup.sh
+++ b/modules.d/95dasd_rules/module-setup.sh
@@ -5,8 +5,8 @@
# called by dracut
check() {
local _arch=$(uname -m)
- [ -x /sbin/dasd_configure ] || return 1
[ "$_arch" = "s390" -o "$_arch" = "s390x" ] || return 1
+ require_binaries dasd_configure /usr/lib/udev/collect || return 1
return 0
}
diff --git a/modules.d/95fcoe-uefi/module-setup.sh b/modules.d/95fcoe-uefi/module-setup.sh
index c91f775..0fb06e2 100755
--- a/modules.d/95fcoe-uefi/module-setup.sh
+++ b/modules.d/95fcoe-uefi/module-setup.sh
@@ -4,9 +4,7 @@
# called by dracut
check() {
- for i in dcbtool fipvlan lldpad ip readlink; do
- type -P $i >/dev/null || return 1
- done
+ require_binaries dcbtool fipvlan lldpad ip readlink || return 1
return 0
}
diff --git a/modules.d/95fcoe/module-setup.sh b/modules.d/95fcoe/module-setup.sh
index 539c464..c502ba0 100755
--- a/modules.d/95fcoe/module-setup.sh
+++ b/modules.d/95fcoe/module-setup.sh
@@ -4,10 +4,7 @@
# called by dracut
check() {
- for i in dcbtool fipvlan lldpad ip readlink; do
- type -P $i >/dev/null || return 1
- done
-
+ require_binaries dcbtool fipvlan lldpad ip readlink || return 1
return 0
}
diff --git a/modules.d/95iscsi/module-setup.sh b/modules.d/95iscsi/module-setup.sh
index 8379f4b..1b0f292 100755
--- a/modules.d/95iscsi/module-setup.sh
+++ b/modules.d/95iscsi/module-setup.sh
@@ -6,7 +6,7 @@
check() {
local _rootdev
# If our prerequisites are not met, fail anyways.
- type -P iscsistart hostname iscsi-iname >/dev/null || return 1
+ require_binaries iscsistart hostname iscsi-iname || return 1
# If hostonly was requested, fail the check if we are not actually
# booting from root.
diff --git a/modules.d/95nbd/module-setup.sh b/modules.d/95nbd/module-setup.sh
index 37ace21..e62f290 100755
--- a/modules.d/95nbd/module-setup.sh
+++ b/modules.d/95nbd/module-setup.sh
@@ -6,7 +6,7 @@
check() {
local _rootdev
# If our prerequisites are not met, fail.
- type -P nbd-client >/dev/null || return 1
+ require_binaries nbd-client || return 1
# if an nbd device is not somewhere in the chain of devices root is
# mounted on, fail the hostonly check.
diff --git a/modules.d/95nfs/module-setup.sh b/modules.d/95nfs/module-setup.sh
index 345810a..dabf3b0 100755
--- a/modules.d/95nfs/module-setup.sh
+++ b/modules.d/95nfs/module-setup.sh
@@ -5,8 +5,8 @@
# called by dracut
check() {
# If our prerequisites are not met, fail anyways.
- type -P rpcbind >/dev/null || type -P portmap >/dev/null || return 1
- type -P rpc.statd mount.nfs mount.nfs4 umount >/dev/null || return 1
+ require_any_binary rpcbind portmap || return 1
+ require_binaries rpc.statd mount.nfs mount.nfs4 umount || return 1
[[ $hostonly ]] || [[ $mount_needs ]] && {
for fs in ${host_fs_types[@]}; do
diff --git a/modules.d/95ssh-client/module-setup.sh b/modules.d/95ssh-client/module-setup.sh
index 1f2b733..2e3c505 100755
--- a/modules.d/95ssh-client/module-setup.sh
+++ b/modules.d/95ssh-client/module-setup.sh
@@ -6,11 +6,11 @@
# called by dracut
check() {
- # If our prerequisites are not met, fail.
- type -P ssh >/dev/null || return 1
- type -P scp >/dev/null || return 1
[[ $mount_needs ]] && return 1
+ # If our prerequisites are not met, fail.
+ require_binaries ssh scp || return 1
+
if [[ $sshkey ]]; then
[ ! -f $sshkey ] && {
derror "ssh key: $sshkey is not found!"
diff --git a/modules.d/95udev-rules/module-setup.sh b/modules.d/95udev-rules/module-setup.sh
index ebc4447..584d5c8 100755
--- a/modules.d/95udev-rules/module-setup.sh
+++ b/modules.d/95udev-rules/module-setup.sh
@@ -6,7 +6,7 @@
install() {
local _i
- # Fixme: would be nice if we didn't have to know which rules to grab....
+ # Fixme: would be nice if we didn't have to guess, which rules to grab....
# ultimately, /lib/initramfs/rules.d or somesuch which includes links/copies
# of the rules we want so that we just copy those in would be best
inst_multiple udevadm cat uname blkid \
diff --git a/modules.d/95zfcp/module-setup.sh b/modules.d/95zfcp/module-setup.sh
index dfbeed5..b96ccd2 100755
--- a/modules.d/95zfcp/module-setup.sh
+++ b/modules.d/95zfcp/module-setup.sh
@@ -5,9 +5,10 @@
# called by dracut
check() {
arch=$(uname -m)
- [ -x /sbin/zfcp_cio_free ] || return 1
[ "$arch" = "s390" -o "$arch" = "s390x" ] || return 1
+ require_binaries zfcp_cio_free grep sed seq || return 1
+
return 0
}
diff --git a/modules.d/95zfcp_rules/module-setup.sh b/modules.d/95zfcp_rules/module-setup.sh
index 9a1ab20..d9879cb 100755
--- a/modules.d/95zfcp_rules/module-setup.sh
+++ b/modules.d/95zfcp_rules/module-setup.sh
@@ -5,8 +5,8 @@
# called by dracut
check() {
local _arch=$(uname -m)
- [ -x /sbin/zfcp_disk_configure ] || return 1
[ "$_arch" = "s390" -o "$_arch" = "s390x" ] || return 1
+ require_binaries zfcp_disk_configure /usr/lib/udev/collect || return 1
return 0
}
diff --git a/modules.d/95znet/module-setup.sh b/modules.d/95znet/module-setup.sh
index 5012b77..346f893 100755
--- a/modules.d/95znet/module-setup.sh
+++ b/modules.d/95znet/module-setup.sh
@@ -5,9 +5,10 @@
# called by dracut
check() {
arch=$(uname -m)
- [ -z /sbin/znet_cio_free ] || return 1
[ "$arch" = "s390" -o "$arch" = "s390x" ] || return 1
+ require_binaries znet_cio_free grep sed seq readlink || return 1
+
return 0
}
diff --git a/modules.d/97biosdevname/module-setup.sh b/modules.d/97biosdevname/module-setup.sh
index b51c472..e285a7f 100755
--- a/modules.d/97biosdevname/module-setup.sh
+++ b/modules.d/97biosdevname/module-setup.sh
@@ -5,7 +5,7 @@
# called by dracut
check() {
[[ "$mount_needs" ]] && return 1
- type -P biosdevname >/dev/null || return 1
+ require_binaries biosdevname || return 1
return 0
}
diff --git a/modules.d/97masterkey/module-setup.sh b/modules.d/97masterkey/module-setup.sh
index e6e3690..82a6515 100755
--- a/modules.d/97masterkey/module-setup.sh
+++ b/modules.d/97masterkey/module-setup.sh
@@ -5,7 +5,7 @@
# called by dracut
check() {
[[ $hostonly ]] && {
- [ -x "/bin/keyctl" ] || return 1
+ require_binaries keyctl uname || return 1
}
return 255
diff --git a/modules.d/98systemd/module-setup.sh b/modules.d/98systemd/module-setup.sh
index 036f1c1..badce3c 100755
--- a/modules.d/98systemd/module-setup.sh
+++ b/modules.d/98systemd/module-setup.sh
@@ -5,7 +5,7 @@
# called by dracut
check() {
[[ $mount_needs ]] && return 1
- if [[ -x $systemdutildir/systemd ]]; then
+ if require_binaries $systemdutildir/systemd; then
SYSTEMD_VERSION=$($systemdutildir/systemd --version | { read a b a; echo $b; })
(( $SYSTEMD_VERSION >= 198 )) && return 0
return 255
diff --git a/modules.d/99img-lib/module-setup.sh b/modules.d/99img-lib/module-setup.sh
index 2c3c992..69346b2 100755
--- a/modules.d/99img-lib/module-setup.sh
+++ b/modules.d/99img-lib/module-setup.sh
@@ -3,9 +3,7 @@
# called by dracut
check() {
- for cmd in tar gzip dd; do
- command -v $cmd >/dev/null || return 1
- done
+ require_binaries tar gzip dd bash || return 1
return 255
}

View File

@ -1,83 +0,0 @@
From 56903458d7e67f805a7e484cd025a059a5621d73 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Wed, 16 Oct 2013 11:47:01 +0200
Subject: [PATCH] mkdir basic dirs in /run
for systemd initramfs, /run is also mounted
for non-systemd the contents of /run is copied over, when mounting /run
---
modules.d/98systemd/dracut-cmdline.sh | 5 -----
modules.d/99base/dracut-lib.sh | 7 +++++++
modules.d/99base/init.sh | 10 +++-------
3 files changed, 10 insertions(+), 12 deletions(-)
diff --git a/modules.d/98systemd/dracut-cmdline.sh b/modules.d/98systemd/dracut-cmdline.sh
index 50b8d6c..aa8a02b 100755
--- a/modules.d/98systemd/dracut-cmdline.sh
+++ b/modules.d/98systemd/dracut-cmdline.sh
@@ -2,11 +2,6 @@
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
-[ -d $NEWROOT ] || mkdir -p -m 0755 $NEWROOT
-[ -d /run/initramfs ] || mkdir -p -m 0755 /run/initramfs
-[ -d /run/lock ] || mkdir -p -m 0755 /run/lock
-[ -d /run/log ] || mkdir -p -m 0755 /run/log
-
if [ -f /dracut-state.sh ]; then
. /dracut-state.sh 2>/dev/null
fi
diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
index 74d7d35..0670cf2 100755
--- a/modules.d/99base/dracut-lib.sh
+++ b/modules.d/99base/dracut-lib.sh
@@ -4,6 +4,13 @@
export DRACUT_SYSTEMD
export NEWROOT
+if [ -n "$NEWROOT" ]; then
+ [ -d $NEWROOT ] || mkdir -p -m 0755 $NEWROOT
+fi
+
+[ -d /run/initramfs ] || mkdir -p -m 0755 /run/initramfs
+[ -d /run/lock ] || mkdir -p -m 0755 /run/lock
+[ -d /run/log ] || mkdir -p -m 0755 /run/log
debug_off() {
set +x
diff --git a/modules.d/99base/init.sh b/modules.d/99base/init.sh
index 3ba440a..2364f4f 100755
--- a/modules.d/99base/init.sh
+++ b/modules.d/99base/init.sh
@@ -56,17 +56,17 @@ fi
if ! ismounted /dev/pts; then
mkdir -m 0755 /dev/pts
- mount -t devpts -o gid=5,mode=620,noexec,nosuid devpts /dev/pts >/dev/null
+ mount -t devpts -o gid=5,mode=620,noexec,nosuid devpts /dev/pts >/dev/null
fi
if ! ismounted /dev/shm; then
mkdir -m 0755 /dev/shm
- mount -t tmpfs -o mode=1777,nosuid,nodev,strictatime tmpfs /dev/shm >/dev/null
+ mount -t tmpfs -o mode=1777,nosuid,nodev,strictatime tmpfs /dev/shm >/dev/null
fi
if ! ismounted /run; then
mkdir -m 0755 /newrun
- mount -t tmpfs -o mode=0755,nosuid,nodev,strictatime tmpfs /newrun >/dev/null
+ mount -t tmpfs -o mode=0755,nosuid,nodev,strictatime tmpfs /newrun >/dev/null
cp -a /run/* /newrun >/dev/null 2>&1
mount --move /newrun /run
rm -fr -- /newrun
@@ -88,10 +88,6 @@ fi
trap "action_on_fail Signal caught!" 0
-[ -d /run/initramfs ] || mkdir -p -m 0755 /run/initramfs
-[ -d /run/log ] || mkdir -p -m 0755 /run/log
-[ -d /run/lock ] || mkdir -p -m 0755 /run/lock
-
export UDEVVERSION=$(udevadm --version)
if [ $UDEVVERSION -gt 166 ]; then
# newer versions of udev use /run/udev/rules.d

View File

@ -1,50 +0,0 @@
From 96c6f6f3d101a16b70d0fe760abbf8ea77975bc4 Mon Sep 17 00:00:00 2001
From: Marian Csontos <mcsontos@redhat.com>
Date: Fri, 18 Oct 2013 14:40:40 +0200
Subject: [PATCH] dracut-functions.sh:check_block_and_slaves*() skip LVM
internal devs
Not every device in /dev/mapper should be examined.
If it is an LVM device, touch only devices which have /dev/VG/LV symlink.
---
dracut-functions.sh | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/dracut-functions.sh b/dracut-functions.sh
index 45e0911..2e6e845 100755
--- a/dracut-functions.sh
+++ b/dracut-functions.sh
@@ -579,7 +579,7 @@ host_fs_all()
check_block_and_slaves() {
local _x
[[ -b /dev/block/$2 ]] || return 1 # Not a block device? So sorry.
- "$1" $2 && return
+ if ! lvm_internal_dev $2; then "$1" $2 && return; fi
check_vol_slaves "$@" && return 0
if [[ -f /sys/dev/block/$2/../dev ]]; then
check_block_and_slaves $1 $(<"/sys/dev/block/$2/../dev") && return 0
@@ -595,7 +595,7 @@ check_block_and_slaves() {
check_block_and_slaves_all() {
local _x _ret=1
[[ -b /dev/block/$2 ]] || return 1 # Not a block device? So sorry.
- if "$1" $2; then
+ if ! lvm_internal_dev $2 && "$1" $2; then
_ret=0
fi
check_vol_slaves "$@" && return 0
@@ -1672,3 +1672,15 @@ get_ucode_file ()
printf "%02x-%02x-%02x" ${family} ${model} ${stepping}
fi
}
+
+# Not every device in /dev/mapper should be examined.
+# If it is an LVM device, touch only devices which have /dev/VG/LV symlink.
+lvm_internal_dev() {
+ local dev_dm_dir=/sys/dev/block/$1/dm
+ [[ ! -f $dev_dm_dir/uuid || $(<$dev_dm_dir/uuid) != LVM-* ]] && return 1 # Not an LVM device
+ local DM_VG_NAME DM_LV_NAME DM_LV_LAYER
+ eval $(dmsetup splitname --nameprefixes --noheadings --rows "$(<$dev_dm_dir/name)" 2>/dev/null)
+ [[ ${DM_VG_NAME} ]] && [[ ${DM_LV_NAME} ]] || return 0 # Better skip this!
+ [[ ${DM_LV_LAYER} ]] || [[ ! -L /dev/${DM_VG_NAME}/${DM_LV_NAME} ]]
+}
+

View File

@ -1,23 +0,0 @@
From 76a44782647c2693039d15a2d8073d70be9b6756 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 18 Oct 2013 14:56:51 +0200
Subject: [PATCH] kernel-modules(ARM): add mmc_block usb_storage to statis list
of kernel mods
---
modules.d/90kernel-modules/module-setup.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh
index f6d1c3d..2100336 100755
--- a/modules.d/90kernel-modules/module-setup.sh
+++ b/modules.d/90kernel-modules/module-setup.sh
@@ -49,7 +49,7 @@ installkernel() {
# arm specific modules
hostonly='' instmods sdhci_esdhc_imx mmci sdhci_tegra mvsdio omap omapdrm \
omap_hsmmc panel-tfp410 sdhci_dove ahci_platform pata_imx sata_mv \
- ehci-tegra
+ ehci-tegra mmc_block usb_storage
fi
# install virtual machine support

View File

@ -1,76 +0,0 @@
From 5d623b1775ebc7dc17bc23f2839906f418b17383 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 21 Oct 2013 09:09:26 +0200
Subject: [PATCH] lvm: always install thin utils for lvm
---
modules.d/90lvm/module-setup.sh | 33 +++++++--------------------------
1 file changed, 7 insertions(+), 26 deletions(-)
diff --git a/modules.d/90lvm/module-setup.sh b/modules.d/90lvm/module-setup.sh
index cbdf4a2..87374da 100755
--- a/modules.d/90lvm/module-setup.sh
+++ b/modules.d/90lvm/module-setup.sh
@@ -24,7 +24,8 @@ depends() {
return 0
}
-get_host_lvs() {
+# called by dracut
+cmdline() {
local _activated
declare -A _activated
@@ -37,37 +38,20 @@ get_host_lvs() {
eval $(dmsetup splitname --nameprefixes --noheadings --rows "$dev" 2>/dev/null)
[[ ${DM_VG_NAME} ]] && [[ ${DM_LV_NAME} ]] || return 1
if ! [[ ${_activated[${DM_VG_NAME}/${DM_LV_NAME}]} ]]; then
- printf "%s\n" "${DM_VG_NAME}/${DM_LV_NAME} "
+ printf " rd.lvm.lv=%s\n" "${DM_VG_NAME}/${DM_LV_NAME} "
_activated["${DM_VG_NAME}/${DM_LV_NAME}"]=1
fi
done
}
# called by dracut
-cmdline() {
- get_host_lvs | while read line; do
- printf " rd.lvm.lv=$line"
- done
-}
-
-# called by dracut
install() {
- local _i _needthin
+ local _i
inst lvm
- if [[ $hostonly ]]; then
- while read line; do
- [[ -n "$line" ]] || continue
- printf "%s" " rd.lvm.lv=$line"
- if ! [[ $_needthin ]]; then
- [[ "$(lvs --noheadings -o segtype ${line%%/*} 2>/dev/null)" == *thin* ]] && _needthin=1
- fi
- done <<<$(get_host_lvs) >> "${initdir}/etc/cmdline.d/90lvm.conf"
- echo >> "${initdir}/etc/cmdline.d/90lvm.conf"
- else
- _needthin=1
- fi
+ cmdline >> "${initdir}/etc/cmdline.d/90lvm.conf"
+ echo >> "${initdir}/etc/cmdline.d/90lvm.conf"
inst_rules "$moddir/64-lvm.rules"
@@ -103,9 +87,6 @@ install() {
inst_libdir_file "libdevmapper-event-lvm*.so"
- if [[ $_needthin ]]; then
- inst_multiple -o thin_dump thin_restore thin_check thin_repair
- fi
-
+ inst_multiple -o thin_dump thin_restore thin_check thin_repair
}

View File

@ -1,22 +0,0 @@
From 0106da599a227cf1c28c3648b7e77985f617b878 Mon Sep 17 00:00:00 2001
From: Alexander Tsoy <alexander@tsoy.me>
Date: Fri, 25 Oct 2013 17:06:44 +0200
Subject: [PATCH] usrmount/module-setup.sh: fixed typo
---
modules.d/98usrmount/module-setup.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules.d/98usrmount/module-setup.sh b/modules.d/98usrmount/module-setup.sh
index 1af789f..d8a0ec2 100755
--- a/modules.d/98usrmount/module-setup.sh
+++ b/modules.d/98usrmount/module-setup.sh
@@ -7,7 +7,7 @@ check() {
local _init
[[ $mount_needs ]] && return 1
_init=$(readlink -f /sbin/init)
- [[ "$init" == "${init##/usr}" ]] && return 255
+ [[ "$_init" == "${_init##/usr}" ]] && return 255
return 0
}

View File

@ -1,85 +0,0 @@
From 4d7c18c7c0abf9c2347581d07a8e8be3d3969bd2 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Wed, 30 Oct 2013 12:22:52 +0100
Subject: [PATCH] Handle crypto modules with and without modaliases
If new kernels have modules split out, handle the case, where modules
have to modalias and just install them.
Also add the crypto drivers and names to host_modalias.
---
dracut-functions.sh | 14 ++++++++++----
dracut.sh | 5 +++++
modules.d/01fips/fips.sh | 1 -
3 files changed, 15 insertions(+), 5 deletions(-)
diff --git a/dracut-functions.sh b/dracut-functions.sh
index 2e6e845..38095ba 100755
--- a/dracut-functions.sh
+++ b/dracut-functions.sh
@@ -1480,7 +1480,7 @@ dracut_kernel_post() {
module_is_host_only() {
local _mod=$1
- local _modenc a i
+ local _modenc a i _k _s _v _aliases
_mod=${_mod##*/}
_mod=${_mod%.ko}
_modenc=${_mod//-/_}
@@ -1497,19 +1497,25 @@ module_is_host_only() {
# this covers the case, where a new module is introduced
# or a module was renamed
# or a module changed from builtin to a module
+
if [[ -d /lib/modules/$kernel_current ]]; then
# if the modinfo can be parsed, but the module
# is not loaded, then we can safely return 1
modinfo -F filename "$_mod" &>/dev/null && return 1
fi
- # Finally check all modalias, if we install for a kernel
- # different from the current one
- for a in $(modinfo -k $kernel -F alias $_mod 2>/dev/null); do
+ _aliases=$(modinfo -k $kernel -F alias $_mod 2>/dev/null)
+
+ # if the module has no aliases, install it
+ [[ $_aliases ]] || return 0
+
+ # finally check all modalias
+ for a in $_aliases; do
for i in "${!host_modalias[@]}"; do
[[ $i == $a ]] && return 0
done
done
+
fi
return 1
diff --git a/dracut.sh b/dracut.sh
index 4613d5b..ae792c4 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -968,6 +968,11 @@ if [[ $hostonly ]]; then
rm -f -- "$initdir/.modalias"
+ while read _k _s _v; do
+ [ "$_k" != "name" -a "$_k" != "driver" ] && continue
+ host_modalias["$_v"]=1
+ done </proc/crypto
+
# check /proc/modules
declare -A host_modules
while read m rest; do
diff --git a/modules.d/01fips/fips.sh b/modules.d/01fips/fips.sh
index f0a4c5c..98dd1c2 100755
--- a/modules.d/01fips/fips.sh
+++ b/modules.d/01fips/fips.sh
@@ -96,7 +96,6 @@ do_fips()
_found=0
while read _k _s _v; do
[ "$_k" != "name" -a "$_k" != "driver" ] && continue
- [ "$_k" = "driver" ] && _v=$(str_replace "$_v" "_" "-")
[ "$_v" != "$_module" ] && continue
_found=1
break

View File

@ -1,23 +0,0 @@
From 0a8e91bb24de6eaf542ade0fffc941c3f072daec Mon Sep 17 00:00:00 2001
From: Kyle McMartin <kmcmarti@redhat.com>
Date: Wed, 30 Oct 2013 12:35:27 +0100
Subject: [PATCH] fips: include crct10dif_generic
Resolves: rhbz#1024455
---
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 6493290..fb5a5cd 100755
--- a/modules.d/01fips/module-setup.sh
+++ b/modules.d/01fips/module-setup.sh
@@ -16,7 +16,7 @@ depends() {
installkernel() {
local _fipsmodules _mod
_fipsmodules="aead aes_generic aes-x86_64 ansi_cprng arc4 blowfish camellia cast6 cbc ccm "
- _fipsmodules+="chainiv crc32c cryptomgr crypto_null ctr cts deflate des des3_ede dm-crypt dm-mod "
+ _fipsmodules+="chainiv crc32c crct10dif_generic cryptomgr crypto_null ctr cts deflate des des3_ede dm-crypt dm-mod "
_fipsmodules+="ecb eseqiv fcrypt gcm ghash_generic hmac khazad lzo md4 md5 michael_mic rmd128 "
_fipsmodules+="rmd160 rmd256 rmd320 rot13 salsa20 seed seqiv serpent sha1 sha224 sha256 sha256_generic "
_fipsmodules+="sha384 sha512 sha512_generic tcrypt tea tnepres twofish wp256 wp384 wp512 xeta xtea xts zlib"

View File

@ -1,61 +0,0 @@
From fa9384b1c0414efd33d82a2e083346b35c378f50 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Wed, 30 Oct 2013 17:36:54 +0100
Subject: [PATCH] iscsi/nbd: do not try to mount the whole disk, if root= is
missing
only mount the whole disk for root=dhcp
---
modules.d/95iscsi/iscsiroot.sh | 11 ++---------
modules.d/95nbd/nbdroot.sh | 2 +-
2 files changed, 3 insertions(+), 10 deletions(-)
diff --git a/modules.d/95iscsi/iscsiroot.sh b/modules.d/95iscsi/iscsiroot.sh
index 5181f52..738fff4 100755
--- a/modules.d/95iscsi/iscsiroot.sh
+++ b/modules.d/95iscsi/iscsiroot.sh
@@ -40,14 +40,6 @@ modprobe crc32c 2>/dev/null
[ -e /sys/module/bnx2i ] && iscsiuio
if getargbool 0 rd.iscsi.firmware -d -y iscsi_firmware ; then
- if [ -z "$root" -o -n "${root%%block:*}" ]; then
- # if root is not specified try to mount the whole iSCSI LUN
- printf 'ENV{DEVTYPE}!="partition", SYMLINK=="disk/by-path/*-iscsi-*-*", SYMLINK+="root"\n' >> /etc/udev/rules.d/99-iscsi-root.rules
- udevadm control --reload
- write_fs_tab /dev/root
- wait_for_dev /dev/root
- fi
-
for p in $(getargs rd.iscsi.param -d iscsi_param); do
iscsi_param="$iscsi_param --param $p"
done
@@ -55,6 +47,7 @@ if getargbool 0 rd.iscsi.firmware -d -y iscsi_firmware ; then
iscsistart -b $iscsi_param
echo 'started' > "/tmp/iscsistarted-iscsi"
echo 'started' > "/tmp/iscsistarted-firmware"
+ need_shutdown
exit 0
fi
@@ -137,7 +130,7 @@ handle_netroot()
# FIXME $iscsi_protocol??
- if [ -z "$root" -o -n "${root%%block:*}" ]; then
+ if [ "$root" = "dhcp" ]; then
# if root is not specified try to mount the whole iSCSI LUN
printf 'SYMLINK=="disk/by-path/*-iscsi-*-%s", SYMLINK+="root"\n' $iscsi_lun >> /etc/udev/rules.d/99-iscsi-root.rules
udevadm control --reload
diff --git a/modules.d/95nbd/nbdroot.sh b/modules.d/95nbd/nbdroot.sh
index 823da0e..2e9d917 100755
--- a/modules.d/95nbd/nbdroot.sh
+++ b/modules.d/95nbd/nbdroot.sh
@@ -97,7 +97,7 @@ done
# If we didn't get a root= on the command line, then we need to
# add the udev rules for mounting the nbd0 device
-if [ -z "$root" -o -n "${root%%block:*}" -o "$root" = "block:/dev/root" ]; then
+if [ "$root" = "block:/dev/root" -o "$root" = "dhcp" ]; then
printf 'KERNEL=="nbd0", ENV{DEVTYPE}!="partition", ENV{ID_FS_TYPE}=="?*", SYMLINK+="root"\n' >> /etc/udev/rules.d/99-nbd-root.rules
udevadm control --reload
type write_fs_tab >/dev/null 2>&1 || . /lib/fs-lib.sh

View File

@ -1,33 +0,0 @@
From 06d418abd1a78c79ca11ce597d7dcfdb0091c96e Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 21 Oct 2013 09:43:04 +0200
Subject: [PATCH] dracut.spec: move /sbin/dracut to /usr/sbin/dracut
---
dracut.spec | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/dracut.spec b/dracut.spec
index 3ec0ec0..44171d8 100644
--- a/dracut.spec
+++ b/dracut.spec
@@ -274,8 +274,8 @@ echo 'dracut_rescue_image="yes"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/
%endif
# create compat symlink
-mkdir -p $RPM_BUILD_ROOT/sbin
-ln -s /usr/bin/dracut $RPM_BUILD_ROOT/sbin/dracut
+mkdir -p $RPM_BUILD_ROOT%{_sbindir}
+ln -sr $RPM_BUILD_ROOT%{_bindir}/dracut $RPM_BUILD_ROOT%{_sbindir}/dracut
%clean
rm -rf -- $RPM_BUILD_ROOT
@@ -285,7 +285,7 @@ rm -rf -- $RPM_BUILD_ROOT
%doc README HACKING TODO COPYING AUTHORS NEWS dracut.html dracut.png dracut.svg
%{_bindir}/dracut
# compat symlink
-/sbin/dracut
+%{_sbindir}/dracut
%{_datadir}/bash-completion/completions/dracut
%{_datadir}/bash-completion/completions/lsinitrd
%if 0%{?fedora} > 12 || 0%{?rhel} >= 6 || 0%{?suse_version} > 9999

View File

@ -1,22 +0,0 @@
From cf3fd99e72745b894a5c787277f90305f2ea1215 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Sat, 2 Nov 2013 13:14:40 +0100
Subject: [PATCH] dracut.sh: fixed PATH shortener
---
dracut.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dracut.sh b/dracut.sh
index ae792c4..03472ba 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -533,7 +533,7 @@ for i in /usr/sbin /sbin /usr/bin /bin; do
if [ -L "$i" ]; then
rl=$(readlink -f $i)
fi
- if [[ "$NPATH" != "*:$rl*" ]] ; then
+ if [[ "$NPATH" != *:$rl* ]] ; then
NPATH+=":$rl"
fi
done

View File

@ -1,21 +0,0 @@
From 095fa1559178522029ad854017a0c83d4979e876 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Sat, 2 Nov 2013 13:20:32 +0100
Subject: [PATCH] dracut.modules.7.asc: removed empty section
---
dracut.modules.7.asc | 1 -
1 file changed, 1 deletion(-)
diff --git a/dracut.modules.7.asc b/dracut.modules.7.asc
index 4cb2aa1..17acdb4 100644
--- a/dracut.modules.7.asc
+++ b/dracut.modules.7.asc
@@ -10,7 +10,6 @@ dracut.modules - dracut modules
DESCRIPTION
-----------
-== dracut Components
dracut uses a modular system to build and extend the initramfs image. All
modules are located in _/usr/lib/dracut/modules.d_ or in _<git-src>/modules.d_.

View File

@ -1,20 +0,0 @@
From 185e940e27eb8c1658556d17b30ac60a16894502 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 4 Nov 2013 17:29:15 +0100
Subject: [PATCH] fips: also install /etc/system-fips in the initramfs
---
modules.d/01fips/module-setup.sh | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules.d/01fips/module-setup.sh b/modules.d/01fips/module-setup.sh
index fb5a5cd..a4081dc 100755
--- a/modules.d/01fips/module-setup.sh
+++ b/modules.d/01fips/module-setup.sh
@@ -45,5 +45,6 @@ install() {
libssl.so 'hmaccalc/sha512hmac.hmac' libssl.so.10
inst_multiple -o prelink
+ inst_simple /etc/system-fips
}

View File

@ -1,43 +0,0 @@
From 1d50dfe6025126c38b1d23815360bd48e9e8c24c Mon Sep 17 00:00:00 2001
From: Colin Guthrie <colin@mageia.org>
Date: Sat, 2 Nov 2013 11:26:30 +0000
Subject: [PATCH] dracut-functions.sh: Avoid loading unnecessary 32-bit
libraries for 64-bit initrds
Due to the 'inst_libdir_file "libnss_files*"' in the udev-rules module
this caues the /usr/lib/libnss_files-2.18.so* to be included. This is a
32-bit library and pulls in a 32-bit version of glibc also even on a
64-bit system.
This is due to the fact that ldconfig -pN will print [/usr]/lib paths
from the cache as well as [/usr]/lib64. As we handle these paths
specifically we should ignore these results from the cache.
Also there was a missing space when appending the ldconfig paths
onto our list meaning the last builtin and first ldconfig path
were unusable.
---
dracut-functions.sh | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/dracut-functions.sh b/dracut-functions.sh
index 38095ba..2872516 100755
--- a/dracut-functions.sh
+++ b/dracut-functions.sh
@@ -65,6 +65,7 @@ ldconfig_paths()
printf "%s\n" ${d%/*};
done
); do
+ [[ "$i" = "/lib" || "$i" = "/usr/lib" || "$i" = "/lib64" || "$i" = "/usr/lib64" ]] && continue
a["$i"]=1;
done;
printf "%s\n" ${!a[@]}
@@ -81,7 +82,7 @@ if ! [[ $libdirs ]] ; then
[[ -d /usr/lib ]] && libdirs+=" /usr/lib"
fi
- libdirs+="$(ldconfig_paths)"
+ libdirs+=" $(ldconfig_paths)"
export libdirs
fi

View File

@ -1,36 +0,0 @@
From c2ab99093817d4694c0360b77845b8f2a8a10caf Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 11 Nov 2013 16:57:09 +0100
Subject: [PATCH] iscsi,nbd: do not fail in hostonly mode
---
modules.d/95iscsi/module-setup.sh | 2 +-
modules.d/95nbd/module-setup.sh | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules.d/95iscsi/module-setup.sh b/modules.d/95iscsi/module-setup.sh
index c8051bd..8379f4b 100755
--- a/modules.d/95iscsi/module-setup.sh
+++ b/modules.d/95iscsi/module-setup.sh
@@ -24,7 +24,7 @@ check() {
[[ $hostonly ]] || [[ $mount_needs ]] && {
pushd . >/dev/null
- for_each_host_dev_and_slaves is_iscsi || return 1
+ for_each_host_dev_and_slaves is_iscsi || return 255
popd >/dev/null
}
return 0
diff --git a/modules.d/95nbd/module-setup.sh b/modules.d/95nbd/module-setup.sh
index ac30823..37ace21 100755
--- a/modules.d/95nbd/module-setup.sh
+++ b/modules.d/95nbd/module-setup.sh
@@ -15,7 +15,7 @@ check() {
_rootdev=$(find_root_block_device)
[[ -b /dev/block/$_rootdev ]] || return 1
- check_block_and_slaves is_nbd "$_rootdev" || return 1
+ check_block_and_slaves is_nbd "$_rootdev" || return 255
}
return 0

View File

@ -1,27 +0,0 @@
From 7e4f74f5040fc3f4e7646695b54c5c11b0b95c62 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 11 Nov 2013 16:57:32 +0100
Subject: [PATCH] systemd: do not exit the initqueue, if systemd asks a
password
this prevents bailing out the initqueue, while passwords are still to be
asked
---
modules.d/98systemd/dracut-initqueue.sh | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/modules.d/98systemd/dracut-initqueue.sh b/modules.d/98systemd/dracut-initqueue.sh
index d7ebf2b..64e8154 100755
--- a/modules.d/98systemd/dracut-initqueue.sh
+++ b/modules.d/98systemd/dracut-initqueue.sh
@@ -52,6 +52,10 @@ while :; do
# no more udev jobs and queues empty.
sleep 0.5
+ for i in /run/systemd/ask-password/ask.*; do
+ [ -e "$i" ] && continue
+ done
+
if [ $main_loop -gt $((2*$RDRETRY/3)) ]; then
for job in $hookdir/initqueue/timeout/*.sh; do
[ -e "$job" ] || break

View File

@ -1,35 +0,0 @@
From a3bfaa191958c4b70d6c674f972c3b911f8b1bfa Mon Sep 17 00:00:00 2001
From: Vratislav Podzimek <vpodzime@redhat.com>
Date: Wed, 13 Nov 2013 13:20:39 +0100
Subject: [PATCH] Run 'xz' and 'lzma' with multiple threads
This speeds up compression a lot on multicore systems.
https://bugzilla.redhat.com/show_bug.cgi?id=1029786
[Edited-by: Harald Hoyer: use getconf for cpu_count]
---
dracut.sh | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/dracut.sh b/dracut.sh
index 03472ba..bce2662 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -693,12 +693,14 @@ stdloglvl=$((stdloglvl + verbosity_mod_l))
# eliminate IFS hackery when messing with fw_dir
fw_dir=${fw_dir//:/ }
+cpu_count=$(getconf _NPROCESSORS_ONLN)
+
# handle compression options.
[[ $compress ]] || compress="gzip"
case $compress in
bzip2) compress="bzip2 -9";;
- lzma) compress="lzma -9";;
- xz) compress="xz --check=crc32 --lzma2=dict=1MiB";;
+ lzma) compress="lzma -9 ${cpu_count:+-T$cpu_count}";;
+ xz) compress="xz --check=crc32 --lzma2=dict=1MiB ${cpu_count:+-T$cpu_count}";;
gzip) compress="gzip -9"; command -v pigz > /dev/null 2>&1 && compress="pigz -9";;
lzo) compress="lzop -9";;
lz4) compress="lz4 -9";;

View File

@ -1,30 +0,0 @@
From 28609baf6e9581ea97c4550340e2a6031c1b6fbd Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 14 Nov 2013 10:07:04 +0100
Subject: [PATCH] kernel-modules: add ohci-pci to the list of forced module
installs
---
modules.d/90kernel-modules/module-setup.sh | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh
index 2100336..d65e92b 100755
--- a/modules.d/90kernel-modules/module-setup.sh
+++ b/modules.d/90kernel-modules/module-setup.sh
@@ -36,9 +36,12 @@ installkernel() {
return 0
}
- hostonly='' instmods sr_mod sd_mod scsi_dh ata_piix \
- ehci-hcd ehci-pci ehci-platform ohci-hcd uhci-hcd xhci-hcd hid_generic \
- unix
+ hostonly='' instmods \
+ sr_mod sd_mod scsi_dh ata_piix hid_generic unix \
+ ehci-hcd ehci-pci ehci-platform \
+ ohci-hcd ohci-pci \
+ uhci-hcd \
+ xhci-hcd
instmods yenta_socket scsi_dh_rdac scsi_dh_emc \
atkbd i8042 usbhid hid-apple hid-sunplus hid-cherry hid-logitech \

View File

@ -1,36 +0,0 @@
From 297b8edc050715d563d54cfa34e42bf5909b9a7b Mon Sep 17 00:00:00 2001
From: Peter Rajnoha <prajnoha@redhat.com>
Date: Mon, 25 Nov 2013 14:38:00 +0100
Subject: [PATCH] lvm: do not run pvscan for lvmetad update
The lvmetad daemon is not yet running in initramfs so there's no
need to run pvscan (or instantiate any lvm2-pvscan systemd service).
If pvscan was called in this case (either directly or via systemd
instantiated service), it would fail because there's no lvmetad
daemon to update. This could cause confusion, especially in systemd
instantiated service which is run only once!
---
modules.d/90lvm/module-setup.sh | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/modules.d/90lvm/module-setup.sh b/modules.d/90lvm/module-setup.sh
index 87374da..a220a55 100755
--- a/modules.d/90lvm/module-setup.sh
+++ b/modules.d/90lvm/module-setup.sh
@@ -76,6 +76,16 @@ install() {
fi
inst_rules 11-dm-lvm.rules 69-dm-lvm-metad.rules
+
+ # Do not run lvmetad update via pvscan in udev rule - lvmetad is not running yet in dracut!
+ if grep -q SYSTEMD_WANTS ${initdir}/lib/udev/rules.d/69-dm-lvm-metad.rules; then
+ sed -i -e 's/^ENV{SYSTEMD_ALIAS}=.*/# No LVM pvscan in dracut - lvmetad is not running yet/' ${initdir}/lib/udev/rules.d/69-dm-lvm-metad.rules
+ sed -i -e 's/^ENV{ID_MODEL}=.*//' ${initdir}/lib/udev/rules.d/69-dm-lvm-metad.rules
+ sed -i -e 's/^ENV{SYSTEMD_WANTS}=.*//' ${initdir}/lib/udev/rules.d/69-dm-lvm-metad.rules
+ else
+ sed -i -e 's/.*lvm pvscan.*/# No LVM pvscan for in dracut - lvmetad is not running yet/' ${initdir}/lib/udev/rules.d/69-dm-lvm-metad.rules
+ fi
+
# Gentoo ebuild for LVM2 prior to 2.02.63-r1 doesn't install above rules
# files, but provides the one below:
inst_rules 64-device-mapper.rules

View File

@ -1,39 +0,0 @@
From 928da5744721842d3e02151323c3a1357baf0032 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 8 Nov 2013 15:06:18 +0100
Subject: [PATCH] fips: fix RHEV vmlinuz check
---
modules.d/01fips/fips.sh | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/modules.d/01fips/fips.sh b/modules.d/01fips/fips.sh
index 98dd1c2..7fa48f1 100755
--- a/modules.d/01fips/fips.sh
+++ b/modules.d/01fips/fips.sh
@@ -60,8 +60,8 @@ do_rhevh_check()
KERNEL=$(uname -r)
kpath=${1}
- # If we're on RHEV-H, the kernel is in /dev/.initramfs/live/vmlinuz0
- HMAC_SUM_ORIG=$(cat /boot/.vmlinuz-${KERNEL}.hmac | while read a b; do printf "%s\n" $a; done)
+ # If we're on RHEV-H, the kernel is in /run/initramfs/live/vmlinuz0
+ HMAC_SUM_ORIG=$(cat $NEWROOT/boot/.vmlinuz-${KERNEL}.hmac | while read a b; do printf "%s\n" $a; done)
HMAC_SUM_CALC=$(sha512hmac $kpath | while read a b; do printf "%s\n" $a; done || return 1)
if [ -z "$HMAC_SUM_ORIG" ] || [ -z "$HMAC_SUM_CALC" ] || [ "${HMAC_SUM_ORIG}" != "${HMAC_SUM_CALC}" ]; then
warn "HMAC sum mismatch"
@@ -111,10 +111,10 @@ do_fips()
rmmod tcrypt
info "Checking integrity of kernel"
- if [ -e "$NEWROOT/dev/.initramfs/live/vmlinuz0" ]; then
- do_rhevh_check "$NEWROOT/dev/.initramfs/live/vmlinuz0" || return 1
- elif [ -e "$NEWROOT/dev/.initramfs/live/isolinux/vmlinuz0" ]; then
- do_rhevh_check "$NEWROOT/dev/.initramfs/live/isolinux/vmlinuz0" || return 1
+ if [ -e "/run/initramfs/live/vmlinuz0" ]; then
+ do_rhevh_check /run/initramfs/live/vmlinuz0 || return 1
+ elif [ -e "/run/initramfs/live/isolinux/vmlinuz0" ]; then
+ do_rhevh_check /run/initramfs/live/isolinux/vmlinuz0 || return 1
else
sha512hmac -c "/boot/.vmlinuz-${KERNEL}.hmac" || return 1
fi

View File

@ -1,28 +0,0 @@
From e38e73d5a683ce93146c147305278b9175def3a0 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 2 Dec 2013 10:30:52 +0100
Subject: [PATCH] dracut.cmdline.7.asc: document "server-ip" of "ip=" parameter
---
dracut.cmdline.7.asc | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc
index 19bfb93..6a5fc8f 100644
--- a/dracut.cmdline.7.asc
+++ b/dracut.cmdline.7.asc
@@ -444,10 +444,12 @@ cannot be used in conjunction with the **ifname** argument for the
same <interface>.
=====================
-**ip=**__<client-IP>__:__<server-IP>__:__<gateway-IP>__:__<netmask>__:__<client_hostname>__:__<interface>__:__{none|off|dhcp|on|any|dhcp6|auto6|ibft}__:[:[__<mtu>__][:__<macaddr>__]]::
+**ip=**__<client-IP>__:[__<peer>__]:__<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.
+ times. __<peer>__ is optional and is the address of the remote endpoint
+ for pointopoint interfaces and it may be followed by a slash and a decimal number,
+ encoding the network prefix length.
+
=====================
<macaddr>::: optionally **set** <macaddr> on the <interface>. This

View File

@ -1,31 +0,0 @@
From e41f3f902512a91a286e14d6ffa52206c70ea5f6 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 2 Dec 2013 10:32:00 +0100
Subject: [PATCH] dracut.sh:_get_fs_type() if block device exists return early
even, if no ID_FS_TYPE was found, return if the block device exists
---
dracut.sh | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/dracut.sh b/dracut.sh
index bce2662..177b813 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -987,12 +987,12 @@ unset rest
_get_fs_type() {
[[ $1 ]] || return
- if [[ -b /dev/block/$1 ]] && ID_FS_TYPE=$(get_fs_env "/dev/block/$1"); then
- host_fs_types["$(readlink -f "/dev/block/$1")"]="$ID_FS_TYPE"
+ if [[ -b /dev/block/$1 ]]; then
+ ID_FS_TYPE=$(get_fs_env "/dev/block/$1") && host_fs_types["$(readlink -f "/dev/block/$1")"]="$ID_FS_TYPE"
return 1
fi
- if [[ -b $1 ]] && ID_FS_TYPE=$(get_fs_env "$1"); then
- host_fs_types["$(readlink -f "$1")"]="$ID_FS_TYPE"
+ if [[ -b $1 ]]; then
+ ID_FS_TYPE=$(get_fs_env "$1") && host_fs_types["$(readlink -f "$1")"]="$ID_FS_TYPE"
return 1
fi
if fstype=$(find_dev_fstype "$1"); then

View File

@ -1,23 +0,0 @@
From 56ee31ccfec50f40bade2127eb1fae041a81f16a Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 2 Dec 2013 10:34:18 +0100
Subject: [PATCH] network/net-lib.sh:wait_for_if_up() wait for "state UP"
really wait for "state UP", otherwise it returns earlier than we want
---
modules.d/40network/net-lib.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh
index 88e72ec..0aa312a 100644
--- a/modules.d/40network/net-lib.sh
+++ b/modules.d/40network/net-lib.sh
@@ -443,7 +443,7 @@ wait_for_if_up() {
local li
while [ $cnt -lt 200 ]; do
li=$(ip -o link show up dev $1)
- [ -n "$li" ] && return 0
+ [ -n "$li" ] && [ -z "${li##*state UP*}" ] && return 0
sleep 0.1
cnt=$(($cnt+1))
done

View File

@ -1,73 +0,0 @@
From 7c8da72c11b74a1759e0ebbabe003d69a4459114 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 2 Dec 2013 10:36:42 +0100
Subject: [PATCH] network/net-lib.sh:iface_has_link() fixup
Just echo'ing the flags IFF_UP|IFF_RUNNING does _not_ reflect the
carrier state immediately. So wait for it to really show up.
---
modules.d/40network/net-lib.sh | 47 +++++++++++++++++++++---------------------
1 file changed, 23 insertions(+), 24 deletions(-)
diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh
index 0aa312a..7544401 100644
--- a/modules.d/40network/net-lib.sh
+++ b/modules.d/40network/net-lib.sh
@@ -28,30 +28,6 @@ iface_for_mac() {
done
}
-iface_has_link() {
- local interface="$1" flags=""
- [ -n "$interface" ] || return 2
- interface="/sys/class/net/$interface"
- [ -d "$interface" ] || return 2
- flags=$(cat $interface/flags)
- echo $(($flags|0x41)) > $interface/flags # 0x41: IFF_UP|IFF_RUNNING
- [ "$(cat $interface/carrier)" = 1 ] || return 1
- # XXX Do we need to reset the flags here? anaconda never bothered..
-}
-
-find_iface_with_link() {
- local iface_path="" iface=""
- for iface_path in /sys/class/net/*; do
- iface=${iface_path##*/}
- str_starts "$iface" "lo" && continue
- if iface_has_link $iface; then
- echo "$iface"
- return 0
- fi
- done
- return 1
-}
-
# get the iface name for the given identifier - either a MAC, IP, or iface name
iface_name() {
case $1 in
@@ -483,3 +459,26 @@ type hostname >/dev/null 2>&1 || \
hostname() {
cat /proc/sys/kernel/hostname
}
+
+iface_has_link() {
+ local interface="$1" flags=""
+ [ -n "$interface" ] || return 2
+ interface="/sys/class/net/$interface"
+ [ -d "$interface" ] || return 2
+ linkup "$1"
+ [ "$(cat $interface/carrier)" = 1 ] || return 1
+ # XXX Do we need to reset the flags here? anaconda never bothered..
+}
+
+find_iface_with_link() {
+ local iface_path="" iface=""
+ for iface_path in /sys/class/net/*; do
+ iface=${iface_path##*/}
+ str_starts "$iface" "lo" && continue
+ if iface_has_link $iface; then
+ echo "$iface"
+ return 0
+ fi
+ done
+ return 1
+}

View File

@ -1,25 +0,0 @@
From 271cd19dbe895c24b1f70fa5c6bbecace3b97f4d Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 2 Dec 2013 10:38:21 +0100
Subject: [PATCH] network/ifup.sh: before doing dhcp, check, if the link has a
carrier
---
modules.d/40network/ifup.sh | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/modules.d/40network/ifup.sh b/modules.d/40network/ifup.sh
index 9f6f449..2edcfe6 100755
--- a/modules.d/40network/ifup.sh
+++ b/modules.d/40network/ifup.sh
@@ -87,6 +87,10 @@ do_dhcp() {
# dhclient-script will mark the netif up and generate the online
# event for nfsroot
# XXX add -V vendor class and option parsing per kernel
+ if ! iface_has_link $netif; then
+ echo "No carrier detected"
+ return 1
+ fi
echo "Starting dhcp for interface $netif"
dhclient "$@" -1 -q -cf /etc/dhclient.conf -pf /tmp/dhclient.$netif.pid -lf /tmp/dhclient.$netif.lease $netif \
|| echo "dhcp failed"

View File

@ -1,39 +0,0 @@
From b92896ece49d27741f41e915c4673bde2a9bcb1f Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 2 Dec 2013 10:39:36 +0100
Subject: [PATCH] base/dracut-lib.sh:wait_for_dev() relax requirement
Do not "require" the devices, but "want" them. This might boot more
systems, where:
- the UUID changed
- swap devices do not show up
---
modules.d/99base/dracut-lib.sh | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
index 0670cf2..970bcfb 100755
--- a/modules.d/99base/dracut-lib.sh
+++ b/modules.d/99base/dracut-lib.sh
@@ -863,9 +863,9 @@ wait_for_dev()
if [ -n "$DRACUT_SYSTEMD" ]; then
_name=$(dev_unit_name "$1")
- if ! [ -L ${PREFIX}/etc/systemd/system/initrd.target.requires/${_name}.device ]; then
- [ -d ${PREFIX}/etc/systemd/system/initrd.target.requires ] || mkdir -p ${PREFIX}/etc/systemd/system/initrd.target.requires
- ln -s ../${_name}.device ${PREFIX}/etc/systemd/system/initrd.target.requires/${_name}.device
+ if ! [ -L ${PREFIX}/etc/systemd/system/initrd.target.wants/${_name}.device ]; then
+ [ -d ${PREFIX}/etc/systemd/system/initrd.target.wants ] || mkdir -p ${PREFIX}/etc/systemd/system/initrd.target.wants
+ ln -s ../${_name}.device ${PREFIX}/etc/systemd/system/initrd.target.wants/${_name}.device
fi
mkdir -p ${PREFIX}/etc/systemd/system/${_name}.device.d
@@ -885,7 +885,7 @@ cancel_wait_for_dev()
rm -f -- "$hookdir/emergency/80-${_name}.sh"
if [ -n "$DRACUT_SYSTEMD" ]; then
_name=$(dev_unit_name "$1")
- rm -f -- ${PREFIX}/etc/systemd/system/initrd.target.requires/${_name}.device
+ rm -f -- ${PREFIX}/etc/systemd/system/initrd.target.wants/${_name}.device
rm -f -- ${PREFIX}/etc/systemd/system/${_name}.device.d/timeout.conf
/sbin/initqueue --onetime --unique --name daemon-reload systemctl daemon-reload
fi

View File

@ -1,37 +0,0 @@
From 40da1e5a319a02f30c585e0e963e75e4257d2bf7 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 2 Dec 2013 10:45:17 +0100
Subject: [PATCH] resume: autoconf resume
---
modules.d/95resume/module-setup.sh | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/modules.d/95resume/module-setup.sh b/modules.d/95resume/module-setup.sh
index a172c27..ceb7855 100755
--- a/modules.d/95resume/module-setup.sh
+++ b/modules.d/95resume/module-setup.sh
@@ -16,8 +16,23 @@ check() {
}
# called by dracut
+cmdline() {
+ local _activated
+ declare -A _activated
+
+ for dev in "${!host_fs_types[@]}"; do
+ [[ ${host_fs_types[$dev]} =~ ^(swap|swsuspend|swsupend)$ ]] || continue
+ printf "resume=%s " "$(shorten_persistent_dev "$(get_persistent_dev "$dev")")"
+ done
+}
+
+# called by dracut
install() {
local _bin
+
+ cmdline >> "${initdir}/etc/cmdline.d/95resume.conf"
+ echo >> "${initdir}/etc/cmdline.d/95resume.conf"
+
# Optional uswsusp support
for _bin in /usr/sbin/resume /usr/lib/suspend/resume /usr/lib/uswsusp/resume
do

View File

@ -1,98 +0,0 @@
From 8064f68d602b45778afc3f32a703b8376609d019 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 2 Dec 2013 11:02:34 +0100
Subject: [PATCH] resume: no more autoresume
---
modules.d/95resume/parse-resume.sh | 76 +++++++++++++++++++++-----------------
1 file changed, 43 insertions(+), 33 deletions(-)
diff --git a/modules.d/95resume/parse-resume.sh b/modules.d/95resume/parse-resume.sh
index bd4bcd3..c84dafb 100755
--- a/modules.d/95resume/parse-resume.sh
+++ b/modules.d/95resume/parse-resume.sh
@@ -36,41 +36,51 @@ case "$splash" in
;;
esac
-if [ -n "$resume" ]; then
- {
- printf "KERNEL==\"%s\", ACTION==\"add|change\", SYMLINK+=\"/dev/resume\"\n" \
- ${resume#/dev/};
- printf "SYMLINK==\"%s\", ACTION==\"add|change\", SYMLINK+=\"/dev/resume\"\n" \
- ${resume#/dev/};
- } >> /etc/udev/rules.d/99-resume-link.rules
- {
- if [ -x /usr/sbin/resume ]; then
- printf "KERNEL==\"%s\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\", RUN+=\"/sbin/initqueue --finished --unique --name 00resume /usr/sbin/resume %s \'%s\'\"\n" \
- ${resume#/dev/} "$a_splash" "$resume";
- printf "SYMLINK==\"%s\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\", RUN+=\"/sbin/initqueue --finished --unique --name 00resume /usr/sbin/resume %s \'%s\'\"\n" \
- ${resume#/dev/} "$a_splash" "$resume";
- fi
- printf "KERNEL==\"%s\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\", RUN+=\"/sbin/initqueue --finished --unique --name 00resume echo %%M:%%m > /sys/power/resume\"\n" \
- ${resume#/dev/};
- printf "SYMLINK==\"%s\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\", RUN+=\"/sbin/initqueue --finished --unique --name 00resume echo %%M:%%m > /sys/power/resume\"\n" \
- ${resume#/dev/};
- } >> /etc/udev/rules.d/99-resume.rules
+if ! getarg noresume; then
+ if [ -n "$resume" ]; then
+ {
+ printf "KERNEL==\"%s\", ACTION==\"add|change\", SYMLINK+=\"/dev/resume\"\n" \
+ ${resume#/dev/};
+ printf "SYMLINK==\"%s\", ACTION==\"add|change\", SYMLINK+=\"/dev/resume\"\n" \
+ ${resume#/dev/};
+ } >> /etc/udev/rules.d/99-resume-link.rules
- printf '[ -e "%s" ] && { ln -s "%s" /dev/resume; rm -f -- "$job" "%s/initqueue/timeout/resume.sh"; }\n' \
- "$resume" "$resume" "$hookdir" >> $hookdir/initqueue/settled/resume.sh
+ {
+ if [ -x /usr/sbin/resume ]; then
+ printf -- "KERNEL==\"%s\", " "${resume#/dev/}"
+ printf -- "ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\","
+ printf -- " RUN+=\"/sbin/initqueue --finished --unique --name 00resume /usr/sbin/resume %s \'%s\'\"\n" \
+ "$a_splash" "$resume";
+ printf -- "SYMLINK==\"%s\", " "${resume#/dev/}"
+ printf -- "ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\","
+ printf -- " RUN+=\"/sbin/initqueue --finished --unique --name 00resume /usr/sbin/resume %s \'%s\'\"\n" \
+ "$a_splash" "$resume";
+ fi
+ printf -- "KERNEL==\"%s\", " ${resume#/dev/};
+ printf -- "ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\","
+ printf -- "%s" " RUN+=\"/sbin/initqueue --finished --unique --name 00resume echo %%M:%%m > /sys/power/resume\"\n"
+ printf -- "SYMLINK==\"%s\", " ${resume#/dev/};
+ printf -- "%s" "ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\","
+ printf -- "%s" " RUN+=\"/sbin/initqueue --finished --unique --name 00resume echo %%M:%%m > /sys/power/resume\"\n"
+ } >> /etc/udev/rules.d/99-resume.rules
- printf 'warn "Cancelling resume operation. Device not found."; cancel_wait_for_dev /dev/resume; rm -f -- "$job" "%s/initqueue/settled/resume.sh";' \
- "$hookdir" >> $hookdir/initqueue/timeout/resume.sh
+ printf '[ -e "%s" ] && { ln -s "%s" /dev/resume; rm -f -- "$job" "%s/initqueue/timeout/resume.sh"; }\n' \
+ "$resume" "$resume" "$hookdir" >> $hookdir/initqueue/settled/resume.sh
- wait_for_dev "/dev/resume"
- mv /lib/dracut/resume.sh /lib/dracut/hooks/pre-mount/10-resume.sh
-elif ! getarg noresume; then
- {
- if [ -x /usr/sbin/resume ]; then
- printf "SUBSYSTEM==\"block\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\", RUN+=\"/sbin/initqueue --finished --unique --name 00resume /usr/sbin/resume %s \$tempnode\"\n" "$a_splash"
- fi
- echo "SUBSYSTEM==\"block\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\"," \
- " RUN+=\"/sbin/initqueue --finished --unique --name 00resume echo %M:%m > /sys/power/resume\"";
- } >> /etc/udev/rules.d/99-resume.rules
+ printf -- "%s" 'warn "Cancelling resume operation. Device not found.";'
+ printf -- ' cancel_wait_for_dev /dev/resume; rm -f -- "$job" "%s/initqueue/settled/resume.sh";' \
+ "$hookdir" >> $hookdir/initqueue/timeout/resume.sh
+
+ mv /lib/dracut/resume.sh /lib/dracut/hooks/pre-mount/10-resume.sh
+ else
+ {
+ if [ -x /usr/sbin/resume ]; then
+ printf "SUBSYSTEM==\"block\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\","
+ printf -- " RUN+=\"/sbin/initqueue --finished --unique --name 00resume /usr/sbin/resume %s \$tempnode\"\n" "$a_splash"
+ fi
+ printf -- "%s" "SUBSYSTEM==\"block\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\","
+ printf -- "%s" " RUN+=\"/sbin/initqueue --finished --unique --name 00resume echo %M:%m > /sys/power/resume\"";
+ } >> /etc/udev/rules.d/99-resume.rules
+ fi
fi

View File

@ -1,22 +0,0 @@
From 64ae4e07a4af4db2cdd1009ab484f89b4a6b9cb2 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 2 Dec 2013 11:05:21 +0100
Subject: [PATCH] dracut.sh: skip crypt swaps with password files
---
dracut.sh | 2 ++
1 file changed, 2 insertions(+)
diff --git a/dracut.sh b/dracut.sh
index 177b813..6975d90 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -947,6 +947,8 @@ if [[ $hostonly ]]; then
[[ $_mapper = \#* ]] && continue
[[ "$_d" -ef /dev/mapper/"$_mapper" ]] || continue
[[ "$_o" ]] || _o="$_p"
+ # skip entries with password files
+ [[ "$_p" == /* ]] && [[ -f $_p ]] && continue 2
# skip mkswap swap
[[ $_o == *swap* ]] && continue 2
done < /etc/crypttab

View File

@ -1,41 +0,0 @@
From b29cb51654db13706c7356aa827e554456b25b0a Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 5 Dec 2013 15:06:06 +0100
Subject: [PATCH] dracut-functions.sh: do not force require modules.builtin*
---
dracut-functions.sh | 7 -------
dracut.sh | 2 +-
2 files changed, 1 insertion(+), 8 deletions(-)
diff --git a/dracut-functions.sh b/dracut-functions.sh
index 2872516..04f4fea 100755
--- a/dracut-functions.sh
+++ b/dracut-functions.sh
@@ -1456,13 +1456,6 @@ dracut_kernel_post() {
wait $_pid
fi
- for _f in modules.builtin.bin modules.builtin; do
- [[ $srcmods/$_f ]] && break
- done || {
- dfatal "No modules.builtin.bin and modules.builtin found!"
- return 1
- }
-
for _f in modules.builtin.bin modules.builtin modules.order; do
[[ $srcmods/$_f ]] && inst_simple "$srcmods/$_f" "/lib/modules/$kernel/$_f"
done
diff --git a/dracut.sh b/dracut.sh
index 6975d90..5709874 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -501,7 +501,7 @@ if [[ $regenerate_all == "yes" ]]; then
cd /lib/modules
for i in *; do
- [[ -f $i/modules.builtin ]] || continue
+ [[ -f $i/modules.dep ]] || [[ -f $i/modules.dep.bin ]] || continue
dracut --kver="$i" "${dracut_args[@]}"
((ret+=$?))
done

View File

@ -1,56 +0,0 @@
From 443fb524877f28fd072f63c4dd98b74926d2513a Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 5 Dec 2013 15:06:39 +0100
Subject: [PATCH] 10i18n/parse-i18n.sh: fixed vconsole.conf/locale.conf
generation
---
modules.d/10i18n/parse-i18n.sh | 27 +++++++++++++--------------
1 file changed, 13 insertions(+), 14 deletions(-)
diff --git a/modules.d/10i18n/parse-i18n.sh b/modules.d/10i18n/parse-i18n.sh
index 416a746..135c57b 100755
--- a/modules.d/10i18n/parse-i18n.sh
+++ b/modules.d/10i18n/parse-i18n.sh
@@ -6,28 +6,27 @@ inst_key_val() {
local _value
local _file
local _default
- _default=$1
- shift
- _file=$1
- shift
- _value=$(getarg $@)
+ _file="$1"; shift
+ _key="$1"; shift
+ _default="$1"; shift
+ _value="$(getarg $@)"
[ -z "${_value}" ] && _value=$_default
if [ -n "${_value}" ]; then
- printf '%s="%s"\n' $2 ${_value} >> $_file
+ printf '%s="%s"\n' $key ${_value} >> $_file
fi
unset _file
unset _value
}
-inst_key_val '' /etc/vconsole.conf rd.vconsole.keymap vconsole.keymap KEYMAP -d KEYTABLE
-inst_key_val '' /etc/vconsole.conf rd.vconsole.font vconsole.font FONT -d SYSFONT
-inst_key_val '' /etc/vconsole.conf rd.vconsole.font.map vconsole.font.map FONT_MAP -d CONTRANS
-inst_key_val '' /etc/vconsole.conf rd.vconsole.font.unimap vconsole.font.unimap FONT_UNIMAP -d UNIMAP
-inst_key_val 1 /etc/vconsole.conf rd.vconsole.font.unicode vconsole.font.unicode UNICODE vconsole.unicode
-inst_key_val '' /etc/vconsole.conf rd.vconsole.keymap.ext vconsole.keymap.ext EXT_KEYMAP
+inst_key_val /etc/vconsole.conf KEYMAP '' rd.vconsole.keymap KEYMAP -d KEYTABLE
+inst_key_val /etc/vconsole.conf FONT '' rd.vconsole.font FONT -d SYSFONT
+inst_key_val /etc/vconsole.conf FONT_MAP '' rd.vconsole.font.map FONT_MAP -d CONTRANS
+inst_key_val /etc/vconsole.conf FONT_UNIMAP '' rd.vconsole.font.unimap FONT_UNIMAP -d UNIMAP
+inst_key_val /etc/vconsole.conf UNICODE 1 rd.vconsole.font.unicode UNICODE vconsole.unicode
+inst_key_val /etc/vconsole.conf EXT_KEYMAP '' rd.vconsole.keymap.ext EXT_KEYMAP
-inst_key_val '' /etc/locale.conf rd.locale.LANG locale.LANG LANG
-inst_key_val '' /etc/locale.conf rd.locale.LC_ALL locale.LC_ALL LC_ALL
+inst_key_val /etc/locale.conf LANG '' rd.locale.LANG LANG
+inst_key_val /etc/locale.conf LC_ALL '' rd.locale.LC_ALL LC_ALL
if [ -f /etc/locale.conf ]; then
. /etc/locale.conf

View File

@ -1,34 +0,0 @@
From 690905cea07bdf1783c86522927efb5fd9b5a299 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Fri, 29 Nov 2013 13:13:42 +0100
Subject: [PATCH] 95dasd: Install kernel modules only once
Move kernel module selection to 95dasd_mod and make 95dasd depend
on that module.
Signed-off-by: Hannes Reinecke <hare@suse.de>
---
modules.d/95dasd/module-setup.sh | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/modules.d/95dasd/module-setup.sh b/modules.d/95dasd/module-setup.sh
index 861df29..16207bc 100755
--- a/modules.d/95dasd/module-setup.sh
+++ b/modules.d/95dasd/module-setup.sh
@@ -11,15 +11,11 @@ check() {
# called by dracut
depends() {
+ echo "dasd_mod"
return 0
}
# called by dracut
-installkernel() {
- instmods dasd_mod dasd_eckd_mod dasd_fba_mod dasd_diag_mod
-}
-
-# called by dracut
install() {
inst_hook cmdline 30 "$moddir/parse-dasd.sh"
inst_multiple dasdinfo dasdconf.sh normalize_dasd_arg

View File

@ -1,25 +0,0 @@
From 07cacb245547066c7b6a335509a0ed77ad227372 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Fri, 29 Nov 2013 13:13:43 +0100
Subject: [PATCH] 95dasd: Only install module if normalize_dasd_arg is present
normalize_dasd_arg is a RedHat specific script, so no point
installing this module if the script isn't present.
Signed-off-by: Hannes Reinecke <hare@suse.de>
---
modules.d/95dasd/module-setup.sh | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules.d/95dasd/module-setup.sh b/modules.d/95dasd/module-setup.sh
index 16207bc..9c93d40 100755
--- a/modules.d/95dasd/module-setup.sh
+++ b/modules.d/95dasd/module-setup.sh
@@ -5,6 +5,7 @@
# called by dracut
check() {
local _arch=$(uname -m)
+ [ -x /sbin/normalize_dasd_arg ] || return 1
[ "$_arch" = "s390" -o "$_arch" = "s390x" ] || return 1
return 0
}

View File

@ -1,38 +0,0 @@
From 8b2b77e460663b3fe45e0eea2f4a5babe4b731bc Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Fri, 29 Nov 2013 13:13:44 +0100
Subject: [PATCH] 95dasd_mod: make dasd_cio_free optional
dasd_cio_free is a RedHat-specific tool, so make it optional.
Signed-off-by: Hannes Reinecke <hare@suse.de>
---
modules.d/95dasd_mod/module-setup.sh | 3 ++-
modules.d/95dasd_mod/parse-dasd-mod.sh | 4 +++-
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/modules.d/95dasd_mod/module-setup.sh b/modules.d/95dasd_mod/module-setup.sh
index 011010d..8fde525 100755
--- a/modules.d/95dasd_mod/module-setup.sh
+++ b/modules.d/95dasd_mod/module-setup.sh
@@ -23,6 +23,7 @@ installkernel() {
# called by dracut
install() {
inst_hook cmdline 31 "$moddir/parse-dasd-mod.sh"
- inst_multiple dasd_cio_free grep sed seq
+ inst_multiple grep sed seq
+ inst_multiple -o dasd_cio_free
}
diff --git a/modules.d/95dasd_mod/parse-dasd-mod.sh b/modules.d/95dasd_mod/parse-dasd-mod.sh
index 87c88ed..0236d12 100755
--- a/modules.d/95dasd_mod/parse-dasd-mod.sh
+++ b/modules.d/95dasd_mod/parse-dasd-mod.sh
@@ -15,4 +15,6 @@ if [ -n "$mod_args" ]; then
fi
unset dasd_arg
-dasd_cio_free
+if [ -x /sbin/dasd_cio_free ] ; then
+ dasd_cio_free
+fi

View File

@ -1,35 +0,0 @@
From 61c0665dad633fdd2358a1a2ce5d25d282673c1a Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Fri, 29 Nov 2013 13:13:45 +0100
Subject: [PATCH] 95zfcp: Make installation optional
zfcp_cio_free is a RedHat-specific tool, so do not install this
module if the program isn't present.
Signed-off-by: Hannes Reinecke <hare@suse.de>
---
modules.d/95zfcp/module-setup.sh | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/modules.d/95zfcp/module-setup.sh b/modules.d/95zfcp/module-setup.sh
index 5d9b506..dfbeed5 100755
--- a/modules.d/95zfcp/module-setup.sh
+++ b/modules.d/95zfcp/module-setup.sh
@@ -5,6 +5,7 @@
# called by dracut
check() {
arch=$(uname -m)
+ [ -x /sbin/zfcp_cio_free ] || return 1
[ "$arch" = "s390" -o "$arch" = "s390x" ] || return 1
return 0
@@ -12,9 +13,6 @@ check() {
# called by dracut
depends() {
- arch=$(uname -m)
- [ "$arch" = "s390" -o "$arch" = "s390x" ] || return 1
-
return 0
}

View File

@ -1,25 +0,0 @@
From dda7ae7dcdde7f9a00bbaebc7df7fbd7ed2f8ff0 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Fri, 29 Nov 2013 13:13:46 +0100
Subject: [PATCH] 95znet: Make installation optional
znet_cio_free is a RedHat-specific tool, so do not install this
module on systems where the program is missing.
Signed-off-by: Hannes Reinecke <hare@suse.de>
---
modules.d/95znet/module-setup.sh | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules.d/95znet/module-setup.sh b/modules.d/95znet/module-setup.sh
index 4c211a9..5012b77 100755
--- a/modules.d/95znet/module-setup.sh
+++ b/modules.d/95znet/module-setup.sh
@@ -5,6 +5,7 @@
# called by dracut
check() {
arch=$(uname -m)
+ [ -z /sbin/znet_cio_free ] || return 1
[ "$arch" = "s390" -o "$arch" = "s390x" ] || return 1
return 0

View File

@ -1,152 +0,0 @@
From bfa1db78cdcf6aaea09da560b578426fe663a05e Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Fri, 29 Nov 2013 13:13:47 +0100
Subject: [PATCH] Add DASD configuration for SuSE
On SuSE the DASD configuration is kept in udev rules, one rule
file per device. So add a new module for copying and creating
these rules during boot.
Signed-off-by: Hannes Reinecke <hare@suse.de>
---
dracut-functions.sh | 28 +++++++++++++++++
modules.d/95dasd_rules/module-setup.sh | 27 ++++++++++++++++
modules.d/95dasd_rules/parse-dasd.sh | 56 ++++++++++++++++++++++++++++++++++
3 files changed, 111 insertions(+)
create mode 100755 modules.d/95dasd_rules/module-setup.sh
create mode 100755 modules.d/95dasd_rules/parse-dasd.sh
diff --git a/dracut-functions.sh b/dracut-functions.sh
index 04f4fea..7cfa097 100755
--- a/dracut-functions.sh
+++ b/dracut-functions.sh
@@ -899,6 +899,34 @@ inst_rules() {
done
}
+inst_rules_wildcard() {
+ local _target=/etc/udev/rules.d _rule _found
+
+ inst_dir "${udevdir}/rules.d"
+ inst_dir "$_target"
+ for _rule in ${udevdir}/rules.d/$1 ${dracutbasedir}/rules.d/$1 ; do
+ if [[ -e $_rule ]]; then
+ inst_rule_programs "$_rule"
+ inst_rule_group_owner "$_rule"
+ inst_rule_initqueue "$_rule"
+ inst_simple "$_rule"
+ _found=$_rule
+ fi
+ done
+ if [ -n ${hostonly} ] ; then
+ for _rule in ${_target}/$1 ; do
+ if [[ -f $_rule ]]; then
+ inst_rule_programs "$_rule"
+ inst_rule_group_owner "$_rule"
+ inst_rule_initqueue "$_rule"
+ inst_simple "$_rule"
+ _found=$_rule
+ fi
+ done
+ fi
+ [[ $_found ]] || dinfo "Skipping udev rule: $_rule"
+}
+
prepare_udev_rules() {
[ -z "$UDEVVERSION" ] && export UDEVVERSION=$(udevadm --version)
diff --git a/modules.d/95dasd_rules/module-setup.sh b/modules.d/95dasd_rules/module-setup.sh
new file mode 100755
index 0000000..d313171
--- /dev/null
+++ b/modules.d/95dasd_rules/module-setup.sh
@@ -0,0 +1,27 @@
+#!/bin/bash
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+# ex: ts=8 sw=4 sts=4 et filetype=sh
+
+# called by dracut
+check() {
+ local _arch=$(uname -m)
+ [ -x /sbin/dasd_configure ] || return 1
+ [ "$_arch" = "s390" -o "$_arch" = "s390x" ] || return 1
+ return 0
+}
+
+# called by dracut
+depends() {
+ echo 'dasd_mod'
+ return 0
+}
+
+# called by dracut
+install() {
+ inst_multiple /usr/lib/udev/collect
+ inst_hook cmdline 30 "$moddir/parse-dasd.sh"
+ if [[ $hostonly ]] ; then
+ inst_rules_wildcard 51-dasd-*.rules
+ fi
+ inst_rules 59-dasd.rules
+}
diff --git a/modules.d/95dasd_rules/parse-dasd.sh b/modules.d/95dasd_rules/parse-dasd.sh
new file mode 100755
index 0000000..9389c44
--- /dev/null
+++ b/modules.d/95dasd_rules/parse-dasd.sh
@@ -0,0 +1,56 @@
+#!/bin/sh
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+# ex: ts=8 sw=4 sts=4 et filetype=sh
+
+create_udev_rule() {
+ local ccw=$1
+ local _drv _cu_type _dev_type
+ local _rule=/etc/udev/rules.d/51-dasd-${ccw}.rules
+
+ if [ -e /sys/bus/ccw/devices/${ccw} ] ; then
+ read _cu_type < /sys/bus/ccw/devices/${ccw}/cutype
+ read _dev_type < /sys/bus/ccw/devices/${ccw}/devtype
+ fi
+ case "$_cu_type" in
+ 3990/*|2105/*|2107/*|1750/*|9343/*)
+ _drv=dasd-eckd
+ ;;
+ 6310/*)
+ _drv=dasd-fba
+ ;;
+ 3880/*)
+ case "$_dev_type" in
+ 3380/*)
+ _drv=dasd_eckd
+ ;;
+ 3370/*)
+ _drv=dasd-fba
+ ;;
+ esac
+ ;;
+ esac
+ [ -z "${_drv}" ] && return 0
+
+ [ -e ${_rule} ] && return 0
+
+ cat > $_rule <<EOF
+ACTION=="add", SUBSYSTEM=="ccw", KERNEL=="$ccw", IMPORT{program}="collect $ccw %k ${ccw} $_drv"
+ACTION=="add", SUBSYSTEM=="drivers", KERNEL=="$_drv", IMPORT{program}="collect $ccw %k ${ccw} $_drv"
+ACTION=="add", ENV{COLLECT_$ccw}=="0", ATTR{[ccw/$ccw]online}="1"
+EOF
+}
+
+for dasd_arg in $(getargs root=) $(getargs resume=); do
+ (
+ case $dasd_arg in
+ /dev/disk/by-path/ccw-*)
+ ccw_arg=${dasd_arg##*/}
+ break;
+ esac
+ if [ -n "$ccw_arg" ] ; then
+ IFS="-"
+ set -- $ccw_arg
+ create_udev_rule $2
+ fi
+ )
+done

View File

@ -1,118 +0,0 @@
From d6f0467edf3895143713eab579f48df2be140178 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Fri, 29 Nov 2013 13:13:48 +0100
Subject: [PATCH] Add zfcp scripts for SUSE
SuSE is storing the zfcp configuration in udev files, so we should
be including these.
Signed-off-by: Hannes Reinecke <hare@suse.de>
---
modules.d/95zfcp_rules/module-setup.sh | 25 +++++++++++++
modules.d/95zfcp_rules/parse-zfcp.sh | 65 ++++++++++++++++++++++++++++++++++
2 files changed, 90 insertions(+)
create mode 100755 modules.d/95zfcp_rules/module-setup.sh
create mode 100755 modules.d/95zfcp_rules/parse-zfcp.sh
diff --git a/modules.d/95zfcp_rules/module-setup.sh b/modules.d/95zfcp_rules/module-setup.sh
new file mode 100755
index 0000000..9a1ab20
--- /dev/null
+++ b/modules.d/95zfcp_rules/module-setup.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+# ex: ts=8 sw=4 sts=4 et filetype=sh
+
+# called by dracut
+check() {
+ local _arch=$(uname -m)
+ [ -x /sbin/zfcp_disk_configure ] || return 1
+ [ "$_arch" = "s390" -o "$_arch" = "s390x" ] || return 1
+ return 0
+}
+
+# called by dracut
+depends() {
+ return 0
+}
+
+# called by dracut
+install() {
+ inst_multiple /usr/lib/udev/collect
+ inst_hook cmdline 30 "$moddir/parse-zfcp.sh"
+ if [[ $hostonly ]] ; then
+ inst_rules_wildcard 51-zfcp-*.rules
+ fi
+}
diff --git a/modules.d/95zfcp_rules/parse-zfcp.sh b/modules.d/95zfcp_rules/parse-zfcp.sh
new file mode 100755
index 0000000..24dbdd3
--- /dev/null
+++ b/modules.d/95zfcp_rules/parse-zfcp.sh
@@ -0,0 +1,65 @@
+#!/bin/sh
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+# ex: ts=8 sw=4 sts=4 et filetype=sh
+
+create_udev_rule() {
+ local ccw=$1
+ local wwpn=$2
+ local lun=$3
+ local _rule=/etc/udev/rules.d/51-zfcp-${ccw}.rules
+
+ local _cu_type _dev_type
+ local _rule=/etc/udev/rules.d/51-zfcp-${ccw}.rules
+
+ if [ -e /sys/bus/ccw/devices/${ccw} ] ; then
+ read _cu_type < /sys/bus/ccw/devices/${ccw}/cutype
+ read _dev_type < /sys/bus/ccw/devices/${ccw}/devtype
+ fi
+ if [ "$_cu_type" != "1731/03" ] ; then
+ return 0;
+ fi
+ if [ "$_dev_type" != "1732/03" ] && [ "$_dev_type" != "1732/04" ] ; then
+ return 0;
+ fi
+
+ [ -e ${_rule} ] && return 0
+
+ if [ ! -f "$_rule" ] ; then
+ cat > $_rule <<EOF
+ACTION=="add", SUBSYSTEM=="ccw", KERNEL=="$ccw", IMPORT{program}="collect $ccw %k ${ccw} zfcp"
+ACTION=="add", SUBSYSTEM=="drivers", KERNEL=="zfcp", IMPORT{program}="collect $ccw %k ${ccw} zfcp"
+ACTION=="add", ENV{COLLECT_$ccw}=="0", ATTR{[ccw/$ccw]online}="1"
+EOF
+ fi
+ m=$(sed -n "/.*${wwpn}.*${lun}.*/p" $_rule)
+ if [ -z "$m" ] ; then
+ cat >> $_rule <<EOF
+ACTION=="add", KERNEL=="rport-*", ATTR{port_name}=="$wwpn", SUBSYSTEMS=="ccw", KERNELS=="$ccw", ATTR{[ccw/$ccw]$wwpn/unit_add}="$lun"
+EOF
+ fi
+}
+
+for zfcp_arg in $(getargs rd.zfcp); do
+ (
+ IFS=","
+ set $zfcp_arg
+ create_udev_rule $1 $2 $3
+ )
+done
+
+for zfcp_arg in $(getargs root=) $(getargs resume=); do
+ (
+ case $zfcp_arg in
+ /dev/disk/by-path/ccw-*)
+ ccw_arg=${zfcp_arg##*/}
+ break;
+ esac
+ if [ -n "$ccw_arg" ] ; then
+ IFS="-"
+ set -- $ccw_arg
+ wwpn=${4%:*}
+ lun=${4#*:}
+ create_udev_rule $2 $wwpn $lun
+ fi
+ )
+done

View File

@ -1,67 +0,0 @@
From ee54b8404c10e29e5bddb633a4c7becb7acb0632 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Fri, 29 Nov 2013 13:13:49 +0100
Subject: [PATCH] Make logfile configurable
Add '--logfile' option to make the log file configurable during
runtime.
Signed-off-by: Hannes Reinecke <hare@suse.de>
---
dracut.8.asc | 6 ++++++
dracut.sh | 4 ++++
2 files changed, 10 insertions(+)
diff --git a/dracut.8.asc b/dracut.8.asc
index 2ea6744..d381dcf 100644
--- a/dracut.8.asc
+++ b/dracut.8.asc
@@ -275,6 +275,12 @@ Default:
**--sshkey** _<sshkey file>_:: ssh key file used with ssh-client module.
+**--logfile** _<logfile>_:: logfile to use; overrides any setting from
+ the configuration files.
++
+Default:
+ _/var/log/dracut.log_
+
**-l, --local**::
activates the local mode. dracut will use modules from the current working
directory instead of the system-wide installed modules in
diff --git a/dracut.sh b/dracut.sh
index 5709874..11dcd0e 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -183,6 +183,7 @@ Creates initial ramdisk images for preloading modules
--keep Keep the temporary initramfs for debugging purposes
--printsize Print out the module install size
--sshkey [SSHKEY] Add ssh key to initramfs (use with ssh-client module)
+ --logfile [FILE] Logfile to use (overrides configuration setting)
If [LIST] has multiple arguments, then you have to put these in quotes.
@@ -335,6 +336,7 @@ TEMP=$(unset POSIXLY_CORRECT; getopt \
--long debug \
--long profile \
--long sshkey: \
+ --long logfile: \
--long verbose \
--long quiet \
--long local \
@@ -418,6 +420,7 @@ while :; do
--debug) debug="yes";;
--profile) profile="yes";;
--sshkey) sshkey="$2"; shift;;
+ --logfile) logfile_l="$2"; shift;;
-v|--verbose) ((verbosity_mod_l++));;
-q|--quiet) ((verbosity_mod_l--));;
-l|--local)
@@ -690,6 +693,7 @@ stdloglvl=$((stdloglvl + verbosity_mod_l))
[[ $ro_mnt_l ]] && ro_mnt="yes"
[[ $early_microcode_l ]] && early_microcode=$early_microcode_l
[[ $early_microcode ]] || early_microcode=no
+[[ $logfile_l ]] && logfile="$logfile_l"
# eliminate IFS hackery when messing with fw_dir
fw_dir=${fw_dir//:/ }

View File

@ -1,375 +0,0 @@
From 2b3e22d60246e7c8bfa96a6d7504fb0bfa67e641 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Fri, 29 Nov 2013 13:13:50 +0100
Subject: [PATCH] mkinitrd-suse: Add SUSE compability wrapper for dracut
SUSE has its own mkinitrd system. As the arguments clash
with the dracut-provided mkinitrd script I've added a new
mkinitrd-suse.sh wrapper.
Signed-off-by: Hannes Reinecke <hare@suse.de>
---
mkinitrd-suse.sh | 354 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 354 insertions(+)
create mode 100755 mkinitrd-suse.sh
diff --git a/mkinitrd-suse.sh b/mkinitrd-suse.sh
new file mode 100755
index 0000000..d20270a
--- /dev/null
+++ b/mkinitrd-suse.sh
@@ -0,0 +1,354 @@
+#!/bin/bash --norc
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+# ex: ts=8 sw=4 sts=4 et filetype=sh
+#
+# mkinitrd compability wrapper for SUSE.
+#
+# Copyright (c) 2013 SUSE Linux Products GmbH. All rights reserved.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+
+boot_dir="/boot"
+quiet=0
+host_only=1
+force=0
+logfile=/var/log/YaST2/mkinitrd.log
+dracut_cmd=dracut
+
+error() { echo "$@" >&2; }
+
+usage () {
+ [[ $1 = '-n' ]] && cmd=echo || cmd=error
+
+ $cmd "usage: ${0##*/} [options]"
+ $cmd ""
+ $cmd " Create initial ramdisk images that contain all kernel modules needed"
+ $cmd " in the early boot process, before the root file system becomes"
+ $cmd " available."
+ $cmd " This usually includes SCSI and/or RAID modules, a file system module"
+ $cmd " for the root file system, or a network interface driver module for dhcp."
+ $cmd ""
+ $cmd " options:"
+ $cmd " -f \"feature list\" Features to be enabled when generating initrd."
+ $cmd " Available features are:"
+ $cmd " iscsi, md, multipath, lvm, lvm2,"
+ $cmd " ifup, fcoe, dcbd"
+ $cmd " -k \"kernel list\" List of kernel images for which initrd files are"
+ $cmd " created. Defaults to all kernels found in /boot."
+ $cmd " -i \"initrd list\" List of file names for the initrd; position have"
+ $cmd " match to \"kernel list\". Defaults to all kernels"
+ $cmd " found in /boot."
+ $cmd " -b boot_dir Boot directory. Defaults to /boot."
+ $cmd " -t tmp_dir Temporary directory. Defaults to /var/tmp."
+ $cmd " -M map System.map file to use."
+ $cmd " -A Create a so called \"monster initrd\" which"
+ $cmd " includes all features and modules possible."
+ $cmd " -B Do not update bootloader configuration."
+ $cmd " -v Verbose mode."
+ $cmd " -L Disable logging."
+ $cmd " -h This help screen."
+ $cmd " -m \"module list\" Modules to include in initrd. Defaults to the"
+ $cmd " INITRD_MODULES variable in /etc/sysconfig/kernel"
+ $cmd " -u \"DomU module list\" Modules to include in initrd. Defaults to the"
+ $cmd " DOMU_INITRD_MODULES variable in"
+ $cmd " /etc/sysconfig/kernel."
+ $cmd " -d root_device Root device. Defaults to the device from"
+ $cmd " which / is mounted. Overrides the rootdev"
+ $cmd " enviroment variable if set."
+ $cmd " -j device Journal device"
+ $cmd " -D interface Run dhcp on the specified interface."
+ $cmd " -I interface Configure the specified interface statically."
+ $cmd " -a acpi_dsdt Attach compiled ACPI DSDT (Differentiated"
+ $cmd " System Description Table) to initrd. This"
+ $cmd " replaces the DSDT of the BIOS. Defaults to"
+ $cmd " the ACPI_DSDT variable in /etc/sysconfig/kernel."
+ $cmd " -s size Add splash animation and bootscreen to initrd."
+
+ [[ $1 = '-n' ]] && exit 0
+ exit 1
+}
+
+# Little helper function for reading args from the commandline.
+# it automatically handles -a b and -a=b variants, and returns 1 if
+# we need to shift $3.
+read_arg() {
+ # $1 = arg name
+ # $2 = arg value
+ # $3 = arg parameter
+ param="$1"
+ local rematch='^[^=]*=(.*)$' result
+ if [[ $2 =~ $rematch ]]; then
+ read "$param" <<< "${BASH_REMATCH[1]}"
+ else
+ for ((i=3; $i <= $#; i++)); do
+ # Only read next arg if it not an arg itself.
+ if [[ ${@:$i:1} = -* ]];then
+ break
+ fi
+ result="$result ${@:$i:1}"
+ # There is no way to shift our callers args, so
+ # return "no of args" to indicate they should do it instead.
+ done
+ read "$1" <<< "$result"
+ return $(($i - 3))
+ fi
+}
+
+# Helper functions to calculate ipconfig command line
+calc_netmask() {
+ local prefix=$1
+
+ [ -z "$prefix" ] && return
+ mask=$(echo "(2 ^ 32) - (2 ^ $prefix)" | bc -l)
+ byte1=$(( mask >> 24 ))
+ byte2=$(( mask >> 16 ))
+ byte3=$(( mask >> 8 ))
+ byte4=$(( mask & 0xff ))
+ netmask=$(printf "%d.%d.%d.%d" $(( byte1 & 0xff )) $(( byte2 & 0xff )) $(( byte3 & 0xff )) $byte4);
+
+ echo $netmask
+}
+
+ipconfig() {
+ local interface=$1
+ local iplink macaddr broadcast gateway ipaddr prefix netmask
+
+ iplink=$(ip addr show dev $interface | sed -n 's/ *inet \(.*\) brd.*/\1/p')
+ macaddr=$(ip addr show dev $interface | sed -n 's/.*ether \(.*\) brd.*/\1/p')
+ broadcast=$(ip addr show dev $interface | sed -n 's/.*brd \(.*\) scope.*/\1/p')
+ gateway=$(ip route show dev $interface | sed -n 's/default via \([0-9\.]*\).*/\1/p')
+
+ ipaddr=${iplink%%/*}
+ prefix=${iplink##*/}
+ netmask=$(calc_netmask $prefix)
+
+ echo "${ipaddr}:${serveraddr}:${gateway}:${netmask}:${hostname}:${interface}:none::${macaddr}"
+}
+
+is_xen_kernel() {
+ local kversion=$1
+ local root_dir=$2
+ local cfg
+
+ for cfg in ${root_dir}/boot/config-$kversion $root_dir/lib/modules/$kversion/build/.config
+ do
+ test -r $cfg || continue
+ grep -q "^CONFIG_XEN=y\$" $cfg
+ return
+ done
+ test $kversion != "${kversion%-xen*}"
+ return
+}
+
+
+# Taken over from SUSE mkinitrd
+default_kernel_images() {
+ local regex kernel_image kernel_version version_version initrd_image
+ local qf='%{NAME}-%{VERSION}-%{RELEASE}\n'
+
+ case "$(uname -m)" in
+ s390|s390x)
+ regex='image'
+ ;;
+ ppc|ppc64)
+ regex='vmlinux'
+ ;;
+ i386|x86_64)
+ regex='vmlinuz'
+ ;;
+ arm*)
+ regex='[uz]Image'
+ ;;
+ aarch64)
+ regex='Image'
+ ;;
+ *) regex='vmlinu.'
+ ;;
+ esac
+
+ kernel_images=""
+ initrd_images=""
+ for kernel_image in $(ls $boot_dir \
+ | sed -ne "\|^$regex\(-[0-9.]\+-[0-9]\+-[a-z0-9]\+$\)\?|p" \
+ | grep -v kdump$ ) ; do
+
+ # Note that we cannot check the RPM database here -- this
+ # script is itself called from within the binary kernel
+ # packages, and rpm does not allow recursive calls.
+
+ [ -L "$boot_dir/$kernel_image" ] && continue
+ [ "${kernel_image%%.gz}" != "$kernel_image" ] && continue
+ kernel_version=$(/usr/bin/get_kernel_version \
+ $boot_dir/$kernel_image 2> /dev/null)
+ initrd_image=$(echo $kernel_image | sed -e "s|${regex}|initrd|")
+ if [ "$kernel_image" != "$initrd_image" -a \
+ -n "$kernel_version" -a \
+ -d "/lib/modules/$kernel_version" ]; then
+ kernel_images="$kernel_images $boot_dir/$kernel_image"
+ initrd_images="$initrd_images $boot_dir/$initrd_image"
+ fi
+ done
+ for kernel_image in $kernel_images;do
+ kernels="$kernels ${kernel_image#*-}"
+ done
+ for initrd_image in $initrd_images;do
+ targets="$targets $initrd_image"
+ done
+ host_only=1
+ force=1
+}
+
+while (($# > 0)); do
+ case ${1%%=*} in
+ -f) read_arg feature_list "$@" || shift $?
+ # Could be several features
+ ;;
+ -k) # Would be nice to get a list of images here
+ read_arg kernel_images "$@" || shift $?
+ for kernel_image in $kernel_images;do
+ kernels="$kernels ${kernel_image#*-}"
+ done
+ host_only=1
+ force=1
+ ;;
+ -i) read_arg initrd_images "$@" || shift $?
+ for initrd_image in $initrd_images;do
+ # Check if the initrd_image contains a path.
+ # if not, then add the default boot_dir
+ dname=`dirname $initrd_image`
+ if [ "$dname" == "." ]; then
+ targets="$targets $boot_dir/$initrd_image";
+ else
+ targets="$targets $initrd_image";
+ fi
+ done
+ ;;
+ -b) read_arg boot_dir "$@" || shift $?
+ if [ ! -d $boot_dir ];then
+ error "Boot directory $boot_dir does not exist"
+ exit 1
+ fi
+ ;;
+ -t) read_arg tmp_dir "$@" || shift $?
+ dracut_args="${dracut_args} --tmpdir $tmp_dir"
+ ;;
+ -M) read_arg map_file "$@" || shift $?
+ ;;
+ -A) host_only=0;;
+ -B) skip_update_bootloader=1;;
+ -v|--verbose) dracut_args="${dracut_args} -v";;
+ -L) logfile=;;
+ -h|--help) usage -n;;
+ -m) read_arg module_list "$@" || shift $? ;;
+ -u) read_arg domu_module_list "$@" || shift $?
+ echo "mkinitrd: DomU modules not yet supported" ;;
+ -d) read_arg rootfs "$@" || shift $?
+ dracut_args="${dracut_args} --filesystems $rootfs" ;;
+ -D) read_arg dhcp_if "$@" || shift $?
+ dracut_cmdline="${dracut_cmdline} ip=${dhcp_if}:dhcp"
+ ;;
+ -I) read_arg static_if "$@" || shift $?
+ dracut_cmdline="${dracut_cmdline} ip=$(ipconfig $static_if)":
+ ;;
+ -a) read_arg acpi_dsdt "$@" || shift $?
+ echo "mkinitrd: custom DSDT not yet supported"
+ exit 1
+ ;;
+ -s) read_arg boot_splash "$@" || shift $?
+ echo "mkinitrd: boot splash not yet supported"
+ exit 1
+ ;;
+ -V) echo "mkinitrd: vendor scipts are no longer supported"
+ exit 1;;
+ --dracut)
+ read_arg dracut_cmd "$@" || shift $? ;;
+ --version|-R)
+ echo "mkinitrd: dracut compatibility wrapper"
+ exit 0;;
+ --force) force=1;;
+ --quiet|-q) quiet=1;;
+ *) if [[ ! $targets ]]; then
+ targets=$1
+ elif [[ ! $kernels ]]; then
+ kernels=$1
+ else
+ usage
+ fi;;
+ esac
+ shift
+done
+
+[[ $targets && $kernels ]] || default_kernel_images
+[[ $targets && $kernels ]] || (error "No kernel found in $boot_dir" && usage)
+
+# We can have several targets/kernels, transform the list to an array
+targets=( $targets )
+[[ $kernels ]] && kernels=( $kernels )
+
+[[ $logfile ]] && dracut_args="${dracut_args} --logfile $logfile"
+[[ $host_only == 1 ]] && dracut_args="${dracut_args} --hostonly"
+[[ $force == 1 ]] && dracut_args="${dracut_args} --force"
+[[ $dracut_cmdline ]] && dracut_args="${dracut_args} --kernel-cmdline ${dracut_cmdline}"
+[ -z "$(type -p update-bootloader)" ] && skip_update_bootloader=1
+
+# Update defaults from /etc/sysconfig/kernel
+if [ -f /etc/sysconfig/kernel ] ; then
+ . /etc/sysconfig/kernel
+fi
+[[ $module_list ]] || module_list="${INITRD_MODULES}"
+basicmodules="$basicmodules ${module_list}"
+[[ $domu_module_list ]] || domu_module_list="${DOMU_INITRD_MODULES}"
+[[ $acpi_dsdt ]] || acpi_dsdt="${ACPI_DSDT}"
+
+echo "Creating: target|kernel|dracut args|basicmodules "
+for ((i=0 ; $i<${#targets[@]} ; i++)); do
+
+ if [[ $img_vers ]];then
+ target="${targets[$i]}-${kernels[$i]}"
+ else
+ target="${targets[$i]}"
+ fi
+ kernel="${kernels[$i]}"
+
+ # Duplicate code: No way found how to redirect output based on $quiet
+ if [[ $quiet == 1 ]];then
+ echo "$target|$kernel|$dracut_args|$basicmodules"
+ if is_xen_kernel $kernel $rootfs ; then
+ basicmodules="$basicmodules ${domu_module_list}"
+ fi
+ if [[ $basicmodules ]]; then
+ $dracut_cmd $dracut_args --add-drivers "$basicmodules" "$target" \
+ "$kernel" &>/dev/null
+ else
+ $dracut_cmd $dracut_args "$target" "$kernel" &>/dev/null
+ fi
+ else
+ if is_xen_kernel $kernel $rootfs ; then
+ basicmodules="$basicmodules ${domu_module_list}"
+ fi
+ if [[ $basicmodules ]]; then
+ $dracut_cmd $dracut_args --add-drivers "$basicmodules" "$target" \
+ "$kernel"
+ else
+ $dracut_cmd $dracut_args "$target" "$kernel"
+ fi
+ fi
+done
+
+if [ "$skip_update_bootloader" ] ; then
+ echo 2>&1 "Did not refresh the bootloader. You might need to refresh it manually."
+else
+ update-bootloader --refresh
+fi

View File

@ -1,136 +0,0 @@
From 463e13fe8144376a95bf437b64c16bec056a9855 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Fri, 29 Nov 2013 13:13:51 +0100
Subject: [PATCH] mkinitrd-suse.8.asc: Add manpage for SUSE compat mkinitrd
Signed-off-by: Hannes Reinecke <hare@suse.de>
---
Makefile | 1 +
mkinitrd-suse.8.asc | 106 ++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 107 insertions(+)
create mode 100644 mkinitrd-suse.8.asc
diff --git a/Makefile b/Makefile
index e7da948..ba551cf 100644
--- a/Makefile
+++ b/Makefile
@@ -27,6 +27,7 @@ man7pages = dracut.cmdline.7 \
man8pages = dracut.8 \
dracut-catimages.8 \
mkinitrd.8 \
+ mkinitrd-suse.8 \
modules.d/98systemd/dracut-cmdline.service.8 \
modules.d/98systemd/dracut-initqueue.service.8 \
modules.d/98systemd/dracut-mount.service.8 \
diff --git a/mkinitrd-suse.8.asc b/mkinitrd-suse.8.asc
new file mode 100644
index 0000000..9eb8fc9
--- /dev/null
+++ b/mkinitrd-suse.8.asc
@@ -0,0 +1,106 @@
+MKINITRD(8)
+===========
+:doctype: manpage
+:man source: dracut
+:man manual: dracut
+
+NAME
+----
+mkinitrd-suse - is a compat wrapper, which calls dracut to generate an initramfs
+
+SYNOPSIS
+--------
+*mkinitrd* ['OPTION...']
+
+DESCRIPTION
+-----------
+*mkinitrd* creates an initramfs image <initrd-image> for the kernel with
+version <kernel-version> by calling *dracut*.
+
+[IMPORTANT]
+This version of mkinitrd is provided for compability with older
+versions of mkinitrd. If a more fine grained control over the
+resulting image is needed, *dracut* should be called directly.
+
+OPTIONS
+-------
+**-R, --version**::
+ print info about the version
+
+**-k** _<kernel_list>_::
+ List of kernel images for which initrd files are created (relative
+ to _boot_dir_), defaults to _vmlinux_ on ppc/ppc64, _image_ on s390/s390x
+ and _vmlinuz_ for everything else.
+
+**-i** _<initrd_list>_::
+ List of file names (relative to _boot_dir_) for the initrd; positions
+ have to match the _kernel_list_. Defaults to _initrd_.
+
+**-m** _<module_list>_::
+ Modules to include in initrd, defaults to _INITRD_MODULES_ variable
+ in */etc/sysconfig/kernel*.
+
+**-f** _<feature_list>_::
+ Features to be enabled for the initrd. In general mkinitrd
+ configures the initrd for the root device it is started from. With
+ this option additional feature can be enabled.
+
+**-b** _<bootdir>_::
+ Boot directory, defaults to */boot*, where the initrd is created.
+
+**-d** _<root_device>_::
+ Root device, defaults to the device from which the root_dir is
+ mounted; overwrites the rootdev enviroment variable if set
+
+**-s** _<size>_::
+ Add splash animation and bootscreen to initrd.
+
+**-D** _<interface>::
+ Run dhcp on the specified interface (for example "eth0").
+
+**-I** _<interface>::
+ Configure the specified interface statically.
+
+**-a** _<acpi_dsdt>::
+ Attach compiled ACPI DSDT (Differentiated System Description Table)
+ to initrd. This replaces the DSDT of the BIOS. Defaults to the
+ _ACPI_DSDT_ variable in */etc/sysconfig/kernel*.
+
+**-M** _<map>::
+ System.map file to use.
+
+**-B**::
+ Dont run the *update-bootloader(8)* script after the initrd(s) have
+ been created. This is useful if you call mkinitrd(8) for anything
+ else than the running system.
+
+**-A**::
+ Create a so called "monster initrd" which includes all available
+ features and modules.
+
+**-v, --verbose**::
+ increase verbosity level
+
+**-L**::
+ Disable logging to _/var/log/YaST2/mkinitrd.log_. This is useful for
+ testing if you dont want to clutter the system log.
+
+**--force**::
+ overwrite existing initramfs file.
+
+**--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, Hannes Reinecke
+
+SEE ALSO
+--------
+*dracut*(8)
+*update-bootloader*(8)

View File

@ -1,26 +0,0 @@
From 1d3496b4c1ef229a8e6969e530b49dedb865f409 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Fri, 29 Nov 2013 13:13:52 +0100
Subject: [PATCH] Fixup keymap setting for openSUSE
openSUSE is using compressed keymaps.
Signed-off-by: Hannes Reinecke <hare@suse.de>
---
modules.d/10i18n/module-setup.sh | 3 +++
1 file changed, 3 insertions(+)
diff --git a/modules.d/10i18n/module-setup.sh b/modules.d/10i18n/module-setup.sh
index 0741c64..f07b148 100755
--- a/modules.d/10i18n/module-setup.sh
+++ b/modules.d/10i18n/module-setup.sh
@@ -161,6 +161,9 @@ install() {
# Gentoo user may have KEYMAP set to something like "-u pl2",
KEYMAP=${KEYMAP#-* }
+ # openSUSE user may have KEYMAP set to something like ".gz"
+ KEYMAP=${KEYMAP/.gz/}
+
# KEYTABLE is a bit special - it defines base keymap name and UNICODE
# determines whether non-UNICODE or UNICODE version is used

View File

@ -1,46 +0,0 @@
From 1c89fd148d361a43b1ddb7ec1e8068849244a9b7 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Fri, 29 Nov 2013 13:13:53 +0100
Subject: [PATCH] Fixup script permissions
Scripts with a shebang should be marked as executable.
Signed-off-by: Hannes Reinecke <hare@suse.de>
---
modules.d/03modsign/load-modsign-keys.sh | 0
modules.d/03modsign/module-setup.sh | 0
modules.d/40network/net-lib.sh | 0
modules.d/40network/parse-vlan.sh | 0
modules.d/50drm/module-setup.sh | 0
modules.d/91crypt-loop/crypt-loop-lib.sh | 0
modules.d/98pollcdrom/pollcdrom.sh | 0
7 files changed, 0 insertions(+), 0 deletions(-)
mode change 100644 => 100755 modules.d/03modsign/load-modsign-keys.sh
mode change 100644 => 100755 modules.d/03modsign/module-setup.sh
mode change 100644 => 100755 modules.d/40network/net-lib.sh
mode change 100644 => 100755 modules.d/40network/parse-vlan.sh
mode change 100644 => 100755 modules.d/50drm/module-setup.sh
mode change 100644 => 100755 modules.d/91crypt-loop/crypt-loop-lib.sh
mode change 100644 => 100755 modules.d/98pollcdrom/pollcdrom.sh
diff --git a/modules.d/03modsign/load-modsign-keys.sh b/modules.d/03modsign/load-modsign-keys.sh
old mode 100644
new mode 100755
diff --git a/modules.d/03modsign/module-setup.sh b/modules.d/03modsign/module-setup.sh
old mode 100644
new mode 100755
diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh
old mode 100644
new mode 100755
diff --git a/modules.d/40network/parse-vlan.sh b/modules.d/40network/parse-vlan.sh
old mode 100644
new mode 100755
diff --git a/modules.d/50drm/module-setup.sh b/modules.d/50drm/module-setup.sh
old mode 100644
new mode 100755
diff --git a/modules.d/91crypt-loop/crypt-loop-lib.sh b/modules.d/91crypt-loop/crypt-loop-lib.sh
old mode 100644
new mode 100755
diff --git a/modules.d/98pollcdrom/pollcdrom.sh b/modules.d/98pollcdrom/pollcdrom.sh
old mode 100644
new mode 100755

View File

@ -1,34 +0,0 @@
From 336bd09d2cf9d3ded4abb828eb54742218a32b04 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Fri, 29 Nov 2013 13:13:54 +0100
Subject: [PATCH] Remove shebang from shell-completion files
Shell-completion files are meant to be sourced, not executed.
So they shouldn't have a shebang at the start.
Signed-off-by: Hannes Reinecke <hare@suse.de>
---
dracut-bash-completion.sh | 2 +-
lsinitrd-bash-completion.sh | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/dracut-bash-completion.sh b/dracut-bash-completion.sh
index d796c35..9f359c6 100644
--- a/dracut-bash-completion.sh
+++ b/dracut-bash-completion.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
#
diff --git a/lsinitrd-bash-completion.sh b/lsinitrd-bash-completion.sh
index 78ab165..3df2965 100644
--- a/lsinitrd-bash-completion.sh
+++ b/lsinitrd-bash-completion.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
#

View File

@ -1,27 +0,0 @@
From c21c4dc2b469107ac35d8c1157f245965fd55292 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 5 Dec 2013 15:57:42 +0100
Subject: [PATCH] lvm: install thin tools, only when needed in hostonly
---
modules.d/90lvm/module-setup.sh | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/modules.d/90lvm/module-setup.sh b/modules.d/90lvm/module-setup.sh
index a220a55..1206310 100755
--- a/modules.d/90lvm/module-setup.sh
+++ b/modules.d/90lvm/module-setup.sh
@@ -97,6 +97,11 @@ install() {
inst_libdir_file "libdevmapper-event-lvm*.so"
- inst_multiple -o thin_dump thin_restore thin_check thin_repair
+ if [[ $hostonly ]] && type -P lvs &>/dev/null; then
+ for dev in "${!host_fs_types[@]}"; do
+ if [[ "$(lvs --noheadings -o segtype "$dev" 2>/dev/null)" == *thin* ]] ; then
+ inst_multiple -o thin_dump thin_restore thin_check thin_repair
+ fi
+ done
+ fi
}
-

View File

@ -1,127 +0,0 @@
From 45845cb6a5f1100fa4163e25c0681afceb838b64 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 5 Dec 2013 16:42:05 +0100
Subject: [PATCH] i18n: introduce i18n_install_all, to install everything
if i18n_install_all is set to "yes", then install all keyboard layouts
and fonts regardless of the hostonly setting.
This way, people can switch keyboard layouts, without having to recreate
the initramfs.
---
dracut.conf.5.asc | 14 ++++++++++++--
dracut.conf.d/fedora.conf.example | 1 +
modules.d/10i18n/module-setup.sh | 31 +++++++++++++++++--------------
3 files changed, 30 insertions(+), 16 deletions(-)
diff --git a/dracut.conf.5.asc b/dracut.conf.5.asc
index c9c854a..30b7e03 100644
--- a/dracut.conf.5.asc
+++ b/dracut.conf.5.asc
@@ -122,10 +122,10 @@ If chrooted to another root other than the real root device, use --fstab and pro
*kernel_only=*"__{yes|no}__"::
Only install kernel drivers and firmware files. (default=no)
-*no_kernel=*"{yes|no}"::
+*no_kernel=*"__{yes|no}__"::
Do not install kernel drivers and firmware files (default=no)
-*acpi_override=*"{yes|no}"::
+*acpi_override=*"__{yes|no}__"::
[WARNING] ONLY USE THIS IF YOU KNOW WHAT YOU ARE DOING! +
Override BIOS provided ACPI tables. For further documentation read
Documentation/acpi/initrd_table_override.txt in the kernel sources.
@@ -158,6 +158,16 @@ If chrooted to another root other than the real root device, use --fstab and pro
*show_modules=*"__{yes|no}__"::
Print the name of the included modules to standard output during build.
+*i18n_vars="__<variable mapping>__"::
+ Distribution specific variable mapping.
+ See dracut/modules.d/10i18n/README for a detailed description.
+
+*i18n_default_font=*"__<fontname>__"::
+ The font <fontname> to install, if not specified otherwise. Default is "LatArCyrHeb-16".
+
+*i18n_install_all=*"__{yes|no}__"::
+ Install everything regardless of generic or hostonly mode.
+
Files
-----
_/etc/dracut.conf_::
diff --git a/dracut.conf.d/fedora.conf.example b/dracut.conf.d/fedora.conf.example
index 1a56a86..495e8fb 100644
--- a/dracut.conf.d/fedora.conf.example
+++ b/dracut.conf.d/fedora.conf.example
@@ -3,6 +3,7 @@
# i18n
i18n_vars="/etc/sysconfig/keyboard:KEYTABLE-KEYMAP /etc/sysconfig/i18n:SYSFONT-FONT,FONTACM-FONT_MAP,FONT_UNIMAP"
i18n_default_font="latarcyrheb-sun16"
+i18n_install_all="yes"
stdloglvl=3
sysloglvl=5
install_items+=" vi /etc/virc ps grep cat rm "
diff --git a/modules.d/10i18n/module-setup.sh b/modules.d/10i18n/module-setup.sh
index f07b148..fcb18d1 100755
--- a/modules.d/10i18n/module-setup.sh
+++ b/modules.d/10i18n/module-setup.sh
@@ -21,15 +21,11 @@ depends() {
# called by dracut
install() {
if dracut_module_included "systemd"; then
- [[ -f /etc/vconsole.conf ]] || return 0
unset FONT
unset KEYMAP
- . /etc/vconsole.conf
- # if vconsole.conf has no settings, do not include anything
- [[ $FONT ]] || [[ $KEYMAP ]] || return 0
+ [[ -f /etc/vconsole.conf ]] && . /etc/vconsole.conf
fi
- inst_multiple -o $systemdutildir/systemd-vconsole-setup
KBDSUBDIRS=consolefonts,consoletrans,keymaps,unimaps
DEFAULT_FONT="${i18n_default_font:-LatArCyrHeb-16}"
I18N_CONF="/etc/locale.conf"
@@ -213,10 +209,20 @@ install() {
inst_simple ${kbddir}/unimaps/${FONT_UNIMAP}.uni
fi
- mksubdirs ${initdir}${I18N_CONF}
- mksubdirs ${initdir}${VCONFIG_CONF}
- print_vars LC_ALL LANG >> ${initdir}${I18N_CONF}
- print_vars KEYMAP EXT_KEYMAPS UNICODE FONT FONT_MAP FONT_UNIMAP >> ${initdir}${VCONFIG_CONF}
+ if dracut_module_included "systemd" && [[ -f ${I18N_CONF} ]]; then
+ inst_simple ${I18N_CONF}
+ else
+ mksubdirs ${initdir}${I18N_CONF}
+ print_vars LC_ALL LANG >> ${initdir}${I18N_CONF}
+ fi
+
+ if dracut_module_included "systemd" && [[ -f ${VCONFIG_CONF} ]]; then
+ inst_simple ${VCONFIG_CONF}
+ else
+ mksubdirs ${initdir}${VCONFIG_CONF}
+ print_vars KEYMAP EXT_KEYMAPS UNICODE FONT FONT_MAP FONT_UNIMAP >> ${initdir}${VCONFIG_CONF}
+ fi
+
return 0
}
@@ -240,16 +246,13 @@ install() {
return 0
}
- if checks
- then
+ if checks; then
install_base
- if [[ ${hostonly} ]]
- then
+ if [[ ${hostonly} ]] && ! [[ ${i18n_install_all} ]]; then
install_local_i18n || install_all_kbd
else
install_all_kbd
fi
fi
}
-

View File

@ -1,24 +0,0 @@
From 57575f3c9c5323887b1aec7f04d1467ba1e5fb1b Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 5 Dec 2013 17:27:57 +0100
Subject: [PATCH] dracut.spec: add new modules
---
dracut.spec | 2 ++
1 file changed, 2 insertions(+)
diff --git a/dracut.spec b/dracut.spec
index 44171d8..91ec15d 100644
--- a/dracut.spec
+++ b/dracut.spec
@@ -350,8 +350,10 @@ rm -rf -- $RPM_BUILD_ROOT
%{dracutlibdir}/modules.d/95rootfs-block
%{dracutlibdir}/modules.d/95dasd
%{dracutlibdir}/modules.d/95dasd_mod
+%{dracutlibdir}/modules.d/95dasd_rules
%{dracutlibdir}/modules.d/95fstab-sys
%{dracutlibdir}/modules.d/95zfcp
+%{dracutlibdir}/modules.d/95zfcp_rules
%{dracutlibdir}/modules.d/95terminfo
%{dracutlibdir}/modules.d/95udev-rules
%{dracutlibdir}/modules.d/95virtfs

View File

@ -1,35 +0,0 @@
From 11ee2ca8d497980c98c3c5a2c3be25b4724c43a0 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 5 Dec 2013 17:31:09 +0100
Subject: [PATCH] dracut.spec: remove suse man pages
---
dracut.spec | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/dracut.spec b/dracut.spec
index 91ec15d..bd35aa7 100644
--- a/dracut.spec
+++ b/dracut.spec
@@ -246,15 +246,18 @@ mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log
touch $RPM_BUILD_ROOT%{_localstatedir}/log/dracut.log
mkdir -p $RPM_BUILD_ROOT%{_sharedstatedir}/initramfs
-%if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version}
+%if 0%{?fedora} || 0%{?rhel}
install -m 0644 dracut.conf.d/fedora.conf.example $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/01-dist.conf
-install -m 0644 dracut.conf.d/fips.conf.example $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/40-fips.conf
+rm -f $RPM_BUILD_ROOT%{_mandir}/man?/*suse*
%endif
-
%if 0%{?suse_version}
install -m 0644 dracut.conf.d/suse.conf.example $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/01-dist.conf
%endif
+%if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version}
+install -m 0644 dracut.conf.d/fips.conf.example $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/40-fips.conf
+%endif
+
%if 0%{?fedora} <= 12 && 0%{?rhel} < 6 && 0%{?suse_version} <= 9999
rm -f -- $RPM_BUILD_ROOT%{_bindir}/mkinitrd
rm -f -- $RPM_BUILD_ROOT%{_bindir}/lsinitrd

View File

@ -1,21 +0,0 @@
From ce052202f0cdb673536999a7d7810bd3a3a2aaca Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 5 Dec 2013 18:38:23 +0100
Subject: [PATCH] TODO: update
---
TODO | 1 +
1 file changed, 1 insertion(+)
diff --git a/TODO b/TODO
index 4e52fbf..875541d 100644
--- a/TODO
+++ b/TODO
@@ -22,6 +22,7 @@ INITRAMFS TODO
GENERATOR TODO
+- report errors on missing files in check()
- remove wait for swap devs, if no "resume=" is given on the kernel command line
- add presets (predefined set of modules)
- add interpreter/plugin-scripts to be sourced at the beginning or end (can use dracut-functions)

View File

@ -1,25 +0,0 @@
From 3934ca8e6c0e80ecb32a2ed9403321afd510842e Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 5 Dec 2013 18:38:35 +0100
Subject: [PATCH] systemd/dracut-initqueue.sh: fixed waiting in the loop if PW
asked
continue the main loop instead of the for loop, if a password is
currently asked
---
modules.d/98systemd/dracut-initqueue.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules.d/98systemd/dracut-initqueue.sh b/modules.d/98systemd/dracut-initqueue.sh
index 64e8154..1e05dcd 100755
--- a/modules.d/98systemd/dracut-initqueue.sh
+++ b/modules.d/98systemd/dracut-initqueue.sh
@@ -53,7 +53,7 @@ while :; do
sleep 0.5
for i in /run/systemd/ask-password/ask.*; do
- [ -e "$i" ] && continue
+ [ -e "$i" ] && continue 2
done
if [ $main_loop -gt $((2*$RDRETRY/3)) ]; then

View File

@ -1,22 +0,0 @@
From f11712ea2189e01004115702a3756b70122c3b05 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 10 Dec 2013 12:58:37 +0100
Subject: [PATCH] base/rdsosreport.sh: add "ip a" output
---
modules.d/99base/rdsosreport.sh | 2 ++
1 file changed, 2 insertions(+)
diff --git a/modules.d/99base/rdsosreport.sh b/modules.d/99base/rdsosreport.sh
index bfa55bb..5e11166 100755
--- a/modules.d/99base/rdsosreport.sh
+++ b/modules.d/99base/rdsosreport.sh
@@ -42,6 +42,8 @@ command -v dmsetup >/dev/null 2>/dev/null && dmsetup ls --tree
cat /proc/mdstat
+command -v ip >/dev/null 2>/dev/null && ip addr
+
if command -v journalctl >/dev/null 2>/dev/null; then
journalctl -ab --no-pager -o short-monotonic
else

View File

@ -1,25 +0,0 @@
From ded4c82acedb373ed4393b69a9683c6bee38ff48 Mon Sep 17 00:00:00 2001
From: Alexander Tsoy <alexander@tsoy.me>
Date: Thu, 21 Nov 2013 20:33:38 +0400
Subject: [PATCH] usrmount: always install
/usr should be mounted by initramfs even if /sbin/init lives in /
---
modules.d/98usrmount/module-setup.sh | 3 ---
1 file changed, 3 deletions(-)
diff --git a/modules.d/98usrmount/module-setup.sh b/modules.d/98usrmount/module-setup.sh
index d8a0ec2..31a6229 100755
--- a/modules.d/98usrmount/module-setup.sh
+++ b/modules.d/98usrmount/module-setup.sh
@@ -4,10 +4,7 @@
# called by dracut
check() {
- local _init
[[ $mount_needs ]] && return 1
- _init=$(readlink -f /sbin/init)
- [[ "$_init" == "${_init##/usr}" ]] && return 255
return 0
}

View File

@ -1,57 +0,0 @@
From ab173bb4c1c758d2f87d11b03efca6b6c950225e Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 12 Dec 2013 09:20:53 +0100
Subject: [PATCH] fcoe: move uefi parsing to fcoe-uefi module
---
modules.d/95fcoe-uefi/module-setup.sh | 22 ++++++++++++++++++++++
.../{95fcoe => 95fcoe-uefi}/parse-uefifcoe.sh | 0
modules.d/95fcoe/module-setup.sh | 1 -
3 files changed, 22 insertions(+), 1 deletion(-)
create mode 100755 modules.d/95fcoe-uefi/module-setup.sh
rename modules.d/{95fcoe => 95fcoe-uefi}/parse-uefifcoe.sh (100%)
diff --git a/modules.d/95fcoe-uefi/module-setup.sh b/modules.d/95fcoe-uefi/module-setup.sh
new file mode 100755
index 0000000..007aa59
--- /dev/null
+++ b/modules.d/95fcoe-uefi/module-setup.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+# ex: ts=8 sw=4 sts=4 et filetype=sh
+
+# called by dracut
+check() {
+ [[ $hostonly ]] || [[ $mount_needs ]] && return 1
+
+ return 0
+}
+
+# called by dracut
+depends() {
+ echo fcoe bash
+ return 0
+}
+
+# called by dracut
+install() {
+ inst_hook cmdline 20 "$moddir/parse-uefifcoe.sh"
+}
+
diff --git a/modules.d/95fcoe/parse-uefifcoe.sh b/modules.d/95fcoe-uefi/parse-uefifcoe.sh
similarity index 100%
rename from modules.d/95fcoe/parse-uefifcoe.sh
rename to modules.d/95fcoe-uefi/parse-uefifcoe.sh
diff --git a/modules.d/95fcoe/module-setup.sh b/modules.d/95fcoe/module-setup.sh
index 7ada2ee..2605fa0 100755
--- a/modules.d/95fcoe/module-setup.sh
+++ b/modules.d/95fcoe/module-setup.sh
@@ -36,7 +36,6 @@ install() {
inst "$moddir/fcoe-up.sh" "/sbin/fcoe-up"
inst "$moddir/fcoe-edd.sh" "/sbin/fcoe-edd"
inst "$moddir/fcoe-genrules.sh" "/sbin/fcoe-genrules.sh"
- inst_hook cmdline 20 "$moddir/parse-uefifcoe.sh"
inst_hook cmdline 99 "$moddir/parse-fcoe.sh"
dracut_need_initqueue
}

View File

@ -1,92 +0,0 @@
From 89031be3735045ae06d560bf4f42ec58d889fe8e Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 12 Dec 2013 09:49:06 +0100
Subject: [PATCH] move uefi-lib to a seperate module
---
modules.d/95fcoe-uefi/module-setup.sh | 4 +---
modules.d/95fcoe/module-setup.sh | 5 -----
modules.d/99base/module-setup.sh | 1 -
modules.d/99uefi-lib/module-setup.sh | 19 +++++++++++++++++++
modules.d/{99base => 99uefi-lib}/uefi-lib.sh | 0
5 files changed, 20 insertions(+), 9 deletions(-)
create mode 100755 modules.d/99uefi-lib/module-setup.sh
rename modules.d/{99base => 99uefi-lib}/uefi-lib.sh (100%)
diff --git a/modules.d/95fcoe-uefi/module-setup.sh b/modules.d/95fcoe-uefi/module-setup.sh
index 007aa59..653d88e 100755
--- a/modules.d/95fcoe-uefi/module-setup.sh
+++ b/modules.d/95fcoe-uefi/module-setup.sh
@@ -4,14 +4,12 @@
# called by dracut
check() {
- [[ $hostonly ]] || [[ $mount_needs ]] && return 1
-
return 0
}
# called by dracut
depends() {
- echo fcoe bash
+ echo fcoe uefi-lib
return 0
}
diff --git a/modules.d/95fcoe/module-setup.sh b/modules.d/95fcoe/module-setup.sh
index 2605fa0..539c464 100755
--- a/modules.d/95fcoe/module-setup.sh
+++ b/modules.d/95fcoe/module-setup.sh
@@ -4,11 +4,6 @@
# called by dracut
check() {
- # FIXME
- # If hostonly was requested, fail the check until we have some way of
- # knowing we are booting from FCoE
- [[ $hostonly ]] || [[ $mount_needs ]] && return 1
-
for i in dcbtool fipvlan lldpad ip readlink; do
type -P $i >/dev/null || return 1
done
diff --git a/modules.d/99base/module-setup.sh b/modules.d/99base/module-setup.sh
index e53cf2e..d4dbca9 100755
--- a/modules.d/99base/module-setup.sh
+++ b/modules.d/99base/module-setup.sh
@@ -45,7 +45,6 @@ install() {
mkdir -p ${initdir}/tmp
inst_simple "$moddir/dracut-lib.sh" "/lib/dracut-lib.sh"
- inst_simple "$moddir/uefi-lib.sh" "/lib/uefi-lib.sh"
if ! dracut_module_included "systemd"; then
inst_multiple switch_root || dfatal "Failed to install switch_root"
diff --git a/modules.d/99uefi-lib/module-setup.sh b/modules.d/99uefi-lib/module-setup.sh
new file mode 100755
index 0000000..4a856ea
--- /dev/null
+++ b/modules.d/99uefi-lib/module-setup.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+# module-setup for img-lib
+
+# called by dracut
+check() {
+ return 255
+}
+
+# called by dracut
+depends() {
+ echo bash
+ return 0
+}
+
+# called by dracut
+install() {
+ inst_simple "$moddir/uefi-lib.sh" "/lib/uefi-lib.sh"
+}
+
diff --git a/modules.d/99base/uefi-lib.sh b/modules.d/99uefi-lib/uefi-lib.sh
similarity index 100%
rename from modules.d/99base/uefi-lib.sh
rename to modules.d/99uefi-lib/uefi-lib.sh

View File

@ -1,31 +0,0 @@
From 831625d29ed6f174b276cd738e34bfebc5052e1c Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 13 Dec 2013 11:05:39 +0100
Subject: [PATCH] lvm: fixed lvm thin check
---
modules.d/90lvm/module-setup.sh | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/modules.d/90lvm/module-setup.sh b/modules.d/90lvm/module-setup.sh
index 1206310..a64e5d6 100755
--- a/modules.d/90lvm/module-setup.sh
+++ b/modules.d/90lvm/module-setup.sh
@@ -99,9 +99,16 @@ install() {
if [[ $hostonly ]] && type -P lvs &>/dev/null; then
for dev in "${!host_fs_types[@]}"; do
- if [[ "$(lvs --noheadings -o segtype "$dev" 2>/dev/null)" == *thin* ]] ; then
+ [ -e /sys/block/${dev#/dev/}/dm/name ] || continue
+ dev=$(</sys/block/${dev#/dev/}/dm/name)
+ eval $(dmsetup splitname --nameprefixes --noheadings --rows "$dev" 2>/dev/null)
+ [[ ${DM_VG_NAME} ]] && [[ ${DM_LV_NAME} ]] || continue
+ if [[ "$(lvs --noheadings -o segtype ${DM_VG_NAME} 2>/dev/null)" == *thin* ]] ; then
inst_multiple -o thin_dump thin_restore thin_check thin_repair
+ break
fi
done
+ else
+ inst_multiple -o thin_dump thin_restore thin_check thin_repair
fi
}

View File

@ -1,22 +0,0 @@
From 08f06c93419aacac9d9980fa9c0c65d15fa4bf0e Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 16 Dec 2013 12:30:26 +0100
Subject: [PATCH] dracut.spec: add 95fcoe-uefi and 99uefi-lib
---
dracut.spec | 2 ++
1 file changed, 2 insertions(+)
diff --git a/dracut.spec b/dracut.spec
index bd35aa7..6cc60e1 100644
--- a/dracut.spec
+++ b/dracut.spec
@@ -414,6 +414,8 @@ rm -rf -- $RPM_BUILD_ROOT
%{dracutlibdir}/modules.d/95ssh-client
%{dracutlibdir}/modules.d/45ifcfg
%{dracutlibdir}/modules.d/95znet
+%{dracutlibdir}/modules.d/95fcoe-uefi
+%{dracutlibdir}/modules.d/99uefi-lib
%if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version}
%files fips

View File

@ -1,232 +0,0 @@
From 61a02caca422ddca0ee7c71e63d3cdfd786293c8 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 16 Dec 2013 13:15:48 +0100
Subject: [PATCH] test/TEST-17-LVM-THIN: add test case for lvm thin pools
---
test/TEST-17-LVM-THIN/.testdir | 1 +
test/TEST-17-LVM-THIN/99-idesymlinks.rules | 8 +++
test/TEST-17-LVM-THIN/Makefile | 10 ++++
test/TEST-17-LVM-THIN/create-root.sh | 31 +++++++++++
test/TEST-17-LVM-THIN/finished-false.sh | 2 +
test/TEST-17-LVM-THIN/hard-off.sh | 3 +
test/TEST-17-LVM-THIN/test-init.sh | 17 ++++++
test/TEST-17-LVM-THIN/test.sh | 88 ++++++++++++++++++++++++++++++
8 files changed, 160 insertions(+)
create mode 100644 test/TEST-17-LVM-THIN/.testdir
create mode 100644 test/TEST-17-LVM-THIN/99-idesymlinks.rules
create mode 100644 test/TEST-17-LVM-THIN/Makefile
create mode 100755 test/TEST-17-LVM-THIN/create-root.sh
create mode 100755 test/TEST-17-LVM-THIN/finished-false.sh
create mode 100755 test/TEST-17-LVM-THIN/hard-off.sh
create mode 100755 test/TEST-17-LVM-THIN/test-init.sh
create mode 100755 test/TEST-17-LVM-THIN/test.sh
diff --git a/test/TEST-17-LVM-THIN/.testdir b/test/TEST-17-LVM-THIN/.testdir
new file mode 100644
index 0000000..9af2638
--- /dev/null
+++ b/test/TEST-17-LVM-THIN/.testdir
@@ -0,0 +1 @@
+TESTDIR="/var/tmp/dracut-test.uElZSK"
diff --git a/test/TEST-17-LVM-THIN/99-idesymlinks.rules b/test/TEST-17-LVM-THIN/99-idesymlinks.rules
new file mode 100644
index 0000000..d557790
--- /dev/null
+++ b/test/TEST-17-LVM-THIN/99-idesymlinks.rules
@@ -0,0 +1,8 @@
+ACTION=="add|change", SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="hda", SYMLINK+="sda"
+ACTION=="add|change", SUBSYSTEM=="block", ENV{DEVTYPE}=="partition", KERNEL=="hda*", SYMLINK+="sda$env{MINOR}"
+ACTION=="add|change", SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="hdb", SYMLINK+="sdb"
+ACTION=="add|change", SUBSYSTEM=="block", ENV{DEVTYPE}=="partition", KERNEL=="hdb*", SYMLINK+="sdb$env{MINOR}"
+ACTION=="add|change", SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="hdc", SYMLINK+="sdc"
+ACTION=="add|change", SUBSYSTEM=="block", ENV{DEVTYPE}=="partition", KERNEL=="hdc*", SYMLINK+="sdc$env{MINOR}"
+ACTION=="add|change", SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="hdd", SYMLINK+="sdd"
+ACTION=="add|change", SUBSYSTEM=="block", ENV{DEVTYPE}=="partition", KERNEL=="hdd*", SYMLINK+="sdd$env{MINOR}"
diff --git a/test/TEST-17-LVM-THIN/Makefile b/test/TEST-17-LVM-THIN/Makefile
new file mode 100644
index 0000000..aad2705
--- /dev/null
+++ b/test/TEST-17-LVM-THIN/Makefile
@@ -0,0 +1,10 @@
+all:
+ @$(MAKE) -s --no-print-directory -C ../.. all
+ @V=$(V) basedir=../.. testdir=../ ./test.sh --all
+setup:
+ @$(MAKE) --no-print-directory -C ../.. all
+ @basedir=../.. testdir=../ ./test.sh --setup
+clean:
+ @basedir=../.. testdir=../ ./test.sh --clean
+run:
+ @basedir=../.. testdir=../ ./test.sh --run
diff --git a/test/TEST-17-LVM-THIN/create-root.sh b/test/TEST-17-LVM-THIN/create-root.sh
new file mode 100755
index 0000000..740704f
--- /dev/null
+++ b/test/TEST-17-LVM-THIN/create-root.sh
@@ -0,0 +1,31 @@
+#!/bin/sh
+# don't let udev and this script step on eachother's toes
+for x in 64-lvm.rules 70-mdadm.rules 99-mount-rules; do
+ > "/etc/udev/rules.d/$x"
+done
+rm -f -- /etc/lvm/lvm.conf
+udevadm control --reload
+# save a partition at the beginning for future flagging purposes
+sfdisk -C 2560 -H 2 -S 32 -L /dev/sda <<EOF
+,1
+,800
+,800
+,800
+EOF
+for i in sda2 sda3 sda4; do
+lvm pvcreate -ff -y /dev/$i ;
+done && \
+lvm vgcreate dracut /dev/sda[234] && \
+lvm lvcreate -l 16 -T dracut/mythinpool && \
+lvm lvcreate -V1G -T dracut/mythinpool -n root && \
+lvm vgchange -ay && \
+mke2fs /dev/dracut/root && \
+mkdir -p /sysroot && \
+mount /dev/dracut/root /sysroot && \
+cp -a -t /sysroot /source/* && \
+umount /sysroot && \
+sleep 1 && \
+lvm lvchange -a n /dev/dracut/root && \
+sleep 1 && \
+echo "dracut-root-block-created" >/dev/sda1
+poweroff -f
diff --git a/test/TEST-17-LVM-THIN/finished-false.sh b/test/TEST-17-LVM-THIN/finished-false.sh
new file mode 100755
index 0000000..ecdbef9
--- /dev/null
+++ b/test/TEST-17-LVM-THIN/finished-false.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+exit 1
diff --git a/test/TEST-17-LVM-THIN/hard-off.sh b/test/TEST-17-LVM-THIN/hard-off.sh
new file mode 100755
index 0000000..12c3d5a
--- /dev/null
+++ b/test/TEST-17-LVM-THIN/hard-off.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+getarg rd.shell || poweroff -f
+getarg failme && poweroff -f
diff --git a/test/TEST-17-LVM-THIN/test-init.sh b/test/TEST-17-LVM-THIN/test-init.sh
new file mode 100755
index 0000000..fd03aa5
--- /dev/null
+++ b/test/TEST-17-LVM-THIN/test-init.sh
@@ -0,0 +1,17 @@
+#!/bin/sh
+export PATH=/sbin:/bin:/usr/sbin:/usr/bin
+strstr() { [ "${1#*$2*}" != "$1" ]; }
+CMDLINE=$(while read line; do echo $line;done < /proc/cmdline)
+plymouth --quit
+exec >/dev/console 2>&1
+echo "dracut-root-block-success" >/dev/sda1
+export TERM=linux
+export PS1='initramfs-test:\w\$ '
+[ -f /etc/mtab ] || ln -sfn /proc/mounts /etc/mtab
+[ -f /etc/fstab ] || ln -sfn /proc/mounts /etc/fstab
+stty sane
+echo "made it to the rootfs!"
+strstr "$CMDLINE" "rd.shell" && sh -i
+echo "Powering down."
+mount -n -o remount,ro /
+poweroff -f
diff --git a/test/TEST-17-LVM-THIN/test.sh b/test/TEST-17-LVM-THIN/test.sh
new file mode 100755
index 0000000..0cfce19
--- /dev/null
+++ b/test/TEST-17-LVM-THIN/test.sh
@@ -0,0 +1,88 @@
+#!/bin/bash
+TEST_DESCRIPTION="root filesystem on LVM PV with thin pool"
+
+KVERSION=${KVERSION-$(uname -r)}
+
+# Uncomment this to debug failures
+#DEBUGFAIL="rd.break rd.shell"
+
+test_run() {
+ $testdir/run-qemu \
+ -hda $TESTDIR/root.ext2 \
+ -m 256M -smp 2 -nographic \
+ -net none -kernel /boot/vmlinuz-$KVERSION \
+ -append "root=/dev/dracut/root rw rd.auto=1 quiet rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.debug $DEBUGFAIL" \
+ -initrd $TESTDIR/initramfs.testing
+ grep -F -m 1 -q dracut-root-block-success $TESTDIR/root.ext2 || return 1
+}
+
+test_setup() {
+ # Create the blank file to use as a root filesystem
+ dd if=/dev/null of=$TESTDIR/root.ext2 bs=1M seek=80
+
+ kernel=$KVERSION
+ # Create what will eventually be our root filesystem onto an overlay
+ (
+ export initdir=$TESTDIR/overlay/source
+ . $basedir/dracut-functions.sh
+ inst_multiple sh df free ls shutdown poweroff stty cat ps ln ip route \
+ mount dmesg ifconfig dhclient mkdir cp ping dhclient
+ for _terminfodir in /lib/terminfo /etc/terminfo /usr/share/terminfo; do
+ [ -f ${_terminfodir}/l/linux ] && break
+ done
+ inst_multiple -o ${_terminfodir}/l/linux
+ inst "$basedir/modules.d/40network/dhclient-script.sh" "/sbin/dhclient-script"
+ inst "$basedir/modules.d/40network/ifup.sh" "/sbin/ifup"
+ inst_multiple grep
+ inst_simple /etc/os-release
+ inst ./test-init.sh /sbin/init
+ find_binary plymouth >/dev/null && inst_multiple plymouth
+ (cd "$initdir"; mkdir -p dev sys proc etc var/run tmp )
+ cp -a /etc/ld.so.conf* $initdir/etc
+ mkdir $initdir/run
+ sudo ldconfig -r "$initdir"
+ )
+
+ # second, install the files needed to make the root filesystem
+ (
+ export initdir=$TESTDIR/overlay
+ . $basedir/dracut-functions.sh
+ inst_multiple sfdisk mke2fs poweroff cp umount
+ inst_hook initqueue 01 ./create-root.sh
+ inst_hook initqueue/finished 01 ./finished-false.sh
+ inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
+ )
+
+ # create an initramfs that will create the target root filesystem.
+ # We do it this way so that we do not risk trashing the host mdraid
+ # devices, volume groups, encrypted partitions, etc.
+ $basedir/dracut.sh -l -i $TESTDIR/overlay / \
+ -m "dash lvm mdraid udev-rules base rootfs-block kernel-modules" \
+ -d "piix ide-gd_mod ata_piix ext2 sd_mod" \
+ -f $TESTDIR/initramfs.makeroot $KVERSION || return 1
+ rm -rf -- $TESTDIR/overlay
+ # Invoke KVM and/or QEMU to actually create the target filesystem.
+ $testdir/run-qemu -hda $TESTDIR/root.ext2 -m 256M -smp 2 -nographic -net none \
+ -kernel "/boot/vmlinuz-$kernel" \
+ -append "root=/dev/fakeroot rw rootfstype=ext2 quiet console=ttyS0,115200n81 selinux=0" \
+ -initrd $TESTDIR/initramfs.makeroot || return 1
+ grep -F -m 1 -q dracut-root-block-created $TESTDIR/root.ext2 || return 1
+ (
+ export initdir=$TESTDIR/overlay
+ . $basedir/dracut-functions.sh
+ inst_multiple poweroff shutdown
+ 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 / \
+ -o "plymouth network" \
+ -a "debug" -I lvs \
+ -d "piix ide-gd_mod ata_piix ext2 sd_mod" \
+ -f $TESTDIR/initramfs.testing $KVERSION || return 1
+}
+
+test_cleanup() {
+ return 0
+}
+
+. $testdir/test-functions

View File

@ -1,17 +0,0 @@
From 859e3a77d0a1343fe84fc425676d8f8fa09c558c Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 17 Dec 2013 13:36:55 +0100
Subject: [PATCH] test/TEST-17-LVM-THIN: remove .testdir
---
test/TEST-17-LVM-THIN/.testdir | 1 -
1 file changed, 1 deletion(-)
delete mode 100644 test/TEST-17-LVM-THIN/.testdir
diff --git a/test/TEST-17-LVM-THIN/.testdir b/test/TEST-17-LVM-THIN/.testdir
deleted file mode 100644
index 9af2638..0000000
--- a/test/TEST-17-LVM-THIN/.testdir
+++ /dev/null
@@ -1 +0,0 @@
-TESTDIR="/var/tmp/dracut-test.uElZSK"

View File

@ -1,66 +0,0 @@
From ab6f4a825e31b582cb77181ef6803c77236f74f0 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Wed, 18 Dec 2013 12:26:05 +0100
Subject: [PATCH] iscsi: do iscsi_firmware regardless of network
Do the iscsi_firmware iscsistart at least once, even if the network is
not up, to activate offload HBA iSCSI.
https://bugzilla.redhat.com/show_bug.cgi?id=1031160
---
modules.d/95iscsi/iscsiroot.sh | 12 +++++++-----
modules.d/95iscsi/parse-iscsiroot.sh | 2 +-
test/TEST-30-ISCSI/test.sh | 2 +-
3 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/modules.d/95iscsi/iscsiroot.sh b/modules.d/95iscsi/iscsiroot.sh
index 738fff4..ef090f7 100755
--- a/modules.d/95iscsi/iscsiroot.sh
+++ b/modules.d/95iscsi/iscsiroot.sh
@@ -44,13 +44,15 @@ if getargbool 0 rd.iscsi.firmware -d -y iscsi_firmware ; then
iscsi_param="$iscsi_param --param $p"
done
- iscsistart -b $iscsi_param
- echo 'started' > "/tmp/iscsistarted-iscsi"
- echo 'started' > "/tmp/iscsistarted-firmware"
- need_shutdown
- exit 0
+ if ! [ -e /tmp/iscsistarted-firmware ] && iscsistart -b $iscsi_param; then
+ echo 'started' > "/tmp/iscsistarted-iscsi"
+ echo 'started' > "/tmp/iscsistarted-firmware"
+ need_shutdown
+ fi
+ [ "$netif" = dummy ] && exit 0
fi
+
handle_netroot()
{
local iscsi_initiator iscsi_target_name iscsi_target_ip iscsi_target_port
diff --git a/modules.d/95iscsi/parse-iscsiroot.sh b/modules.d/95iscsi/parse-iscsiroot.sh
index 0c8b524..77bd991 100755
--- a/modules.d/95iscsi/parse-iscsiroot.sh
+++ b/modules.d/95iscsi/parse-iscsiroot.sh
@@ -64,7 +64,7 @@ if [ -n "$iscsi_firmware" ] ; then
netroot=${netroot:-iscsi}
modprobe -q iscsi_boot_sysfs 2>/dev/null
modprobe -q iscsi_ibft
- echo "[ -f '/tmp/iscsistarted-firmware' ]" > $hookdir/initqueue/finished/iscsi_firmware_started.sh
+ initqueue --onetime --settled /sbin/iscsiroot dummy "$netroot" "$NEWROOT"
fi
# If it's not iscsi we don't continue
diff --git a/test/TEST-30-ISCSI/test.sh b/test/TEST-30-ISCSI/test.sh
index 4c29956..f597783 100755
--- a/test/TEST-30-ISCSI/test.sh
+++ b/test/TEST-30-ISCSI/test.sh
@@ -69,7 +69,7 @@ do_test_run() {
|| return 1
run_client "netroot=iscsi" \
- "root=LABEL=sysroot ip=192.168.50.101::192.168.50.1:255.255.255.0:iscsi-1:ens3:off" \
+ "iscsi_firmware root=LABEL=sysroot ip=192.168.50.101::192.168.50.1:255.255.255.0:iscsi-1:ens3:off" \
"netroot=iscsi:192.168.50.1::::iqn.2009-06.dracut:target1 netroot=iscsi:192.168.50.1::::iqn.2009-06.dracut:target2" \
|| return 1
return 0

View File

@ -1,127 +0,0 @@
From ac5bff2b6fcbeb6a2409ac9e79721c92b10b4fa9 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Wed, 18 Dec 2013 12:28:51 +0100
Subject: [PATCH] dracut-lib/wait_for_dev(): prevent systemd daemon-reload
prevent a systemd daemon-reload, if it is not necessary to do.
---
modules.d/98systemd/dracut-cmdline.sh | 2 --
modules.d/98systemd/module-setup.sh | 2 ++
modules.d/98systemd/rootfs-generator.sh | 30 ++++++++++++++++++++++++++++++
modules.d/99base/dracut-lib.sh | 30 ++++++++++++++++++++++++------
4 files changed, 56 insertions(+), 8 deletions(-)
create mode 100755 modules.d/98systemd/rootfs-generator.sh
diff --git a/modules.d/98systemd/dracut-cmdline.sh b/modules.d/98systemd/dracut-cmdline.sh
index aa8a02b..3170e75 100755
--- a/modules.d/98systemd/dracut-cmdline.sh
+++ b/modules.d/98systemd/dracut-cmdline.sh
@@ -61,8 +61,6 @@ case "$root" in
rootok=1 ;;
esac
-[ "${root%%:*}" = "block" ] && wait_for_dev "${root#block:}"
-
[ -z "$root" ] && die "No or empty root= argument"
[ -z "$rootok" ] && die "Don't know how to handle 'root=$root'"
diff --git a/modules.d/98systemd/module-setup.sh b/modules.d/98systemd/module-setup.sh
index 748e25b..74ce5f9 100755
--- a/modules.d/98systemd/module-setup.sh
+++ b/modules.d/98systemd/module-setup.sh
@@ -181,6 +181,8 @@ install() {
inst_script "$moddir/dracut-mount.sh" /bin/dracut-mount
inst_script "$moddir/dracut-pre-pivot.sh" /bin/dracut-pre-pivot
+ inst_script "$moddir/rootfs-generator.sh" /lib/systemd/system-generators/dracut-rootfs-generator
+
inst_rules 99-systemd.rules
for i in \
diff --git a/modules.d/98systemd/rootfs-generator.sh b/modules.d/98systemd/rootfs-generator.sh
new file mode 100755
index 0000000..3770c6b
--- /dev/null
+++ b/modules.d/98systemd/rootfs-generator.sh
@@ -0,0 +1,30 @@
+#!/bin/sh
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+# ex: ts=8 sw=4 sts=4 et filetype=sh
+
+type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
+root=$(getarg root=)
+case "$root" in
+ block:LABEL=*|LABEL=*)
+ root="${root#block:}"
+ root="$(echo $root | sed 's,/,\\x2f,g')"
+ root="block:/dev/disk/by-label/${root#LABEL=}"
+ rootok=1 ;;
+ block:UUID=*|UUID=*)
+ root="${root#block:}"
+ root="block:/dev/disk/by-uuid/${root#UUID=}"
+ rootok=1 ;;
+ block:PARTUUID=*|PARTUUID=*)
+ root="${root#block:}"
+ root="block:/dev/disk/by-partuuid/${root#PARTUUID=}"
+ rootok=1 ;;
+ block:PARTLABEL=*|PARTLABEL=*)
+ root="${root#block:}"
+ root="block:/dev/disk/by-partlabel/${root#PARTLABEL=}"
+ rootok=1 ;;
+ /dev/*)
+ root="block:${root}"
+ rootok=1 ;;
+esac
+
+[ "${root%%:*}" = "block" ] && wait_for_dev -n "${root#block:}"
diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
index 970bcfb..85f7cdf 100755
--- a/modules.d/99base/dracut-lib.sh
+++ b/modules.d/99base/dracut-lib.sh
@@ -853,7 +853,18 @@ dev_unit_name()
wait_for_dev()
{
local _name
+ local _needreload
+ local _noreload
+
+ if [ "$1" = "-n" ]; then
+ _noreload=1
+ shift
+ fi
+
_name="$(str_replace "$1" '/' '\x2f')"
+
+ [ -e "${PREFIX}$hookdir/initqueue/finished/devexists-${_name}.sh" ] && return 0
+
printf '[ -e "%s" ]\n' $1 \
>> "${PREFIX}$hookdir/initqueue/finished/devexists-${_name}.sh"
{
@@ -866,14 +877,21 @@ wait_for_dev()
if ! [ -L ${PREFIX}/etc/systemd/system/initrd.target.wants/${_name}.device ]; then
[ -d ${PREFIX}/etc/systemd/system/initrd.target.wants ] || mkdir -p ${PREFIX}/etc/systemd/system/initrd.target.wants
ln -s ../${_name}.device ${PREFIX}/etc/systemd/system/initrd.target.wants/${_name}.device
+ _needreload=1
fi
- mkdir -p ${PREFIX}/etc/systemd/system/${_name}.device.d
- {
- echo "[Unit]"
- echo "JobTimeoutSec=3600"
- } > ${PREFIX}/etc/systemd/system/${_name}.device.d/timeout.conf
- [ -z "$PREFIX" ] && /sbin/initqueue --onetime --unique --name daemon-reload systemctl daemon-reload
+ if ! [ -f ${PREFIX}/etc/systemd/system/${_name}.device.d/timeout.conf ]; then
+ mkdir -p ${PREFIX}/etc/systemd/system/${_name}.device.d
+ {
+ echo "[Unit]"
+ echo "JobTimeoutSec=3600"
+ } > ${PREFIX}/etc/systemd/system/${_name}.device.d/timeout.conf
+ _needreload=1
+ fi
+
+ if [ -z "$PREFIX" ] && [ "$_needreload" = 1 ] && [ -z "$_noreload" ]; then
+ /sbin/initqueue --onetime --unique --name daemon-reload systemctl daemon-reload
+ fi
fi
}

View File

@ -1,4 +1,5 @@
%define dracutlibdir %{_prefix}/lib/dracut
%bcond_without doc
# Variables must be defined
%define with_nbd 1
@ -9,8 +10,8 @@
%endif
Name: dracut
Version: 034
Release: 74.git20131218%{?dist}
Version: 036
Release: 16.git20140206%{?dist}
Summary: Initramfs generator using udev
%if 0%{?fedora} || 0%{?rhel}
@ -28,80 +29,22 @@ URL: https://dracut.wiki.kernel.org/
# Source can be generated by
# http://git.kernel.org/?p=boot/dracut/dracut.git;a=snapshot;h=%{version};sf=tgz
Source0: http://www.kernel.org/pub/linux/utils/boot/dracut/dracut-%{version}.tar.bz2
Patch1: 0001-lvm-install-thin-utils-for-non-hostonly.patch
Patch2: 0002-module-setup.sh-add-comments-for-dracut-called-funct.patch
Patch3: 0003-10i18n-parse-i18n.sh-parse-rd.vconsole-and-rd.locale.patch
Patch4: 0004-dracut.sh-do-not-bail-out-if-kernel-modules-dir-is-m.patch
Patch5: 0005-Doc-cleanup-extend-and-split-and-reuse.patch
Patch6: 0006-dmsquash-live-add-dev-mapper-live-base.patch
Patch7: 0007-base-init.sh-also-mkdir-run-lock.patch
Patch8: 0008-resume-fix-swap-detection-in-hostonly.patch
Patch9: 0009-resume-remove-resume-genrules.sh.patch
Patch10: 0010-Add-lzo-lz4-compression-and-read-INITRD_COMPRESS.patch
Patch11: 0011-lvm-fix-thin-recognition.patch
Patch12: 0012-dracut.sh-also-mkdir-run-lock-which-is-copied-to.patch
Patch13: 0013-dracut.sh-no-need-to-make-subdirs-in-run.patch
Patch14: 0014-network-fcoe-only-redirect-output-to-loginit.pipe-if.patch
Patch15: 0015-mkdir-basic-dirs-in-run.patch
Patch16: 0016-dracut-functions.sh-check_block_and_slaves-skip-LVM-.patch
Patch17: 0017-kernel-modules-ARM-add-mmc_block-usb_storage-to-stat.patch
Patch18: 0018-lvm-always-install-thin-utils-for-lvm.patch
Patch19: 0019-usrmount-module-setup.sh-fixed-typo.patch
Patch20: 0020-Handle-crypto-modules-with-and-without-modaliases.patch
Patch21: 0021-fips-include-crct10dif_generic.patch
Patch22: 0022-iscsi-nbd-do-not-try-to-mount-the-whole-disk-if-root.patch
Patch23: 0023-dracut.spec-move-sbin-dracut-to-usr-sbin-dracut.patch
Patch24: 0024-dracut.sh-fixed-PATH-shortener.patch
Patch25: 0025-dracut.modules.7.asc-removed-empty-section.patch
Patch26: 0026-fips-also-install-etc-system-fips-in-the-initramfs.patch
Patch27: 0027-dracut-functions.sh-Avoid-loading-unnecessary-32-bit.patch
Patch28: 0028-iscsi-nbd-do-not-fail-in-hostonly-mode.patch
Patch29: 0029-systemd-do-not-exit-the-initqueue-if-systemd-asks-a-.patch
Patch30: 0030-Run-xz-and-lzma-with-multiple-threads.patch
Patch31: 0031-kernel-modules-add-ohci-pci-to-the-list-of-forced-mo.patch
Patch32: 0032-lvm-do-not-run-pvscan-for-lvmetad-update.patch
Patch33: 0033-fips-fix-RHEV-vmlinuz-check.patch
Patch34: 0034-dracut.cmdline.7.asc-document-server-ip-of-ip-parame.patch
Patch35: 0035-dracut.sh-_get_fs_type-if-block-device-exists-return.patch
Patch36: 0036-network-net-lib.sh-wait_for_if_up-wait-for-state-UP.patch
Patch37: 0037-network-net-lib.sh-iface_has_link-fixup.patch
Patch38: 0038-network-ifup.sh-before-doing-dhcp-check-if-the-link-.patch
Patch39: 0039-base-dracut-lib.sh-wait_for_dev-relax-requirement.patch
Patch40: 0040-resume-autoconf-resume.patch
Patch41: 0041-resume-no-more-autoresume.patch
Patch42: 0042-dracut.sh-skip-crypt-swaps-with-password-files.patch
Patch43: 0043-dracut-functions.sh-do-not-force-require-modules.bui.patch
Patch44: 0044-10i18n-parse-i18n.sh-fixed-vconsole.conf-locale.conf.patch
Patch45: 0045-95dasd-Install-kernel-modules-only-once.patch
Patch46: 0046-95dasd-Only-install-module-if-normalize_dasd_arg-is-.patch
Patch47: 0047-95dasd_mod-make-dasd_cio_free-optional.patch
Patch48: 0048-95zfcp-Make-installation-optional.patch
Patch49: 0049-95znet-Make-installation-optional.patch
Patch50: 0050-Add-DASD-configuration-for-SuSE.patch
Patch51: 0051-Add-zfcp-scripts-for-SUSE.patch
Patch52: 0052-Make-logfile-configurable.patch
Patch53: 0053-mkinitrd-suse-Add-SUSE-compability-wrapper-for-dracu.patch
Patch54: 0054-mkinitrd-suse.8.asc-Add-manpage-for-SUSE-compat-mkin.patch
Patch55: 0055-Fixup-keymap-setting-for-openSUSE.patch
Patch56: 0056-Fixup-script-permissions.patch
Patch57: 0057-Remove-shebang-from-shell-completion-files.patch
Patch58: 0058-lvm-install-thin-tools-only-when-needed-in-hostonly.patch
Patch59: 0059-i18n-introduce-i18n_install_all-to-install-everythin.patch
Patch60: 0060-dracut.spec-add-new-modules.patch
Patch61: 0061-dracut.spec-remove-suse-man-pages.patch
Patch62: 0062-TODO-update.patch
Patch63: 0063-systemd-dracut-initqueue.sh-fixed-waiting-in-the-loo.patch
Patch64: 0064-base-rdsosreport.sh-add-ip-a-output.patch
Patch65: 0065-usrmount-always-install.patch
Patch66: 0066-fcoe-move-uefi-parsing-to-fcoe-uefi-module.patch
Patch67: 0067-move-uefi-lib-to-a-seperate-module.patch
Patch68: 0068-lvm-fixed-lvm-thin-check.patch
Patch69: 0069-dracut.spec-add-95fcoe-uefi-and-99uefi-lib.patch
Patch70: 0070-test-TEST-17-LVM-THIN-add-test-case-for-lvm-thin-poo.patch
Patch71: 0071-test-TEST-17-LVM-THIN-remove-.testdir.patch
Patch72: 0072-iscsi-do-iscsi_firmware-regardless-of-network.patch
Patch73: 0073-dracut-lib-wait_for_dev-prevent-systemd-daemon-reloa.patch
Source0: http://www.kernel.org/pub/linux/utils/boot/dracut/dracut-%{version}.tar.xz
Patch1: 0001-NEWS-update-for-version-036.patch
Patch2: 0002-network-understand-ip-.-dns1-dns2.patch
Patch3: 0003-dracut.sh-only-set-the-owner-of-files-to-0-0-if-gene.patch
Patch4: 0004-dracut-functions.sh-also-search-in-the-updates-direc.patch
Patch5: 0005-network-net-lib.sh-parse-ibft-nameserver-settings.patch
Patch6: 0006-network-ifup.sh-handle-dns1-and-dns2-from-ip-setting.patch
Patch7: 0007-base-rdsosreport.sh-add-dracut-version-to-rdsosrepor.patch
Patch8: 0008-test-include-the-same-Makefile.testdir.patch
Patch9: 0009-network-ifup-do-not-ifup-an-already-setup-network-in.patch
Patch10: 0010-network-ifup-do-not-run-dhclient-twice-on-the-same-i.patch
Patch11: 0011-nfs-nfsroot-symlink-dev-null-to-dev-nfs-as-a-marker-.patch
Patch12: 0012-systemd-dracut-pre-pivot-run-for-dev-nfs-root-and-cl.patch
Patch13: 0013-Do-not-reload-systemd-with-wait_for_dev.patch
Patch14: 0014-systemd-add-sys-kernel-config.mount.patch
Patch15: 0015-Factor-out-all-the-type-V-commands.patch
BuildRequires: bash git
@ -119,6 +62,7 @@ BuildRequires: pkgconfig
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%endif
%if %{with doc}
%if 0%{?fedora} || 0%{?rhel}
BuildRequires: docbook-style-xsl docbook-dtds libxslt
%endif
@ -128,6 +72,8 @@ BuildRequires: docbook-style-xsl docbook-dtds libxslt
%endif
BuildRequires: asciidoc
%endif
%if 0%{?fedora} > 12 || 0%{?rhel}
# no "provides", because dracut does not offer
@ -277,7 +223,10 @@ git am -p1 %{patches}
%endif
%build
%configure --systemdsystemunitdir=%{_unitdir} --bashcompletiondir=$(pkg-config --variable=completionsdir bash-completion) --libdir=%{_prefix}/lib
%configure --systemdsystemunitdir=%{_unitdir} --bashcompletiondir=$(pkg-config --variable=completionsdir bash-completion) --libdir=%{_prefix}/lib \
%if %{without doc}
--disable-documentation
%endif
make %{?_smp_mflags}
@ -359,7 +308,9 @@ rm -rf -- $RPM_BUILD_ROOT
%files
%defattr(-,root,root,0755)
%if %{with doc}
%doc README HACKING TODO COPYING AUTHORS NEWS dracut.html dracut.png dracut.svg
%endif
%{_bindir}/dracut
# compat symlink
%{_sbindir}/dracut
@ -377,12 +328,15 @@ rm -rf -- $RPM_BUILD_ROOT
%{dracutlibdir}/dracut-logger.sh
%{dracutlibdir}/dracut-initramfs-restore
%{dracutlibdir}/dracut-install
%{dracutlibdir}/skipcpio
%config(noreplace) %{_sysconfdir}/dracut.conf
%if 0%{?fedora} || 0%{?suse_version} || 0%{?rhel}
%{dracutlibdir}/dracut.conf.d/01-dist.conf
%endif
%dir %{_sysconfdir}/dracut.conf.d
%dir %{dracutlibdir}/dracut.conf.d
%if %{with doc}
%{_mandir}/man8/dracut.8*
%{_mandir}/man8/*service.8*
%if 0%{?fedora} > 12 || 0%{?rhel} >= 6 || 0%{?suse_version} > 9999
@ -394,6 +348,8 @@ rm -rf -- $RPM_BUILD_ROOT
%{_mandir}/man7/dracut.modules.7*
%{_mandir}/man7/dracut.bootup.7*
%{_mandir}/man5/dracut.conf.5*
%endif
%if %{defined _unitdir}
%{dracutlibdir}/modules.d/00systemd-bootchart
%else
@ -501,7 +457,11 @@ rm -rf -- $RPM_BUILD_ROOT
%files fips-aesni
%defattr(-,root,root,0755)
%if %{with doc}
%doc COPYING
%endif
%{dracutlibdir}/modules.d/02fips-aesni
%files caps
@ -510,7 +470,11 @@ rm -rf -- $RPM_BUILD_ROOT
%files tools
%defattr(-,root,root,0755)
%{_mandir}/man8/dracut-catimages.8*
%if %{with doc}
%doc %{_mandir}/man8/dracut-catimages.8*
%endif
%{_bindir}/dracut-catimages
%dir /boot/dracut
%dir /var/lib/dracut
@ -529,6 +493,14 @@ rm -rf -- $RPM_BUILD_ROOT
%endif
%changelog
* Thu Feb 06 2014 Harald Hoyer <harald@redhat.com> 036-16.git20140206
- version 036
- parse dns information on "ip=" command line arg
- preserve ownership of files, if root creates the initramfs
- parse ibft nameserver settings
- do not run dhcp twice on an interface
- try to not reload systemd
* Wed Dec 18 2013 Harald Hoyer <harald@redhat.com> 034-74.git20131218
- do not systemctl daemon-reload
- do iscsistart for iscsi_firmware even without network

View File

@ -1 +1 @@
23b0983d57a791c3d94ed13152226385 dracut-034.tar.bz2
82c7cf082145493751fa31e5f955ce5b dracut-036.tar.xz