Compare commits

...

10 Commits
master ... f20

Author SHA1 Message Date
Harald Hoyer 78a3b5d184 dracut-037-13.git20150518
- do not hard require vim-minimal
Resolves: rhbz#1118988
2015-05-18 15:12:10 +02:00
Adam Williamson 1ba35bf55e revert bad upstream changes that cause RHBZ #1084766 2014-04-21 09:17:03 -07:00
Harald Hoyer 05e0699900 dracut-037-10.git20140402
- fixed fstab.sys with systemd
- DHCPv6 fixes
- dm-cache module now included
- FCoE fixes
2014-04-02 10:03:51 +02:00
Harald Hoyer 76b7b86422 dracut-037-3.git20140320
- fixed dracut-initramfs-restore with microcode
2014-03-20 13:45:30 +01:00
Harald Hoyer 534e2b9806 dracut-037 2014-03-20 12:31:00 +01:00
Harald Hoyer 1678c4f3ca dracut-034-80.git20140122
- fixed /dev/dev/resume
Resolves: rhbz#1045116
- add more drivers
Resolves: rhbz#1044779
- fixed resume rules
Resolves: rhbz#1045704
- add /boot/efi to critical paths
Resolves: rhbz#1046510
2014-01-22 12:52:40 +01:00
Harald Hoyer 1f5ee71119 lvm: fix the fix 2013-12-13 11:15:11 +01:00
Harald Hoyer 8e410431c8 dracut-034-64.git20131205.1
- fixed lvm thin check
Resolves: rhbz#1040669
2013-12-13 11:08:17 +01:00
Harald Hoyer bc859e10e4 dracut-034-64.git20131205
- fixed failing the boot while waiting for password input
2013-12-05 18:49:12 +01:00
Harald Hoyer 448e118f2b backout some patches for F20 release 2013-12-05 17:43:54 +01:00
76 changed files with 823 additions and 8153 deletions

1
.gitignore vendored
View File

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

View File

