diff --git a/0019.patch b/0019.patch
index 7b31c78..429a045 100644
--- a/0019.patch
+++ b/0019.patch
@@ -24,3 +24,4 @@ index 5ad0f464..995d983e 100755
              outfile="/boot/${MACHINE_ID}/$kernel/initrd"
          else
              outfile="/boot/initramfs-$kernel.img"
+
diff --git a/0020.patch b/0020.patch
index 6e54cfe..3cfdd0b 100644
--- a/0020.patch
+++ b/0020.patch
@@ -1,42 +1,47 @@
-From 82651e9ef3c4c799281ba006f6ef46902e13086f Mon Sep 17 00:00:00 2001
-From: Peter Robinson <pbrobinson@gmail.com>
-Date: Thu, 12 Oct 2017 12:17:41 +0100
-Subject: [PATCH] Add rpmsg, hwspinlock and usb/misc for ARM
+From 04fa94987767a035ebcf7a4bb46f1356e709d9e8 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald@hoyer.xyz>
+Date: Tue, 10 Oct 2017 13:29:41 +0200
+Subject: [PATCH] Merge pull request #284 from sm00th/kmoddir
 
-Some of the more complex devices now need rpmsg and hwspinlock in the early boot
-process to start, and these to the initrd, and pull in usb/misc because
-apparently non standard usb hubs are a thing.
-
-Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
+dracut-install: fix relative paths in --kerneldir
 ---
- modules.d/90kernel-modules/module-setup.sh | 3 +++
- 1 file changed, 3 insertions(+)
+ install/dracut-install.c | 15 ++++++++-------
+ 1 file changed, 8 insertions(+), 7 deletions(-)
 
-diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh
-index c6405e95..076f1e8a 100755
---- a/modules.d/90kernel-modules/module-setup.sh
-+++ b/modules.d/90kernel-modules/module-setup.sh
-@@ -32,17 +32,20 @@ installkernel() {
-                 "=drivers/clk" \
-                 "=drivers/dma" \
-                 "=drivers/extcon" \
-+                "=drivers/hwspinlock" \
-                 "=drivers/i2c/busses" \
-                 "=drivers/mfd" \
-                 "=drivers/phy" \
-                 "=drivers/power" \
-                 "=drivers/regulator" \
-+                "=drivers/rpmsg" \
-                 "=drivers/rtc" \
-                 "=drivers/soc" \
-                 "=drivers/usb/chipidea" \
-                 "=drivers/usb/dwc2" \
-                 "=drivers/usb/dwc3" \
-                 "=drivers/usb/host" \
-+                "=drivers/usb/misc" \
-                 "=drivers/usb/musb" \
-                 "=drivers/usb/phy" \
- 		"=drivers/scsi/hisi_sas" \
--- 
-2.14.2
+diff --git a/install/dracut-install.c b/install/dracut-install.c
+index 2c20b491..95425e8d 100644
+--- a/install/dracut-install.c
++++ b/install/dracut-install.c
+@@ -933,13 +933,6 @@ static int parse_argv(int argc, char *argv[])
+                         break;
+                 case ARG_KERNELDIR:
+                         kerneldir = strdup(optarg);
+-                        if ((strncmp("/lib/modules/", kerneldir, 13) != 0)
+-                            && (strncmp("/usr/lib/modules/", kerneldir, 17) != 0)) {
+-                                char *p;
+-                                p = strstr(kerneldir, "/lib/modules/");
+-                                if (p != NULL)
+-                                        kerneldirlen = p - kerneldir;
+-                        }
+                         break;
+                 case ARG_FIRMWAREDIRS:
+                         firmwaredirs = strv_split(optarg, ":");
+@@ -1399,9 +1392,17 @@ static int install_modules(int argc, char **argv)
+         struct kmod_module *mod = NULL, *mod_o = NULL;
+ 
+         const char *modname = NULL;
++        char *abskpath = NULL;
++        char *p;
+         int i;
+ 
+         ctx = kmod_new(kerneldir, NULL);
++        abskpath = kmod_get_dirname(ctx);
++
++        p = strstr(abskpath, "/lib/modules/");
++        if (p != NULL)
++                kerneldirlen = p - abskpath;
++
+         if (arg_hostonly) {
+                 char *modalias_file;
+                 modalias_file = getenv("DRACUT_KERNEL_MODALIASES");
 
diff --git a/0021.patch b/0021.patch
new file mode 100644
index 0000000..b46d6c8
--- /dev/null
+++ b/0021.patch
@@ -0,0 +1,23 @@
+From 2c9bcac1136c6a18aedcdcdac5789ccf5cd18492 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald@redhat.com>
+Date: Tue, 10 Oct 2017 13:39:17 +0200
+Subject: [PATCH] dracut-install: char* -> const char*
+
+---
+ install/dracut-install.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/install/dracut-install.c b/install/dracut-install.c
+index 95425e8d..82e882cc 100644
+--- a/install/dracut-install.c
++++ b/install/dracut-install.c
+@@ -1392,7 +1392,7 @@ static int install_modules(int argc, char **argv)
+         struct kmod_module *mod = NULL, *mod_o = NULL;
+ 
+         const char *modname = NULL;
+-        char *abskpath = NULL;
++        const char *abskpath = NULL;
+         char *p;
+         int i;
+ 
+
diff --git a/0023.patch b/0023.patch
new file mode 100644
index 0000000..64f5d08
--- /dev/null
+++ b/0023.patch
@@ -0,0 +1,24 @@
+From faabcb23602673f87ec60965b3ff615004371603 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald@redhat.com>
+Date: Wed, 11 Oct 2017 15:28:20 +0200
+Subject: [PATCH] dracut.sh: quote sync file argument
+
+---
+ dracut.sh | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/dracut.sh b/dracut.sh
+index 995d983e..990700af 100755
+--- a/dracut.sh
++++ b/dracut.sh
+@@ -1823,8 +1823,7 @@ fi
+ 
+ command -v restorecon &>/dev/null && restorecon -- "$outfile"
+ 
+-sync $outfile 2> /dev/null
+-if [ $? -ne 0 ] ; then
++if ! sync "$outfile" 2> /dev/null; then
+     dinfo "dracut: sync operartion on newly created initramfs $outfile failed"
+     exit 1
+ fi
+
diff --git a/0024.patch b/0024.patch
new file mode 100644
index 0000000..815e4d3
--- /dev/null
+++ b/0024.patch
@@ -0,0 +1,25 @@
+From 6bc8fbda610c6ce0a7c20242ff7ed811cdced89d Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald@hoyer.xyz>
+Date: Thu, 12 Oct 2017 11:23:38 +0200
+Subject: [PATCH] Merge pull request #223 from
+ bmr-cymru/bmr-ignore-activation-skip
+
+lvm_scan.sh: use -K when calling lvchange
+---
+ modules.d/90lvm/lvm_scan.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules.d/90lvm/lvm_scan.sh b/modules.d/90lvm/lvm_scan.sh
+index 8bf08641..61a18b24 100755
+--- a/modules.d/90lvm/lvm_scan.sh
++++ b/modules.d/90lvm/lvm_scan.sh
+@@ -114,7 +114,7 @@ if [ -n "$LVS" ] ; then
+     info "Scanning devices $lvmdevs for LVM logical volumes $LVS"
+     lvm lvscan $lvm_ignorelockingfailure 2>&1 | vinfo
+     for LV in $LVS; do
+-        lvm lvchange --yes -ay $lvm_quirk_args $LV 2>&1 | vinfo
++        lvm lvchange --yes -K -ay $lvm_quirk_args $LV 2>&1 | vinfo
+     done
+ fi
+ 
+
diff --git a/0025.patch b/0025.patch
new file mode 100644
index 0000000..f2b1583
--- /dev/null
+++ b/0025.patch
@@ -0,0 +1,36 @@
+From 4b758ebe2288e594a1f522334192e5d8fa1f96af Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald@hoyer.xyz>
+Date: Thu, 12 Oct 2017 13:32:00 +0200
+Subject: [PATCH] Merge pull request #294 from nullr0ute/arm-fixes
+
+Add rpmsg, hwspinlock and usb/misc for ARM
+---
+ modules.d/90kernel-modules/module-setup.sh | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh
+index c6405e95..076f1e8a 100755
+--- a/modules.d/90kernel-modules/module-setup.sh
++++ b/modules.d/90kernel-modules/module-setup.sh
+@@ -32,17 +32,20 @@ installkernel() {
+                 "=drivers/clk" \
+                 "=drivers/dma" \
+                 "=drivers/extcon" \
++                "=drivers/hwspinlock" \
+                 "=drivers/i2c/busses" \
+                 "=drivers/mfd" \
+                 "=drivers/phy" \
+                 "=drivers/power" \
+                 "=drivers/regulator" \
++                "=drivers/rpmsg" \
+                 "=drivers/rtc" \
+                 "=drivers/soc" \
+                 "=drivers/usb/chipidea" \
+                 "=drivers/usb/dwc2" \
+                 "=drivers/usb/dwc3" \
+                 "=drivers/usb/host" \
++                "=drivers/usb/misc" \
+                 "=drivers/usb/musb" \
+                 "=drivers/usb/phy" \
+ 		"=drivers/scsi/hisi_sas" \
+
diff --git a/0026.patch b/0026.patch
new file mode 100644
index 0000000..7a37d97
--- /dev/null
+++ b/0026.patch
@@ -0,0 +1,25 @@
+From 1751bacda1b705f60e6ded9862d21b5bda127482 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald@hoyer.xyz>
+Date: Mon, 23 Oct 2017 10:23:42 +0200
+Subject: [PATCH] Merge pull request #296 from
+ dracut-mailing-devs/20170303132146.4968-1-crrodriguez@opensuse.org
+
+systemd 233 requires sha256, hmac and algif_hash modules
+---
+ modules.d/00systemd/module-setup.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules.d/00systemd/module-setup.sh b/modules.d/00systemd/module-setup.sh
+index 23d39bbe..d022de65 100755
+--- a/modules.d/00systemd/module-setup.sh
++++ b/modules.d/00systemd/module-setup.sh
+@@ -18,7 +18,7 @@ depends() {
+ }
+ 
+ installkernel() {
+-    hostonly='' instmods autofs4 ipv6
++    hostonly='' instmods autofs4 ipv6 algif_hash hmac sha256
+     instmods -s efivarfs
+ }
+ 
+
diff --git a/0027.patch b/0027.patch
new file mode 100644
index 0000000..97bb510
--- /dev/null
+++ b/0027.patch
@@ -0,0 +1,109 @@
+From 21789cbb0a6d103176a2e10c9dd456cdcdcb4b94 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald@redhat.com>
+Date: Wed, 25 Oct 2017 12:53:47 +0200
+Subject: [PATCH] make qemu and qemu-net a default module in non-hostonly mode
+
+---
+ modules.d/90qemu-net/module-setup.sh | 31 ++++++++++++++++--------------
+ modules.d/90qemu/module-setup.sh     | 37 ++++++++++++++++++++----------------
+ 2 files changed, 38 insertions(+), 30 deletions(-)
+
+diff --git a/modules.d/90qemu-net/module-setup.sh b/modules.d/90qemu-net/module-setup.sh
+index 58f12339..121e83df 100755
+--- a/modules.d/90qemu-net/module-setup.sh
++++ b/modules.d/90qemu-net/module-setup.sh
+@@ -2,22 +2,25 @@
+ 
+ # called by dracut
+ check() {
+-    if type -P systemd-detect-virt >/dev/null 2>&1; then
+-        vm=$(systemd-detect-virt --vm >/dev/null 2>&1)
+-        (($? != 0)) && return 255
+-        [[ $vm = "qemu" ]] && return 0
+-        [[ $vm = "kvm" ]] && return 0
+-        [[ $vm = "bochs" ]] && return 0
+-    fi
++    if [[ $hostonly ]] || [[ $mount_needs ]]; then
++        if type -P systemd-detect-virt >/dev/null 2>&1; then
++            vm=$(systemd-detect-virt --vm >/dev/null 2>&1)
++            (($? != 0)) && return 255
++            [[ $vm = "qemu" ]] && return 0
++            [[ $vm = "kvm" ]] && return 0
++            [[ $vm = "bochs" ]] && return 0
++        fi
+ 
+-    for i in /sys/class/dmi/id/*_vendor; do
+-        [[ -f $i ]] || continue
+-        read vendor < $i
+-        [[  "$vendor" == "QEMU" ]] && return 0
+-        [[  "$vendor" == "Bochs" ]] && return 0
+-    done
++        for i in /sys/class/dmi/id/*_vendor; do
++            [[ -f $i ]] || continue
++            read vendor < $i
++            [[  "$vendor" == "QEMU" ]] && return 0
++            [[  "$vendor" == "Bochs" ]] && return 0
++        done
+ 
+-    return 255
++        return 255
++    fi
++    return 0
+ }
+ 
+ # called by dracut
+diff --git a/modules.d/90qemu/module-setup.sh b/modules.d/90qemu/module-setup.sh
+index 9f8495a6..7e5ea6a4 100755
+--- a/modules.d/90qemu/module-setup.sh
++++ b/modules.d/90qemu/module-setup.sh
+@@ -2,28 +2,33 @@
+ 
+ # called by dracut
+ check() {
+-    if type -P systemd-detect-virt >/dev/null 2>&1; then
+-        vm=$(systemd-detect-virt --vm 2>/dev/null)
+-        (($? != 0)) && return 255
+-        [[ $vm = "qemu" ]] && return 0
+-        [[ $vm = "kvm" ]] && return 0
+-        [[ $vm = "bochs" ]] && return 0
++    if [[ $hostonly ]] || [[ $mount_needs ]]; then
++        if type -P systemd-detect-virt >/dev/null 2>&1; then
++            vm=$(systemd-detect-virt --vm 2>/dev/null)
++            (($? != 0)) && return 255
++            [[ $vm = "qemu" ]] && return 0
++            [[ $vm = "kvm" ]] && return 0
++            [[ $vm = "bochs" ]] && return 0
++        fi
++
++        for i in /sys/class/dmi/id/*_vendor; do
++            [[ -f $i ]] || continue
++            read vendor < $i
++            [[ "$vendor" == "QEMU" ]] && return 0
++            [[ "$vendor" == "Red Hat" ]] && return 0
++            [[ "$vendor" == "Bochs" ]] && return 0
++        done
++
++        return 255
+     fi
+ 
+-    for i in /sys/class/dmi/id/*_vendor; do
+-        [[ -f $i ]] || continue
+-        read vendor < $i
+-        [[ "$vendor" == "QEMU" ]] && return 0
+-        [[ "$vendor" == "Red Hat" ]] && return 0
+-        [[ "$vendor" == "Bochs" ]] && return 0
+-    done
+-    return 255
++    return 0
+ }
+ 
+ # called by dracut
+ installkernel() {
+-        # qemu specific modules
+-        hostonly='' instmods \
++    # qemu specific modules
++    hostonly='' instmods \
+             ata_piix ata_generic pata_acpi cdrom sr_mod ahci \
+             virtio_blk virtio virtio_ring virtio_pci \
+             virtio_scsi virtio_console virtio_rng \
+
diff --git a/0028.patch b/0028.patch
new file mode 100644
index 0000000..d367a3a
--- /dev/null
+++ b/0028.patch
@@ -0,0 +1,33 @@
+From e190224345f3a8b2f9e85d84bc879dd96bf265da Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald@redhat.com>
+Date: Thu, 26 Oct 2017 09:08:28 +0200
+Subject: [PATCH] lsinitrd.sh: dismiss "cat" error messages
+
+nobody wants to see "cat: broken pipe"
+---
+ lsinitrd.sh | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/lsinitrd.sh b/lsinitrd.sh
+index f4088453..f3f727c8 100755
+--- a/lsinitrd.sh
++++ b/lsinitrd.sh
+@@ -172,7 +172,7 @@ fi
+ read -N 6 bin < "$image"
+ case $bin in
+     $'\x71\xc7'*|070701)
+-        CAT="cat --"
++        CAT="cat 2>/dev/null --"
+         is_early=$(cpio --extract --verbose --quiet --to-stdout -- 'early_cpio' < "$image" 2>/dev/null)
+         if [[ "$is_early" ]]; then
+             if [[ -n "$unpackearly" ]]; then
+@@ -211,7 +211,7 @@ case $bin in
+         CAT="bzcat --"
+         ;;
+     $'\x71\xc7'*|070701)
+-        CAT="cat --"
++        CAT="cat 2>/dev/null --"
+         ;;
+     $'\x02\x21'*)
+         CAT="lz4 -d -c"
+
diff --git a/0029.patch b/0029.patch
new file mode 100644
index 0000000..c5fe4a8
--- /dev/null
+++ b/0029.patch
@@ -0,0 +1,31 @@
+From ed9281d6d13b6250e3f12408366fca46bc3384ce Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald@redhat.com>
+Date: Thu, 26 Oct 2017 09:31:27 +0200
+Subject: [PATCH] dracut.sh: after doing the lazy resolve always install
+ dependencies
+
+Exit the lazy resolving mode after doing the lazy resolve, because there
+won't be any lazy resolving anymore after this step.
+
+Fixes https://github.com/dracutdevs/dracut/issues/152
+Obsoletes https://github.com/dracutdevs/dracut/pull/225
+---
+ dracut.sh | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/dracut.sh b/dracut.sh
+index 990700af..635fdb1c 100755
+--- a/dracut.sh
++++ b/dracut.sh
+@@ -1544,6 +1544,10 @@ if [[ $kernel_only != yes ]]; then
+         dinfo "*** Resolving executable dependencies done***"
+     fi
+ 
++    # Now we are done with lazy resolving, always install dependencies
++    unset DRACUT_RESOLVE_LAZY
++    export DRACUT_RESOLVE_DEPS=1
++
+     # libpthread workaround: pthread_cancel wants to dlopen libgcc_s.so
+     for _dir in $libdirs; do
+         for _f in "$_dir/libpthread.so"*; do
+
diff --git a/0030.patch b/0030.patch
new file mode 100644
index 0000000..788dcd8
--- /dev/null
+++ b/0030.patch
@@ -0,0 +1,27 @@
+From d976e193256407b7839b02cb888ea95a8d442180 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald@hoyer.xyz>
+Date: Fri, 27 Oct 2017 09:10:22 +0200
+Subject: [PATCH] Merge pull request #298 from derekhiggins/master
+
+Skip iscsi attachment if no info
+---
+ modules.d/95iscsi/iscsiroot.sh | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/modules.d/95iscsi/iscsiroot.sh b/modules.d/95iscsi/iscsiroot.sh
+index 379cc296..aefd263d 100755
+--- a/modules.d/95iscsi/iscsiroot.sh
++++ b/modules.d/95iscsi/iscsiroot.sh
+@@ -44,8 +44,9 @@ fi
+ handle_firmware()
+ {
+     if ! iscsistart -f; then
+-        warn "iscistart: Could not get list of targets from firmware."
+-        return 1
++        warn "iscistart: Could not get list of targets from firmware. Skipping."
++        echo 'skipped' > "/tmp/iscsistarted-firmware"
++        return 0
+     fi
+ 
+     for p in $(getargs rd.iscsi.param -d iscsi_param); do
+
diff --git a/0031.patch b/0031.patch
new file mode 100644
index 0000000..afae8b5
--- /dev/null
+++ b/0031.patch
@@ -0,0 +1,24 @@
+From f9042fd83980dc88d6545512da5ea36e397907ae Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald@hoyer.xyz>
+Date: Fri, 3 Nov 2017 09:15:02 +0100
+Subject: [PATCH] Merge pull request #302 from keszybz/yet-another-timeout-fix
+
+dmsquash-generator.sh: properly escape backslash in path
+---
+ modules.d/90dmsquash-live/dmsquash-generator.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules.d/90dmsquash-live/dmsquash-generator.sh b/modules.d/90dmsquash-live/dmsquash-generator.sh
+index d47cf14a..fe190012 100755
+--- a/modules.d/90dmsquash-live/dmsquash-generator.sh
++++ b/modules.d/90dmsquash-live/dmsquash-generator.sh
+@@ -70,7 +70,7 @@ ROOTFLAGS="$(getarg rootflags)"
+     else
+         echo "What=/dev/mapper/live-rw"
+         [ -n "$ROOTFLAGS" ] && echo "Options=${ROOTFLAGS}"
+-        _dev=dev-mapper-live\x2drw
++        _dev=$'dev-mapper-live\\x2drw'
+     fi
+ } > "$GENERATOR_DIR"/sysroot.mount
+ 
+
diff --git a/0032.patch b/0032.patch
new file mode 100644
index 0000000..b19911a
--- /dev/null
+++ b/0032.patch
@@ -0,0 +1,33 @@
+From 18a5011ff2465b7923db907100f0f59f01908c4e Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald@redhat.com>
+Date: Fri, 3 Nov 2017 09:16:45 +0100
+Subject: [PATCH] Revert "lsinitrd.sh: dismiss "cat" error messages"
+
+This reverts commit e190224345f3a8b2f9e85d84bc879dd96bf265da.
+---
+ lsinitrd.sh | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/lsinitrd.sh b/lsinitrd.sh
+index f3f727c8..f4088453 100755
+--- a/lsinitrd.sh
++++ b/lsinitrd.sh
+@@ -172,7 +172,7 @@ fi
+ read -N 6 bin < "$image"
+ case $bin in
+     $'\x71\xc7'*|070701)
+-        CAT="cat 2>/dev/null --"
++        CAT="cat --"
+         is_early=$(cpio --extract --verbose --quiet --to-stdout -- 'early_cpio' < "$image" 2>/dev/null)
+         if [[ "$is_early" ]]; then
+             if [[ -n "$unpackearly" ]]; then
+@@ -211,7 +211,7 @@ case $bin in
+         CAT="bzcat --"
+         ;;
+     $'\x71\xc7'*|070701)
+-        CAT="cat 2>/dev/null --"
++        CAT="cat --"
+         ;;
+     $'\x02\x21'*)
+         CAT="lz4 -d -c"
+
diff --git a/0033.patch b/0033.patch
new file mode 100644
index 0000000..d1bfac2
--- /dev/null
+++ b/0033.patch
@@ -0,0 +1,58 @@
+From 11b3d60f5c20136530c3afe78d9a1a1160e021f2 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald@hoyer.xyz>
+Date: Mon, 6 Nov 2017 09:55:54 +0100
+Subject: [PATCH] Merge pull request #303 from FGrose/bootmsg
+
+dmsquash-live-root: Replace incompatible shell syntax.
+---
+ modules.d/90dmsquash-live/dmsquash-live-root.sh | 29 +++++++++++--------------
+ 1 file changed, 13 insertions(+), 16 deletions(-)
+
+diff --git a/modules.d/90dmsquash-live/dmsquash-live-root.sh b/modules.d/90dmsquash-live/dmsquash-live-root.sh
+index 723d7f01..1458329c 100755
+--- a/modules.d/90dmsquash-live/dmsquash-live-root.sh
++++ b/modules.d/90dmsquash-live/dmsquash-live-root.sh
+@@ -178,29 +178,26 @@ do_live_overlay() {
+             warn "Using temporary overlay."
+         elif [ -n "$devspec" -a -n "$pathspec" ]; then
+             [ -z "$m" ] &&
+-                m='  Unable to find a persistent overlay; using a temporary one.'
+-            m=($'\n' "$m" $'\n'
+-               '     All root filesystem changes will be lost on shutdown.'
+-               $'\n' '        Press any key to continue')
+-            echo -e "\n\n\n${m[*]}\n\n\n" > /dev/kmsg
++                m='   Unable to find a persistent overlay; using a temporary one.'
++            m="$m"$'\n      All root filesystem changes will be lost on shutdown.'
++            m="$m"$'\n         Press [Enter] to continue.'
++            echo -e "\n\n\n\n${m}\n\n\n" > /dev/kmsg
+             if [ -n "$DRACUT_SYSTEMD" ]; then
+-                if plymouth --ping ; then
++                if type plymouth >/dev/null 2>&1 && plymouth --ping ; then
+                     if getargbool 0 rhgb || getargbool 0 splash ; then
+-                        m[0]='>>>'$'\n''>>>'$'\n''>>>'$'\n\n'
+-                        m[5]=$'\n''<<<'$'\n''<<<'$'\n''<<<'
+-                        plymouth display-message --text="${m[*]}"
++                        m='>>>'$'\n''>>>'$'\n''>>>'$'\n\n\n'"$m"
++                        m="${m%n.*}"$'n.\n\n\n''<<<'$'\n''<<<'$'\n''<<<'
++                        plymouth display-message --text="${m}"
+                     else
+-                        plymouth ask-question --prompt="${m[*]}" --command=true
++                        plymouth ask-question --prompt="${m}" --command=true
+                     fi
+                 else
+-                    m[0]='>>>'
+-                    m[5]='<<<'
+-                    unset -v m[2] m[4]
+-                    systemd-ask-password --timeout=0 "${m[*]}"
++                    m=">>>${m//.[[:space:]]/.}  <<<"
++                    systemd-ask-password --timeout=0 "${m}"
+                 fi
+             else
+-                plymouth --ping && plymouth --quit
+-                read -s -r -p $'\n\n'"${m[*]}:" -n 1 reply
++                type plymouth >/dev/null 2>&1 && plymouth --ping && plymouth --quit
++                read -s -r -p $'\n\n'"${m}" -n 1 reply
+             fi
+         fi
+         if [ -n "$overlayfs" ]; then
+
diff --git a/0034.patch b/0034.patch
new file mode 100644
index 0000000..0080062
--- /dev/null
+++ b/0034.patch
@@ -0,0 +1,64 @@
+From 1ec2e34adcec7ee17fbf5e0410fd21cd1f2c9e27 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald@hoyer.xyz>
+Date: Mon, 6 Nov 2017 09:56:13 +0100
+Subject: [PATCH] Merge pull request #300 from danimo/pick_all_matching_keymaps
+
+10i18n: Load all keymaps for a given locale
+---
+ modules.d/10i18n/module-setup.sh | 35 ++++++++++++++++++++---------------
+ 1 file changed, 20 insertions(+), 15 deletions(-)
+
+diff --git a/modules.d/10i18n/module-setup.sh b/modules.d/10i18n/module-setup.sh
+index 62babb2b..7723f6fa 100755
+--- a/modules.d/10i18n/module-setup.sh
++++ b/modules.d/10i18n/module-setup.sh
+@@ -29,21 +29,24 @@ install() {
+ 
+     # This is from 10redhat-i18n.
+     findkeymap () {
+-        local MAP=$1
++        local MAPS=$1
+         local MAPNAME=${1%.map*}
+-        [[ ! -f $MAP ]] && \
+-            MAP=$(find ${kbddir}/keymaps -type f -name ${MAPNAME} -o -name ${MAPNAME}.map -o -name ${MAPNAME}.map.\* | head -n1)
+-        [[ " $KEYMAPS " = *" $MAP "* ]] && return
+-        KEYMAPS="$KEYMAPS $MAP"
+-        case $MAP in
+-            *.gz) cmd=zgrep;;
+-            *.bz2) cmd=bzgrep;;
+-            *) cmd=grep ;;
+-        esac
+-
+-        for INCL in $($cmd "^include " $MAP | while read a a b || [ -n "$a" ]; do echo ${a//\"/}; done); do
+-            for FN in $(find ${kbddir}/keymaps -type f -name $INCL\*); do
+-                findkeymap $FN
++        local map
++        [[ ! -f $MAPS ]] && \
++            MAPS=$(find ${kbddir}/keymaps -type f -name ${MAPNAME} -o -name ${MAPNAME}.map -o -name ${MAPNAME}.map.\*)
++
++        for map in $MAPS; do
++            KEYMAPS="$KEYMAPS $map"
++            case $map in
++                *.gz) cmd=zgrep;;
++                *.bz2) cmd=bzgrep;;
++                *) cmd=grep ;;
++            esac
++
++            for INCL in $($cmd "^include " $map | while read a a b || [ -n "$a" ]; do echo ${a//\"/}; done); do
++                for FN in $(find ${kbddir}/keymaps -type f -name $INCL\*); do
++                    findkeymap $FN
++                done
+             done
+         done
+     }
+@@ -191,7 +194,9 @@ install() {
+             findkeymap ${map}
+         done
+ 
+-        inst_opt_decompress ${KEYMAPS}
++        for keymap in ${KEYMAPS}; do
++            inst_opt_decompress ${keymap}
++        done
+ 
+         inst_opt_decompress ${kbddir}/consolefonts/${DEFAULT_FONT}.*
+ 
diff --git a/dracut.spec b/dracut.spec
index bd91902..02a7381 100644
--- a/dracut.spec
+++ b/dracut.spec
@@ -14,7 +14,7 @@
 %define with_nbd 0
 %endif
 
-%define dist_free_release 20.git20171010
+%define dist_free_release 33.git20171127
 
 Name: dracut
 Version: 046
@@ -56,6 +56,19 @@ Patch16: 0017.patch
 Patch17: 0018.patch
 Patch18: 0019.patch
 Patch19: 0020.patch
+Patch20: 0021.patch
+Patch21: 0023.patch
+Patch22: 0024.patch
+Patch23: 0025.patch
+Patch24: 0026.patch
+Patch25: 0027.patch
+Patch26: 0028.patch
+Patch27: 0029.patch
+Patch28: 0030.patch
+Patch29: 0031.patch
+Patch30: 0032.patch
+Patch31: 0033.patch
+Patch32: 0034.patch
 
 Source1: https://www.gnu.org/licenses/lgpl-2.1.txt
 
@@ -535,6 +548,9 @@ rm -rf -- $RPM_BUILD_ROOT
 %endif
 
 %changelog
+* Wed Nov 29 2017 Harald Hoyer <harald@redhat.com> - 046-33
+- git snapshot
+
 * Thu Oct 12 2017 Peter Robinson <pbrobinson@fedoraproject.org> 046-20
 - Add fix for some ARM SBCs