@ -0,0 +1,39 @@
From 331fb8dab7de2f48ee55541707e10d1d7adfff38 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 20 Mar 2014 13:18:13 +0100
Subject: [PATCH] dracut-initramfs-restore: fix unpacking with early microcode
---
dracut-initramfs-restore.sh | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/dracut-initramfs-restore.sh b/dracut-initramfs-restore.sh
index f29c814..0dd1938 100644
--- a/dracut-initramfs-restore.sh
+++ b/dracut-initramfs-restore.sh
@@ -6,6 +6,10 @@ set -e
KERNEL_VERSION="$(uname -r)"
+[[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut
+SKIP="$dracutbasedir/skipcpio"
+[[ -x $SKIP ]] || SKIP=cat
+
[[ -f /etc/machine-id ]] && read MACHINE_ID < /etc/machine-id
if [[ $MACHINE_ID ]] && [[ -d /boot/${MACHINE_ID} || -L /boot/${MACHINE_ID} ]] ; then
@@ -16,11 +20,11 @@ fi
cd /run/initramfs
[ -f .need_shutdown -a -f "$IMG" ] || exit 1
-if zcat "$IMG" | cpio -id --quiet >/dev/null; then
+if $SKIP "$IMG" | zcat | cpio -id --no-absolute-filenames --quiet >/dev/null; then
rm -f -- .need_shutdown
-elif xzcat "$IMG" | cpio -id --quiet >/dev/null; then
+elif $SKIP "$IMG" | xzcat | cpio -id --no-absolute-filenames --quiet >/dev/null; then
rm -f -- .need_shutdown
-elif lz4 -d -c "$IMG" | cpio -id --quiet >/dev/null; then
+elif $SKIP "$IMG" | lz4 -d -c | cpio -id --no-absolute-filenames --quiet >/dev/null; then
rm -f -- .need_shutdown
else
# something failed, so we clean up

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,21 @@
From e5bb8e1b79419bfdd30dac77eea6dbe2a718d7e0 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 20 Mar 2014 13:42:08 +0100
Subject: [PATCH] systemd: add systemd-gpt-auto-generator
---
modules.d/98systemd/module-setup.sh | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules.d/98systemd/module-setup.sh b/modules.d/98systemd/module-setup.sh
index c72aad4..e7bf73b 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 \
+ $systemdutildir/system-generators/systemd-gpt-auto-generator \
\
$systemdsystemunitdir/cryptsetup.target \
$systemdsystemunitdir/emergency.target \

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,44 @@
From 07f6c520d6aff623c21d6f48cb16e496ae432b23 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 25 Mar 2014 15:28:19 +0100
Subject: [PATCH] fcoe: wait for lldpad to be ready
---
modules.d/95fcoe/fcoe-up.sh | 10 ++++++++--
modules.d/95fcoe/module-setup.sh | 2 +-
2 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/modules.d/95fcoe/fcoe-up.sh b/modules.d/95fcoe/fcoe-up.sh
index 511c554..dd45358 100755
--- a/modules.d/95fcoe/fcoe-up.sh
+++ b/modules.d/95fcoe/fcoe-up.sh
@@ -28,8 +28,14 @@ if [ "$dcb" = "dcb" ]; then
# are to kill it and start a new lldpad to take over. Data is transfered
# between the 2 using a shm segment
lldpad -d
- # stupid tools, need sleep
- sleep 1
+ # wait for lldpad to be ready
+ i=0
+ while [ $i -lt 60 ]; do
+ lldptool -p && break
+ info "Waiting for lldpad to be ready"
+ sleep 1
+ i=$(($i+1))
+ done
dcbtool sc "$netif" dcb on
sleep 1
dcbtool sc "$netif" app:fcoe e:1 a:1 w:1
diff --git a/modules.d/95fcoe/module-setup.sh b/modules.d/95fcoe/module-setup.sh
index c502ba0..9a52c00 100755
--- a/modules.d/95fcoe/module-setup.sh
+++ b/modules.d/95fcoe/module-setup.sh
@@ -21,7 +21,7 @@ installkernel() {
# called by dracut
install() {
- inst_multiple ip dcbtool fipvlan lldpad readlink
+ inst_multiple ip dcbtool fipvlan lldpad readlink lldptool
mkdir -m 0755 -p "$initdir/var/lib/lldpad"

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

View File

@ -0,0 +1,28 @@
From 95def7a4526118c75aa0900ffe9e2889174cc8a3 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 25 Mar 2014 15:39:56 +0100
Subject: [PATCH] network: handle "ip=dhcp6" for all interfaces
https://bugzilla.redhat.com/show_bug.cgi?id=1064365
---
modules.d/40network/ifup.sh | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/modules.d/40network/ifup.sh b/modules.d/40network/ifup.sh
index 51b0d52..ede0188 100755
--- a/modules.d/40network/ifup.sh
+++ b/modules.d/40network/ifup.sh
@@ -364,7 +364,12 @@ fi
# no ip option directed at our interface?
if [ ! -e /tmp/net.${netif}.up ]; then
- do_dhcp -4
+ if getargs 'ip=dhcp6'; then
+ load_ipv6
+ do_dhcp -6
+ else
+ do_dhcp -4
+ fi
fi
exit 0

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,83 @@
From 7501f09c99a0f0252271234664f5a9c54ff43ad0 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 27 Mar 2014 09:27:53 +0100
Subject: [PATCH] lsinitrd.sh: prevent < <$() construct
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Running dracut in a chroot environment, which has /dev not correctly
setup will result in errors like:
/usr/bin/lsinitrd: line 164: /dev/fd/62: No such file or directory
cpio: Malformed number <20>5<EFBFBD>OK<4F><4B>
cpio: Malformed number 5<>OK<4F><4B>
cpio: Malformed number <20>OK<4F><4B>
This is because bash wants /dev/fd/<num> for constructs like:
foo < <$(bar)
---
lsinitrd.sh | 50 +++++++++++++++++++++++++++++---------------------
1 file changed, 29 insertions(+), 21 deletions(-)
diff --git a/lsinitrd.sh b/lsinitrd.sh
index 8dc9032..a697bc2 100755
--- a/lsinitrd.sh
+++ b/lsinitrd.sh
@@ -160,27 +160,35 @@ case $bin in
;;
esac
-if [[ $SKIP ]]; then
- read -N 6 bin < <($SKIP "$image")
-fi
-
-case $bin in
- $'\x1f\x8b'*)
- CAT="zcat --";;
- BZh*)
- CAT="bzcat --";;
- $'\x71\xc7'*|070701)
- CAT="cat --"
- ;;
- $'\x02\x21'*)
- CAT="lz4 -d -c";;
- *)
- CAT="xzcat --";
- if echo "test"|xz|xzcat --single-stream >/dev/null 2>&1; then
- CAT="xzcat --single-stream --"
- fi
- ;;
-esac
+CAT=$({
+ if [[ $SKIP ]]; then
+ $SKIP "$image"
+ else
+ cat "$image"
+ fi } | {
+ read -N 6 bin
+ case $bin in
+ $'\x1f\x8b'*)
+ echo "zcat --"
+ ;;
+ BZh*)
+ echo "bzcat --"
+ ;;
+ $'\x71\xc7'*|070701)
+ echo "cat --"
+ ;;
+ $'\x02\x21'*)
+ echo "lz4 -d -c"
+ ;;
+ *)
+ if echo "test"|xz|xzcat --single-stream >/dev/null 2>&1; then
+ echo "xzcat --single-stream --"
+ else
+ echo "xzcat --"
+ fi
+ ;;
+ esac
+ })
skipcpio()
{

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,35 @@
From 83facaf59871b348e098a36988865d33c0efe4e8 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 27 Mar 2014 12:31:23 +0100
Subject: [PATCH] network: DCHPv6: set valid_lft and preferred_lft
https://bugzilla.redhat.com/show_bug.cgi?id=1064365
---
modules.d/40network/dhclient-script.sh | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/modules.d/40network/dhclient-script.sh b/modules.d/40network/dhclient-script.sh
index 50e8932..ba05250 100755
--- a/modules.d/40network/dhclient-script.sh
+++ b/modules.d/40network/dhclient-script.sh
@@ -64,13 +64,17 @@ setup_interface6() {
search=$(printf -- "$new_domain_search")
namesrv=$new_domain_name_servers
hostname=$new_host_name
- lease_time=$new_dhcp_lease_time
+ [ -n "$new_dhcp_lease_time" ] && lease_time=$new_dhcp_lease_time
+ [ -n "$new_max_life" ] && lease_time=$new_max_life
+ preferred_lft=$lease_time
+ [ -n "$new_preferred_life" ] && preferred_lft=$new_preferred_life
[ -f /tmp/net.$netif.override ] && . /tmp/net.$netif.override
ip -6 addr add ${new_ip6_address}/${new_ip6_prefixlen} \
- dev ${netif} scope global valid_lft ${lease_time} \
- preferred_lft ${lease_time}
+ dev ${netif} scope global \
+ ${lease_time:+valid_lft $lease_time} \
+ ${preferred_lft:+preferred_lft ${preferred_lft}}
[ -n "${search}${domain}" ] && echo "search $search $domain" > /tmp/net.$netif.resolv.conf
if [ -n "$namesrv" ] ; then

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,23 @@
From c8cb734e99e9d3e132a911c477f99b42a6629baa Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 27 Mar 2014 12:34:40 +0100
Subject: [PATCH] dm: add dm-cache modules
https://bugzilla.redhat.com/show_bug.cgi?id=1081435
---
modules.d/90dm/module-setup.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules.d/90dm/module-setup.sh b/modules.d/90dm/module-setup.sh
index 829c24b..2367588 100755
--- a/modules.d/90dm/module-setup.sh
+++ b/modules.d/90dm/module-setup.sh
@@ -16,7 +16,7 @@ depends() {
# called by dracut
installkernel() {
instmods =drivers/md
- instmods dm_mod
+ instmods dm_mod dm-cache dm-cache-mq dm-cache-cleaner
}
# called by dracut

View File

@ -0,0 +1,55 @@
From 5732e442b1017986f486258b11b05e43c0b9e154 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 31 Mar 2014 16:21:49 +0200
Subject: [PATCH] fcoe: workaround fcoe timing issues
---
modules.d/95fcoe/fcoe-genrules.sh | 2 +-
modules.d/95fcoe/fcoe-up.sh | 23 ++++++++++++++++++++---
2 files changed, 21 insertions(+), 4 deletions(-)
diff --git a/modules.d/95fcoe/fcoe-genrules.sh b/modules.d/95fcoe/fcoe-genrules.sh
index 80894ed..fa3af6d 100755
--- a/modules.d/95fcoe/fcoe-genrules.sh
+++ b/modules.d/95fcoe/fcoe-genrules.sh
@@ -13,4 +13,4 @@
else
printf 'ACTION=="add", SUBSYSTEM=="net", NAME=="%s", RUN+="/sbin/initqueue --onetime --unique --name fcoe-up-$env{INTERFACE} /sbin/fcoe-up $env{INTERFACE} %s"\n' "$fcoe_interface" "$fcoe_dcb"
fi
-} > /etc/udev/rules.d/92-fcoe.rules
+} >> /etc/udev/rules.d/92-fcoe.rules
diff --git a/modules.d/95fcoe/fcoe-up.sh b/modules.d/95fcoe/fcoe-up.sh
index dd45358..d8c73c8 100755
--- a/modules.d/95fcoe/fcoe-up.sh
+++ b/modules.d/95fcoe/fcoe-up.sh
@@ -36,10 +36,27 @@ if [ "$dcb" = "dcb" ]; then
sleep 1
i=$(($i+1))
done
- dcbtool sc "$netif" dcb on
- sleep 1
- dcbtool sc "$netif" app:fcoe e:1 a:1 w:1
+
+ # on some systems lldpad needs some time
+ # sleep until we find a better solution
+ sleep 30
+
+ while [ $i -lt 60 ]; do
+ dcbtool sc "$netif" dcb on && break
+ info "Retrying to turn dcb on"
+ sleep 1
+ i=$(($i+1))
+ done
+
+ while [ $i -lt 60 ]; do
+ dcbtool sc "$netif" app:fcoe e:1 a:1 w:1 && break
+ info "Retrying to turn fcoe on"
+ sleep 1
+ i=$(($i+1))
+ done
+
sleep 1
+
fipvlan "$netif" -c -s
elif [ "$netdriver" = "bnx2x" ]; then
# If driver is bnx2x, do not use /sys/module/fcoe/parameters/create but fipvlan

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,36 @@
From d3a6c4286ae4d815f5dcf88133ff73017ad2d65b Mon Sep 17 00:00:00 2001
From: WANG Chao <chaowang@redhat.com>
Date: Tue, 1 Apr 2014 15:20:49 +0800
Subject: [PATCH] fstab: do not mount and fsck from fstab if using systemd
If using systemd in initramfs, we could run into a race condition when
dracut and systemd both are trying to mount and run fsck for the same
filesystem, and mount or fsck could be a failure.
To fix such failure, we should use systemd to mount/fsck from /etc/fstab
only.
v2: check $DRACUT_SYSTEMD suggested by Alexander Tsoy
Signed-off-by: WANG Chao <chaowang@redhat.com>
---
modules.d/95fstab-sys/mount-sys.sh | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/modules.d/95fstab-sys/mount-sys.sh b/modules.d/95fstab-sys/mount-sys.sh
index 12711a0..a237810 100755
--- a/modules.d/95fstab-sys/mount-sys.sh
+++ b/modules.d/95fstab-sys/mount-sys.sh
@@ -27,7 +27,11 @@ fstab_mount() {
return 0
}
-[ -f /etc/fstab ] && fstab_mount /etc/fstab
+# systemd will mount and run fsck from /etc/fstab and we don't want to
+# run into a race condition.
+if [ -z "$DRACUT_SYSTEMD" ]; then
+ [ -f /etc/fstab ] && fstab_mount /etc/fstab
+fi
# prefer $NEWROOT/etc/fstab.sys over local /etc/fstab.sys
if [ -f $NEWROOT/etc/fstab.sys ]; then

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,24 @@
From b0e0b8120b175f18ef59232857acf4b188cda90b Mon Sep 17 00:00:00 2001
From: Adam Williamson <awilliam@redhat.com>
Date: Thu, 17 Apr 2014 18:55:20 -0700
Subject: [PATCH] Revert "Add -[-no]-hostonly-cmdline option handling for
getopt"
This reverts commit 646e0506f6887db7811694c2c72ba5e516025993.
---
dracut.sh | 2 --
1 file changed, 2 deletions(-)
diff --git a/dracut.sh b/dracut.sh
index c1ef474..1899db9 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -349,8 +349,6 @@ rearrange_params()
--long host-only \
--long no-hostonly \
--long no-host-only \
- --long hostonly-cmdline \
- --long no-hostonly-cmdline \
--long persistent-policy: \
--long fstab \
--long help \

View File

@ -0,0 +1,226 @@
From 16b6349ae643c06807541f3cfcf34864ae7ffb4f Mon Sep 17 00:00:00 2001
From: Adam Williamson <awilliam@redhat.com>
Date: Thu, 17 Apr 2014 18:55:31 -0700
Subject: [PATCH] Revert "Add flag to toggle hostonly cmdline storing in the
initramfs"
This reverts commit ab9457efd78ff74c654b4123956cdbd131935066.
---
dracut.8.asc | 6 ------
dracut.conf.5.asc | 3 ---
dracut.sh | 18 +++-------------
modules.d/90crypt/module-setup.sh | 6 ++----
modules.d/90dmraid/module-setup.sh | 6 ++----
modules.d/90lvm/module-setup.sh | 6 ++----
modules.d/90mdraid/module-setup.sh | 6 ++----
modules.d/95rootfs-block/module-setup.sh | 37 ++++++++++++--------------------
8 files changed, 25 insertions(+), 63 deletions(-)
diff --git a/dracut.8.asc b/dracut.8.asc
index 14ce26b..583a6dd 100644
--- a/dracut.8.asc
+++ b/dracut.8.asc
@@ -300,12 +300,6 @@ provide a valid _/etc/fstab_.
**-N, --no-hostonly**::
Disable Host-Only mode
-**--hostonly-cmdline**:
- Store kernel command line arguments needed in the initramfs
-
-**--no-hostonly-cmdline**:
- Do not store kernel command line arguments needed in the initramfs
-
**--persistent-policy** _<policy>_::
Use _<policy>_ to address disks and partitions.
_<policy>_ can be any directory name found in /dev/disk.
diff --git a/dracut.conf.5.asc b/dracut.conf.5.asc
index be62da9..5c94118 100644
--- a/dracut.conf.5.asc
+++ b/dracut.conf.5.asc
@@ -76,9 +76,6 @@ Configuration files must have the extension .conf; other extensions are ignored.
Host-Only mode: Install only what is needed for booting the local host
instead of a generic host and generate host-specific configuration.
-*hostonly_cmdline*"__{yes|no}__"::
- If set, store the kernel command line arguments needed in the initramfs
-
*persistent_policy=*"__<policy>__"::
Use _<policy>_ to address disks and partitions.
_<policy>_ can be any directory name found in /dev/disk.
diff --git a/dracut.sh b/dracut.sh
index 1899db9..1b33165 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -137,10 +137,6 @@ Creates initial ramdisk images for preloading modules
-H, --hostonly Host-Only mode: Install only what is needed for
booting the local host instead of a generic host.
-N, --no-hostonly Disables Host-Only mode
- --hostonly-cmdline Store kernel command line arguments needed
- in the initramfs
- --no-hostonly-cmdline Do not store kernel command line arguments needed
- in the initramfs
--persistent-policy [POLICY]
Use [POLICY] to address disks and partitions.
POLICY can be any directory name found in /dev/disk.
@@ -492,12 +488,9 @@ while :; do
-f|--force) force=yes;;
--kernel-only) kernel_only="yes"; no_kernel="no";;
--no-kernel) kernel_only="no"; no_kernel="yes";;
- --print-cmdline)
- print_cmdline="yes"; hostonly_l="yes"; kernel_only="yes"; no_kernel="yes";;
- --early-microcode)
- early_microcode_l="yes";;
- --no-early-microcode)
- early_microcode_l="no";;
+ --print-cmdline) print_cmdline="yes"; hostonly_l="yes"; kernel_only="yes"; no_kernel="yes";;
+ --early-microcode) early_microcode_l="yes";;
+ --no-early-microcode) early_microcode_l="no";;
--strip) do_strip_l="yes";;
--nostrip) do_strip_l="no";;
--prelink) do_prelink_l="yes";;
@@ -524,10 +517,6 @@ while :; do
hostonly_l="yes" ;;
-N|--no-hostonly|--no-host-only)
hostonly_l="no" ;;
- --hostonly-cmdline)
- hostonly_cmdline_l="yes" ;;
- --no-hostonly-cmdline)
- hostonly_cmdline_l="no" ;;
--persistent-policy)
persistent_policy_l="$2"; PARMS_TO_STORE+=" '$2'"; shift;;
--fstab) use_fstab_l="yes" ;;
@@ -766,7 +755,6 @@ stdloglvl=$((stdloglvl + verbosity_mod_l))
[[ $prefix_l ]] && prefix=$prefix_l
[[ $prefix = "/" ]] && unset prefix
[[ $hostonly_l ]] && hostonly=$hostonly_l
-[[ $hostonly_cmdline_l ]] && hostonly_cmdline=$hostonly_cmdline_l
[[ $persistent_policy_l ]] && persistent_policy=$persistent_policy_l
[[ $use_fstab_l ]] && use_fstab=$use_fstab_l
[[ $mdadmconf_l ]] && mdadmconf=$mdadmconf_l
diff --git a/modules.d/90crypt/module-setup.sh b/modules.d/90crypt/module-setup.sh
index 5707404..21d49c4 100755
--- a/modules.d/90crypt/module-setup.sh
+++ b/modules.d/90crypt/module-setup.sh
@@ -51,10 +51,8 @@ cmdline() {
# called by dracut
install() {
- if [[ $hostonly_cmdline == "yes" ]]; then
- cmdline >> "${initdir}/etc/cmdline.d/90crypt.conf"
- echo >> "${initdir}/etc/cmdline.d/90crypt.conf"
- fi
+ cmdline >> "${initdir}/etc/cmdline.d/90crypt.conf"
+ echo >> "${initdir}/etc/cmdline.d/90crypt.conf"
inst_multiple cryptsetup rmdir readlink umount
inst_script "$moddir"/cryptroot-ask.sh /sbin/cryptroot-ask
diff --git a/modules.d/90dmraid/module-setup.sh b/modules.d/90dmraid/module-setup.sh
index aebb28d..d3888a4 100755
--- a/modules.d/90dmraid/module-setup.sh
+++ b/modules.d/90dmraid/module-setup.sh
@@ -65,10 +65,8 @@ cmdline() {
install() {
local _i
- if [[ $hostonly_cmdline == "yes" ]]; then
- cmdline >> "${initdir}/etc/cmdline.d/90dmraid.conf"
- echo >> "${initdir}/etc/cmdline.d/90dmraid.conf"
- fi
+ cmdline >> "${initdir}/etc/cmdline.d/90dmraid.conf"
+ echo >> "${initdir}/etc/cmdline.d/90dmraid.conf"
inst_multiple dmraid
inst_multiple -o kpartx
diff --git a/modules.d/90lvm/module-setup.sh b/modules.d/90lvm/module-setup.sh
index 93a452e..357797f 100755
--- a/modules.d/90lvm/module-setup.sh
+++ b/modules.d/90lvm/module-setup.sh
@@ -50,10 +50,8 @@ install() {
inst lvm
- if [[ $hostonly_cmdline == "yes" ]]; then
- cmdline >> "${initdir}/etc/cmdline.d/90lvm.conf"
- echo >> "${initdir}/etc/cmdline.d/90lvm.conf"
- fi
+ cmdline >> "${initdir}/etc/cmdline.d/90lvm.conf"
+ echo >> "${initdir}/etc/cmdline.d/90lvm.conf"
inst_rules "$moddir/64-lvm.rules"
diff --git a/modules.d/90mdraid/module-setup.sh b/modules.d/90mdraid/module-setup.sh
index ac745d1..7d72098 100755
--- a/modules.d/90mdraid/module-setup.sh
+++ b/modules.d/90mdraid/module-setup.sh
@@ -70,10 +70,8 @@ install() {
inst $(command -v partx) /sbin/partx
inst $(command -v mdadm) /sbin/mdadm
- if [[ $hostonly_cmdline == "yes" ]]; then
- cmdline >> "${initdir}/etc/cmdline.d/90mdraid.conf"
- echo >> "${initdir}/etc/cmdline.d/90mdraid.conf"
- fi
+ cmdline >> "${initdir}/etc/cmdline.d/90mdraid.conf"
+ echo >> "${initdir}/etc/cmdline.d/90mdraid.conf"
# <mdadm-3.3 udev rule
inst_rules 64-md-raid.rules
diff --git a/modules.d/95rootfs-block/module-setup.sh b/modules.d/95rootfs-block/module-setup.sh
index b209ab6..7bd0d2f 100755
--- a/modules.d/95rootfs-block/module-setup.sh
+++ b/modules.d/95rootfs-block/module-setup.sh
@@ -12,25 +12,6 @@ depends() {
echo fs-lib
}
-cmdline_journal() {
- if [[ $hostonly ]]; then
- for dev in "${!host_fs_types[@]}"; do
- [[ ${host_fs_types[$dev]} = "reiserfs" ]] || [[ ${host_fs_types[$dev]} = "xfs" ]] || continue
- rootopts=$(find_dev_fsopts "$dev")
- if [[ ${host_fs_types[$dev]} = "reiserfs" ]]; then
- journaldev=$(fs_get_option $rootopts "jdev")
- elif [[ ${host_fs_types[$dev]} = "xfs" ]]; then
- journaldev=$(fs_get_option $rootopts "logdev")
- fi
-
- if [ -n "$journaldev" ]; then
- printf " root.journaldev=%s" "$journaldev"
- fi
- done
- fi
- return 0
-}
-
# called by dracut
cmdline() {
local dev=/dev/block/$(find_root_block_device)
@@ -39,14 +20,24 @@ cmdline() {
printf " rootflags=%s" "$(find_mp_fsopts /)"
printf " rootfstype=%s" "$(find_mp_fstype /)"
fi
- cmdline_journal
}
# called by dracut
install() {
- if [[ $hostonly_cmdline == "yes" ]]; then
- cmdline_journal | while read journaldev; do
- [[ $journaldev ]] && printf "%s\n" "$journaldev" >> "${initdir}/etc/cmdline.d/95root-journaldev.conf"
+
+ if [[ $hostonly ]]; then
+ for dev in "${!host_fs_types[@]}"; do
+ [[ ${host_fs_types[$dev]} = "reiserfs" ]] || [[ ${host_fs_types[$dev]} = "xfs" ]] || continue
+ rootopts=$(find_dev_fsopts "$dev")
+ if [[ ${host_fs_types[$dev]} = "reiserfs" ]]; then
+ journaldev=$(fs_get_option $rootopts "jdev")
+ elif [[ ${host_fs_types[$dev]} = "xfs" ]]; then
+ journaldev=$(fs_get_option $rootopts "logdev")
+ fi
+
+ if [ -n "$journaldev" ]; then
+ printf "%s\n" "root.journaldev=$journaldev" >> "${initdir}/etc/cmdline.d/95root-journaldev.conf"
+ fi
done
fi

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,130 @@
From bda18766784135164eb85353ebf48e3f5fbad14d Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 22 Jul 2014 14:09:06 +0200
Subject: [PATCH] add "--install-optional" and install_optional_items
(cherry picked from commit 54b68829b60bc3f4c28cfca1ab0336584fe1e74c)
---
dracut-bash-completion.sh | 4 ++--
dracut.8.asc | 3 +++
dracut.conf.5.asc | 4 ++++
dracut.conf.d/fedora.conf.example | 2 +-
dracut.sh | 13 +++++++++++++
5 files changed, 23 insertions(+), 3 deletions(-)
diff --git a/dracut-bash-completion.sh b/dracut-bash-completion.sh
index 9f359c6..feced60 100644
--- a/dracut-bash-completion.sh
+++ b/dracut-bash-completion.sh
@@ -40,7 +40,7 @@ _dracut() {
--omit-drivers --modules --omit --drivers --filesystems --install
--fwdir --libdirs --fscks --add-fstab --mount --device --nofscks
--kmoddir --conf --confdir --tmpdir --stdlog --compress --prefix
- --kernel-cmdline --sshkey --persistent-policy'
+ --kernel-cmdline --sshkey --persistent-policy --install-optional'
)
if __contains_word "$prev" ${OPTS[ARG]}; then
@@ -49,7 +49,7 @@ _dracut() {
comps=$(compgen -d -- "$cur")
compopt -o filenames
;;
- -c|--conf|--sshkey|--add-fstab|--add-device|-I|--install)
+ -c|--conf|--sshkey|--add-fstab|--add-device|-I|--install|--install-optional)
comps=$(compgen -f -- "$cur")
compopt -o filenames
;;
diff --git a/dracut.8.asc b/dracut.8.asc
index 583a6dd..0d068b0 100644
--- a/dracut.8.asc
+++ b/dracut.8.asc
@@ -343,6 +343,9 @@ example:
----
===============================
+**--install-optional** _<file list>_::
+ install the space separated list of files into the initramfs, if they exist.
+
**--gzip**::
Compress the generated initramfs using gzip. This will be done by default,
unless another compression option or --no-compress is passed. Equivalent to
diff --git a/dracut.conf.5.asc b/dracut.conf.5.asc
index 5c94118..65d3173 100644
--- a/dracut.conf.5.asc
+++ b/dracut.conf.5.asc
@@ -66,6 +66,10 @@ Configuration files must have the extension .conf; other extensions are ignored.
*install_items+=*" __<file>__[ __<file>__ ...] "::
Specify additional files to include in the initramfs, separated by spaces.
+*install_optional_items+=*" __<file>__[ __<file>__ ...] "::
+ Specify additional files to include in the initramfs, separated by spaces,
+ if they exist.
+
*do_strip=*"__{yes|no}__"::
Strip binaries in the initramfs (default=yes)
diff --git a/dracut.conf.d/fedora.conf.example b/dracut.conf.d/fedora.conf.example
index 147fd72..96ce2c8 100644
--- a/dracut.conf.d/fedora.conf.example
+++ b/dracut.conf.d/fedora.conf.example
@@ -6,7 +6,7 @@ i18n_default_font="latarcyrheb-sun16"
i18n_install_all="yes"
stdloglvl=3
sysloglvl=5
-install_items+=" vi /etc/virc ps grep cat rm "
+install_optional_items+=" vi /etc/virc ps grep cat rm "
prefix="/"
systemdutildir=/usr/lib/systemd
systemdsystemunitdir=/usr/lib/systemd/system
diff --git a/dracut.sh b/dracut.sh
index 1b33165..ab05db1 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -154,6 +154,8 @@ Creates initial ramdisk images for preloading modules
in the final initramfs.
-I, --install [LIST] Install the space separated list of files into the
initramfs.
+ --install-optional [LIST] Install the space separated list of files into the
+ initramfs, if they exist.
--gzip Compress the generated initramfs using gzip.
This will be done by default, unless another
compression option or --no-compress is passed.
@@ -301,6 +303,7 @@ rearrange_params()
--long drivers: \
--long filesystems: \
--long install: \
+ --long install-optional: \
--long fwdir: \
--long libdirs: \
--long fscks: \
@@ -463,6 +466,9 @@ while :; do
-d|--drivers) push drivers_l "$2"; PARMS_TO_STORE+=" '$2'"; shift;;
--filesystems) push filesystems_l "$2"; PARMS_TO_STORE+=" '$2'"; shift;;
-I|--install) push install_items_l "$2"; PARMS_TO_STORE+=" '$2'"; shift;;
+ --install-optional)
+ push install_optional_items_l \
+ "$2"; PARMS_TO_STORE+=" '$2'"; shift;;
--fwdir) push fw_dir_l "$2"; PARMS_TO_STORE+=" '$2'"; shift;;
--libdirs) push libdirs_l "$2"; PARMS_TO_STORE+=" '$2'"; shift;;
--fscks) push fscks_l "$2"; PARMS_TO_STORE+=" '$2'"; shift;;
@@ -703,6 +709,12 @@ if (( ${#install_items_l[@]} )); then
done
fi
+if (( ${#install_optional_items_l[@]} )); then
+ while pop install_optional_items_l val; do
+ install_optional_items+=" $val "
+ done
+fi
+
# these options override the stuff in the config file
if (( ${#dracutmodules_l[@]} )); then
dracutmodules=''
@@ -1294,6 +1306,7 @@ fi
if [[ $kernel_only != yes ]]; then
(( ${#install_items[@]} > 0 )) && inst_multiple ${install_items[@]}
+ (( ${#install_optional_items[@]} > 0 )) && inst_multiple -o ${install_optional_items[@]}
[[ $kernel_cmdline ]] && printf "%s\n" "$kernel_cmdline" >> "${initdir}/etc/cmdline.d/01-default.conf"

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

@ -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

@ -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,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: 62.git20131205%{?dist}
Version: 037
Release: 13.git20150518%{?dist}
Summary: Initramfs generator using udev
%if 0%{?fedora} || 0%{?rhel}
@ -28,68 +29,19 @@ 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
Source0: http://www.kernel.org/pub/linux/utils/boot/dracut/dracut-%{version}.tar.xz
Patch1: 0001-dracut-initramfs-restore-fix-unpacking-with-early-mi.patch
Patch2: 0002-systemd-add-systemd-gpt-auto-generator.patch
Patch3: 0003-fcoe-wait-for-lldpad-to-be-ready.patch
Patch4: 0004-network-handle-ip-dhcp6-for-all-interfaces.patch
Patch5: 0005-lsinitrd.sh-prevent-construct.patch
Patch6: 0006-network-DCHPv6-set-valid_lft-and-preferred_lft.patch
Patch7: 0007-dm-add-dm-cache-modules.patch
Patch8: 0008-fcoe-workaround-fcoe-timing-issues.patch
Patch9: 0009-fstab-do-not-mount-and-fsck-from-fstab-if-using-syst.patch
Patch10: 0010-Revert-Add-no-hostonly-cmdline-option-handling-for-g.patch
Patch11: 0011-Revert-Add-flag-to-toggle-hostonly-cmdline-storing-i.patch
Patch12: 0012-add-install-optional-and-install_optional_items.patch
BuildRequires: bash git
@ -107,6 +59,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
@ -116,6 +69,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
@ -265,7 +220,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}
@ -347,7 +305,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
@ -365,12 +325,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
@ -382,6 +345,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
@ -476,6 +441,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
@ -487,7 +454,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
@ -496,7 +467,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
@ -515,13 +490,48 @@ rm -rf -- $RPM_BUILD_ROOT
%endif
%changelog
* Mon May 18 2015 Harald Hoyer <harald@redhat.com> 037-13.git20150518
- do not hard require vim-minimal
Resolves: rhbz#1118988
* Thu Apr 17 2014 Adam Williamson <awilliam@redhat.com> - 037-11.git20140402
- revert broken upstream change that causes RHBZ#1084766
* Wed Apr 02 2014 Harald Hoyer <harald@redhat.com> 037-10.git20140402
- fixed fstab.sys with systemd
- DHCPv6 fixes
- dm-cache module now included
- FCoE fixes
* Thu Mar 20 2014 Harald Hoyer <harald@redhat.com> 037-3.git20140320
- fixed dracut-initramfs-restore with microcode
* Thu Mar 20 2014 Harald Hoyer <harald@redhat.com> 037-1
- version 037
* Wed Jan 22 2014 Harald Hoyer <harald@redhat.com> 034-80.git20140122
- fixed /dev/dev/resume
Resolves: rhbz#1045116
- add more drivers
Resolves: rhbz#1044779
- fixed resume rules
Resolves: rhbz#1045704
- add /boot/efi to critical paths
Resolves: rhbz#1046510
* Fri Dec 13 2013 Harald Hoyer <harald@redhat.com> 034-64.git20131205.1
- fixed lvm thin check
Resolves: rhbz#1040669
* Thu Dec 05 2013 Harald Hoyer <harald@redhat.com> 034-64.git20131205
- fixed failing the boot while waiting for password input
* Thu Dec 05 2013 Harald Hoyer <harald@redhat.com> 034-62.git20131205
- fixed PATH shortener
- also install /etc/system-fips in the initramfs
- nbd, do not fail in hostonly mode
- add ohci-pci to the list of hardcoded modules
- lvm: do not run pvscan for lvmetad
- network fixes
- skip crypt swaps with password files
- fixed i18n

View File

@ -1 +1 @@
23b0983d57a791c3d94ed13152226385 dracut-034.tar.bz2
866982a7ab49e3e4442fe966eeff4111 dracut-037.tar.xz