dracut-020-96.git20120717

- disabled systemd in the initramfs, until it works correctly
This commit is contained in:
Harald Hoyer 2012-07-17 11:13:39 +02:00
parent 43b21102ee
commit a66b474ff5
13 changed files with 571 additions and 7 deletions

View File

@ -0,0 +1,18 @@
From 982032fd26d4b671f36a46c0a8564122cc7fde8a Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 12 Jul 2012 07:01:27 +0200
Subject: [PATCH] watchdog/watchdog-stop.sh: forgot to add script
---
modules.d/04watchdog/watchdog-stop.sh | 2 ++
1 file changed, 2 insertions(+)
create mode 100755 modules.d/04watchdog/watchdog-stop.sh
diff --git a/modules.d/04watchdog/watchdog-stop.sh b/modules.d/04watchdog/watchdog-stop.sh
new file mode 100755
index 0000000..91d45d6
--- /dev/null
+++ b/modules.d/04watchdog/watchdog-stop.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+[ -c /dev/watchdog ] && echo -n 'V' > /dev/watchdog

View File

@ -0,0 +1,31 @@
From e6bec9b793314d248085e7dd50d9d79d9a01486e Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 12 Jul 2012 08:56:17 +0200
Subject: [PATCH] systemd/initrd-switch-root.service: add some more
dependencies
---
modules.d/98systemd/initrd-switch-root.service | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules.d/98systemd/initrd-switch-root.service b/modules.d/98systemd/initrd-switch-root.service
index e38f04d..f9fd10b 100644
--- a/modules.d/98systemd/initrd-switch-root.service
+++ b/modules.d/98systemd/initrd-switch-root.service
@@ -12,14 +12,14 @@ ConditionPathExists=/etc/initrd-release
OnFailure=emergency.service
After=initrd-switch-root.target
Before=systemd-journal-flush.service
+Before=sysinit.target local-fs.target swap.target emergency.service emergency.target
[Service]
Type=oneshot
EnvironmentFile=/run/initramfs/switch-root.conf
# we have to use "--force" here, otherwise systemd would umount /run
ExecStart=/usr/bin/systemctl --force switch-root ${NEWROOT} ${NEWINIT}
-ExecStopPost=-/usr/bin/systemctl stop systemd-journald.service
-ExecStopPost=-/bin/rm -f /run/initramfs/switch-root.conf
+ExecStopPost=-/usr/bin/systemctl stop systemd-journald.service ; /bin/rm -f /run/initramfs/switch-root.conf
StandardInput=null
StandardOutput=null
StandardError=null

View File

@ -0,0 +1,20 @@
From f31049c17f76048799017de52cb65c8906070b3e Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 12 Jul 2012 08:56:36 +0200
Subject: [PATCH] systemd/service-to-run.sh: do not copy the target subdirs
---
modules.d/98systemd/service-to-run.sh | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/modules.d/98systemd/service-to-run.sh b/modules.d/98systemd/service-to-run.sh
index 797958e..e09acc5 100755
--- a/modules.d/98systemd/service-to-run.sh
+++ b/modules.d/98systemd/service-to-run.sh
@@ -1,4 +1,5 @@
#!/bin/sh
mkdir -p /run/systemd/system/
-cp -a -t /run/systemd/system/ /etc/systemd/system/*
+cp -d -t /run/systemd/system/ /etc/systemd/system/*
+exit 0

View File

@ -0,0 +1,114 @@
From 3d115217e4db6fc54c9cda87088f3fb212285158 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 12 Jul 2012 08:59:43 +0200
Subject: [PATCH] test/TEST-04-FULL-SYSTEMD: default to basic.target and
output more debug
---
test/TEST-04-FULL-SYSTEMD/test-init.sh | 13 ++++++++++++-
test/TEST-04-FULL-SYSTEMD/test.sh | 19 ++++++++++++-------
2 files changed, 24 insertions(+), 8 deletions(-)
diff --git a/test/TEST-04-FULL-SYSTEMD/test-init.sh b/test/TEST-04-FULL-SYSTEMD/test-init.sh
index cc26017..d41f0b0 100755
--- a/test/TEST-04-FULL-SYSTEMD/test-init.sh
+++ b/test/TEST-04-FULL-SYSTEMD/test-init.sh
@@ -13,9 +13,19 @@ ismounted() {
return 1
}
-if ismounted /usr; then
+systemctl --failed --no-legend --no-pager > /failed
+
+if ismounted /usr && [ -f /run/systemd/system/initrd-switch-root.service ] && [ ! -s /failed ]; then
echo "dracut-root-block-success" >/dev/sdc
fi
+
+set -x
+ cat /proc/mounts
+ tree /run
+ dmesg
+ cat /failed
+set +x
+
export TERM=linux
export PS1='initramfs-test:\w\$ '
[ -f /etc/mtab ] || ln -sfn /proc/mounts /etc/mtab
@@ -23,6 +33,7 @@ export PS1='initramfs-test:\w\$ '
stty sane
echo "made it to the rootfs!"
if strstr "$CMDLINE" "rd.shell"; then
+# while sleep 1; do sleep 1;done
strstr "$(setsid --help)" "control" && CTTY="-c"
setsid $CTTY sh -i
fi
diff --git a/test/TEST-04-FULL-SYSTEMD/test.sh b/test/TEST-04-FULL-SYSTEMD/test.sh
index 921189f..9a679a7 100755
--- a/test/TEST-04-FULL-SYSTEMD/test.sh
+++ b/test/TEST-04-FULL-SYSTEMD/test.sh
@@ -6,7 +6,9 @@ KVERSION=${KVERSION-$(uname -r)}
# Uncomment this to debug failures
#DEBUGFAIL="rd.shell rd.break"
-
+#DEBUGFAIL="rd.shell"
+#DEBUGOUT="quiet systemd.log_level=debug systemd.log_target=console loglevel=77 rd.info rd.debug"
+DEBUGOUT="loglevel=0 systemd.log_level=debug systemd.log_target=kmsg"
client_run() {
local test_name="$1"; shift
local client_opts="$*"
@@ -20,7 +22,7 @@ client_run() {
-hdc $TESTDIR/result \
-m 256M -nographic \
-net none -kernel /boot/vmlinuz-$KVERSION \
- -append "root=LABEL=dracut $client_opts quiet systemd.log_level=debug systemd.log_target=console loglevel=77 rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.debug $DEBUGFAIL" \
+ -append "root=LABEL=dracut $client_opts rd.retry=3 console=ttyS0,115200n81 selinux=0 $DEBUGOUT $DEBUGFAIL" \
-initrd $TESTDIR/initramfs.testing
if (($? != 0)); then
@@ -57,7 +59,7 @@ test_setup() {
mkdir -p $initdir
. $basedir/dracut-functions.sh
- for d in usr/bin usr/sbin bin etc lib "$libdir" sbin tmp usr var var/log dev proc sys sysroot root run run/lock run/initramfs; do
+ for d in usr/bin usr/sbin bin etc lib "$libdir" sbin tmp usr var var/log dev proc sys sysroot root run; do
if [ -L "/$d" ]; then
inst_symlink "/$d"
else
@@ -70,7 +72,8 @@ test_setup() {
dracut_install sh df free ls shutdown poweroff stty cat ps ln ip route \
mount dmesg ifconfig dhclient mkdir cp ping dhclient \
- umount strace less setsid
+ umount strace less setsid tree systemctl
+
for _terminfodir in /lib/terminfo /etc/terminfo /usr/share/terminfo; do
[ -f ${_terminfodir}/l/linux ] && break
done
@@ -112,8 +115,8 @@ test_setup() {
cat >$initdir/etc/systemd/system/testsuite.target <<EOF
[Unit]
Description=Testsuite target
-Requires=multi-user.target
-After=multi-user.target
+Requires=basic.target
+After=basic.target
Conflicts=rescue.target
AllowIsolate=yes
EOF
@@ -124,12 +127,14 @@ EOF
cat >$initdir/etc/systemd/system/testsuite.service <<EOF
[Unit]
Description=Testsuite service
-After=multi-user.target
+After=basic.target
[Service]
ExecStart=/sbin/test-init
ExecStopPost=/usr/bin/systemctl poweroff
Type=oneshot
+StandardInput=tty
+StandardOutput=tty
EOF
mkdir -p $initdir/etc/systemd/system/testsuite.target.wants
ln -fs ../testsuite.service $initdir/etc/systemd/system/testsuite.target.wants/testsuite.service

View File

@ -0,0 +1,23 @@
From 1ddc789f5aa1878a51db1c74b0d3503c3df35c1e Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 12 Jul 2012 10:20:28 +0200
Subject: [PATCH] kernel-modules/module-setup.sh: add hid_generic to kernel
modules
---
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 1744e53..f309de8 100755
--- a/modules.d/90kernel-modules/module-setup.sh
+++ b/modules.d/90kernel-modules/module-setup.sh
@@ -43,7 +43,7 @@ installkernel() {
hostonly='' instmods sdhci_esdhc_imx mmci sdhci_tegra mvsdio omap omapdrm sdhci_dove ahci_platform pata_imx sata_mv
# install keyboard support
- hostonly='' instmods atkbd i8042 usbhid hid-apple hid-sunplus hid-cherry hid-logitech hid-logitech-dj hid-microsoft ehci-hcd ohci-hcd uhci-hcd xhci-hcd
+ hostonly='' instmods atkbd i8042 usbhid hid-apple hid-sunplus hid-cherry hid-logitech hid-logitech-dj hid-microsoft ehci-hcd ohci-hcd uhci-hcd xhci-hcd hid_generic
# install unix socket support
hostonly='' instmods unix
instmods "=drivers/pcmcia" =ide "=drivers/usb/storage"

View File

@ -0,0 +1,45 @@
From 030ade759004cb2bf81148bfdcd0ef821f7bd429 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 16 Jul 2012 10:13:53 +0200
Subject: [PATCH] Fixes for systemd-187, which does the right thing for
switch-root
---
dracut.spec | 2 +-
modules.d/98systemd/initrd-switch-root.service | 4 +---
2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/dracut.spec b/dracut.spec
index c17860d..0e853fd 100644
--- a/dracut.spec
+++ b/dracut.spec
@@ -84,7 +84,7 @@ Requires: file
Requires: udev > 166
%if 0%{?fedora} || 0%{?rhel} > 6
Requires: util-linux >= 2.21
-Requires: systemd >= 186
+Conflicts: systemd <= 187
%else
Requires: util-linux-ng >= 2.21
%endif
diff --git a/modules.d/98systemd/initrd-switch-root.service b/modules.d/98systemd/initrd-switch-root.service
index f9fd10b..7b59e15 100644
--- a/modules.d/98systemd/initrd-switch-root.service
+++ b/modules.d/98systemd/initrd-switch-root.service
@@ -11,15 +11,13 @@ DefaultDependencies=no
ConditionPathExists=/etc/initrd-release
OnFailure=emergency.service
After=initrd-switch-root.target
-Before=systemd-journal-flush.service
-Before=sysinit.target local-fs.target swap.target emergency.service emergency.target
[Service]
Type=oneshot
EnvironmentFile=/run/initramfs/switch-root.conf
# we have to use "--force" here, otherwise systemd would umount /run
ExecStart=/usr/bin/systemctl --force switch-root ${NEWROOT} ${NEWINIT}
-ExecStopPost=-/usr/bin/systemctl stop systemd-journald.service ; /bin/rm -f /run/initramfs/switch-root.conf
+ExecStopPost=-/bin/rm -f /run/initramfs/switch-root.conf
StandardInput=null
StandardOutput=null
StandardError=null

View File

@ -0,0 +1,64 @@
From 7a1f355fb51426ec69002cf23ada0aea7fe285c7 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 16 Jul 2012 10:33:27 +0200
Subject: [PATCH] dracut.spec: add suse version ifdefs
---
dracut.spec | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/dracut.spec b/dracut.spec
index 0e853fd..9108d1a 100644
--- a/dracut.spec
+++ b/dracut.spec
@@ -111,7 +111,7 @@ Provides: dracut-generic = %{version}-%{release}
This package requires everything which is needed to build a generic
all purpose initramfs with network support with dracut.
-%if 0%{?fedora} || 0%{?rhel} >= 6
+%if 0%{?fedora} || 0%{?rhel} >= 6 || 0%{?suse_version}
%package fips
Summary: Dracut modules to build a dracut initramfs with an integrity check
Requires: %{name} = %{version}-%{release}
@@ -185,7 +185,7 @@ make install DESTDIR=$RPM_BUILD_ROOT \
echo "DRACUT_VERSION=%{version}-%{release}" > $RPM_BUILD_ROOT/%{dracutlibdir}/dracut-version.sh
-%if 0%{?fedora} == 0 && 0%{?rhel} == 0
+%if 0%{?fedora} == 0 && 0%{?rhel} == 0 && 0%{?suse_version} == 0
rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/01fips
rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/02fips-aesni
%endif
@@ -210,7 +210,7 @@ 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}
+%if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version}
install -m 0644 dracut.conf.d/fedora.conf.example $RPM_BUILD_ROOT/etc/dracut.conf.d/01-dist.conf
install -m 0644 dracut.conf.d/fips.conf.example $RPM_BUILD_ROOT/etc/dracut.conf.d/40-fips.conf
%endif
@@ -258,11 +258,13 @@ rm -rf $RPM_BUILD_ROOT
%endif
%dir /etc/dracut.conf.d
%{_mandir}/man8/dracut.8*
+%if 0%{?fedora} > 12 || 0%{?rhel} >= 6 || 0%{?suse_version} > 9999
%{_mandir}/man8/mkinitrd.8*
+%{_mandir}/man1/lsinitrd.1*
+%endif
%{_mandir}/man7/dracut.kernel.7*
%{_mandir}/man7/dracut.cmdline.7*
%{_mandir}/man5/dracut.conf.5*
-%{_mandir}/man1/lsinitrd.1*
%{dracutlibdir}/modules.d/00bootchart
%{dracutlibdir}/modules.d/04watchdog
%{dracutlibdir}/modules.d/05busybox
@@ -329,7 +331,7 @@ rm -rf $RPM_BUILD_ROOT
%{dracutlibdir}/modules.d/45ifcfg
%{dracutlibdir}/modules.d/95znet
-%if 0%{?fedora} || 0%{?rhel}
+%if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version}
%files fips
%defattr(-,root,root,0755)
%{dracutlibdir}/modules.d/01fips

View File

@ -0,0 +1,62 @@
From 0f283709c9bbcdc064e1212c42173a3ff9552525 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 16 Jul 2012 12:21:56 +0200
Subject: [PATCH] dracut-functions.sh: output more info, if dependency modules
are omitted
---
dracut-functions.sh | 20 ++++++++++++++++----
1 file changed, 16 insertions(+), 4 deletions(-)
diff --git a/dracut-functions.sh b/dracut-functions.sh
index 3f56316..306b93a 100755
--- a/dracut-functions.sh
+++ b/dracut-functions.sh
@@ -1024,7 +1024,10 @@ check_mount() {
[[ $2 ]] || mods_checked_as_dep+=" $_mod "
- strstr " $omit_dracutmodules " " $_mod " && return 1
+ if strstr " $omit_dracutmodules " " $_mod "; then
+ dinfo "Dracut module '$_mod' will not be installed, because it's in the list to be omitted!"
+ return 1
+ fi
if [ "${#host_fs_types[*]}" -gt 0 ]; then
module_check_mount $_mod || return 1
@@ -1040,7 +1043,10 @@ check_mount() {
strstr " $force_add_dracutmodules " " $_moddep " || \
force_add_dracutmodules+=" $_moddep "
# if a module we depend on fail, fail also
- check_module $_moddep || return 1
+ if ! check_module $_moddep; then
+ derror "Dracut module '$_mod' depends on '$_moddep', which can't be installed"
+ return 1
+ fi
done
strstr " $mods_to_load " " $_mod " || \
@@ -1067,7 +1073,10 @@ check_module() {
[[ $2 ]] || mods_checked_as_dep+=" $_mod "
- strstr " $omit_dracutmodules " " $_mod " && return 1
+ if strstr " $omit_dracutmodules " " $_mod "; then
+ dinfo "Dracut module '$_mod' will not be installed, because it's in the list to be omitted!"
+ return 1
+ fi
if strstr " $dracutmodules $add_dracutmodules $force_add_dracutmodules" " $_mod "; then
if strstr " $force_add_dracutmodules" " $_mod"; then
@@ -1095,7 +1104,10 @@ check_module() {
strstr " $force_add_dracutmodules " " $_moddep " || \
force_add_dracutmodules+=" $_moddep "
# if a module we depend on fail, fail also
- check_module $_moddep || return 1
+ if ! check_module $_moddep; then
+ derror "Dracut module '$_mod' depends on '$_moddep', which can't be installed"
+ return 1
+ fi
done
strstr " $mods_to_load " " $_mod " || \

View File

@ -0,0 +1,42 @@
From 4ee59ab3ed59475923a1fed0a8a52f5a03799c93 Mon Sep 17 00:00:00 2001
From: Milan Broz <mbroz@redhat.com>
Date: Mon, 16 Jul 2012 16:28:47 +0200
Subject: [PATCH] Fix fips module list.
If dracut is build only with fips/fips-aesni (no crypto module),
FIPS mode fails because of missing GCM modules.
Just add proper modules to list (kernel have both maker as FIPS compliant already).
Signed-off-by: Milan Broz <mbroz@redhat.com>
---
modules.d/01fips/module-setup.sh | 2 +-
modules.d/02fips-aesni/module-setup.sh | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules.d/01fips/module-setup.sh b/modules.d/01fips/module-setup.sh
index 2d238fb..2517964 100755
--- a/modules.d/01fips/module-setup.sh
+++ b/modules.d/01fips/module-setup.sh
@@ -12,7 +12,7 @@ depends() {
installkernel() {
local _fipsmodules _mod
- _fipsmodules="aead aes_generic xts aes-x86_64 ansi_cprng cbc ccm chainiv ctr"
+ _fipsmodules="aead aes_generic xts aes-x86_64 ansi_cprng cbc ccm chainiv ctr gcm ghash_generic"
_fipsmodules+=" des deflate ecb eseqiv hmac seqiv sha256 sha256_generic sha512 sha512_generic"
_fipsmodules+=" cryptomgr crypto_null tcrypt dm-mod dm-crypt"
diff --git a/modules.d/02fips-aesni/module-setup.sh b/modules.d/02fips-aesni/module-setup.sh
index f8fb705..fb4010d 100755
--- a/modules.d/02fips-aesni/module-setup.sh
+++ b/modules.d/02fips-aesni/module-setup.sh
@@ -12,7 +12,7 @@ depends() {
installkernel() {
local _fipsmodules _mod
- _fipsmodules="aesni-intel"
+ _fipsmodules="aesni-intel ghash_clmulni_intel"
mkdir -m 0755 -p "${initdir}/etc/modprobe.d"

View File

@ -0,0 +1,80 @@
From a43f97c4e35d0d9c7e6e315e11c909e86936e1cc Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 17 Jul 2012 11:06:25 +0200
Subject: [PATCH] systemd/dracut-pre-pivot.service: force clean stop of udevd
and cleanup-db
---
modules.d/98systemd/dracut-pre-pivot.service | 2 +-
modules.d/98systemd/dracut-pre-pivot.sh | 3 +++
modules.d/98systemd/module-setup.sh | 4 ----
modules.d/98systemd/udevadm-cleanup-db.service | 20 --------------------
4 files changed, 4 insertions(+), 25 deletions(-)
delete mode 100644 modules.d/98systemd/udevadm-cleanup-db.service
diff --git a/modules.d/98systemd/dracut-pre-pivot.service b/modules.d/98systemd/dracut-pre-pivot.service
index 61257cf..317b476 100644
--- a/modules.d/98systemd/dracut-pre-pivot.service
+++ b/modules.d/98systemd/dracut-pre-pivot.service
@@ -16,7 +16,7 @@ ConditionPathExists=/etc/initrd-release
[Service]
Type=oneshot
ExecStart=-/bin/dracut-pre-pivot
-ExecStopPost=-/usr/bin/systemctl isolate initrd-switch-root.target
+ExecStopPost=-/usr/bin/systemctl --no-block isolate initrd-switch-root.target
StandardInput=null
StandardOutput=syslog
StandardError=syslog+console
diff --git a/modules.d/98systemd/dracut-pre-pivot.sh b/modules.d/98systemd/dracut-pre-pivot.sh
index 31dded5..44afe54 100755
--- a/modules.d/98systemd/dracut-pre-pivot.sh
+++ b/modules.d/98systemd/dracut-pre-pivot.sh
@@ -39,4 +39,7 @@ echo "NEWROOT=\"$NEWROOT\"" >> /run/initramfs/switch-root.conf
getarg rd.break rdbreak && emergency_shell -n switch_root "Break before switch_root"
+/usr/bin/udevadm control --exit || warn "/usr/bin/udevadm control --exit failed"
+/usr/bin/udevadm info --cleanup-db || warn "/usr/bin/udevadm info --cleanup-db failed"
+
exit 0
diff --git a/modules.d/98systemd/module-setup.sh b/modules.d/98systemd/module-setup.sh
index 5cb236c..05faf87 100755
--- a/modules.d/98systemd/module-setup.sh
+++ b/modules.d/98systemd/module-setup.sh
@@ -143,10 +143,6 @@ install() {
inst_simple "$moddir/dracut-pre-pivot.service" ${dracutsystemunitdir}/dracut-pre-pivot.service
ln -fs ../dracut-pre-pivot.service "${initdir}${dracutsystemunitdir}/basic.target.wants/dracut-pre-pivot.service"
- inst_simple "$moddir/udevadm-cleanup-db.service" ${dracutsystemunitdir}/udevadm-cleanup-db.service
- mkdir -p "${initdir}${dracutsystemunitdir}/initrd-switch-root.target.requires"
- ln -fs ../udevadm-cleanup-db.service "${initdir}${dracutsystemunitdir}/initrd-switch-root.target.requires/udevadm-cleanup-db.service"
-
inst_script "$moddir/service-to-run.sh" "${systemdutildir}/system-generators/service-to-run"
}
diff --git a/modules.d/98systemd/udevadm-cleanup-db.service b/modules.d/98systemd/udevadm-cleanup-db.service
deleted file mode 100644
index 368a0dd..0000000
--- a/modules.d/98systemd/udevadm-cleanup-db.service
+++ /dev/null
@@ -1,20 +0,0 @@
-# This file is part of systemd.
-#
-# systemd is free software; you can redistribute it and/or modify it
-# under the terms of the GNU Lesser General Public License as published by
-# the Free Software Foundation; either version 2.1 of the License, or
-# (at your option) any later version.
-
-[Unit]
-Description=Cleanup udevd DB
-DefaultDependencies=no
-ConditionPathExists=/etc/initrd-release
-Conflicts=systemd-udevd.service systemd-udevd-control.socket systemd-udevd-kernel.socket
-Before=initrd-switch-root.service
-
-[Service]
-Type=oneshot
-ExecStart=-/usr/bin/udevadm info --cleanup-db
-StandardInput=null
-StandardOutput=null
-StandardError=null

View File

@ -0,0 +1,29 @@
From 3780d7e44982b0e801622f5ad90ce0e80792b69e Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 17 Jul 2012 11:09:17 +0200
Subject: [PATCH] systemd/initrd-switch-root.service: call switch-root with
--no-block
---
modules.d/98systemd/initrd-switch-root.service | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/modules.d/98systemd/initrd-switch-root.service b/modules.d/98systemd/initrd-switch-root.service
index 7b59e15..7d1a648 100644
--- a/modules.d/98systemd/initrd-switch-root.service
+++ b/modules.d/98systemd/initrd-switch-root.service
@@ -11,12 +11,13 @@ DefaultDependencies=no
ConditionPathExists=/etc/initrd-release
OnFailure=emergency.service
After=initrd-switch-root.target
+AllowIsolate=yes
[Service]
Type=oneshot
EnvironmentFile=/run/initramfs/switch-root.conf
# we have to use "--force" here, otherwise systemd would umount /run
-ExecStart=/usr/bin/systemctl --force switch-root ${NEWROOT} ${NEWINIT}
+ExecStart=-/usr/bin/systemctl --no-block --force switch-root ${NEWROOT} ${NEWINIT}
ExecStopPost=-/bin/rm -f /run/initramfs/switch-root.conf
StandardInput=null
StandardOutput=null

View File

@ -0,0 +1,20 @@
From b94ae0561f4a431a33af167837b84dcb4dd06bde Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 17 Jul 2012 11:09:51 +0200
Subject: [PATCH] dracut.conf.d/fedora.conf.example: disable systemd for now
---
dracut.conf.d/fedora.conf.example | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dracut.conf.d/fedora.conf.example b/dracut.conf.d/fedora.conf.example
index 4cb1890..012bdd6 100644
--- a/dracut.conf.d/fedora.conf.example
+++ b/dracut.conf.d/fedora.conf.example
@@ -9,5 +9,5 @@ prefix="/"
systemdutildir=/usr/lib/systemd
systemdsystemunitdir=/usr/lib/systemd/system
udevdir=/usr/lib/udev
-add_dracutmodules+=" systemd "
+#add_dracutmodules+=" systemd "
realinitpath="/usr/lib/systemd/systemd"

View File

@ -10,7 +10,7 @@
Name: dracut
Version: 020
Release: 84.git20120711%{?dist}
Release: 96.git20120717%{?dist}
Summary: Initramfs generator using udev
%if 0%{?fedora} || 0%{?rhel}
@ -112,6 +112,18 @@ Patch80: 0080-systemd-fixed-initrd-switch-root.service.patch
Patch81: 0081-dracut.sh-for-include-copy-also-the-symbolic-links.patch
Patch82: 0082-install-dracut-install.c-check-for-empty-or-destdir.patch
Patch83: 0083-systemd-initrd-switch-root.service-add-back-force-to.patch
Patch84: 0084-watchdog-watchdog-stop.sh-forgot-to-add-script.patch
Patch85: 0085-systemd-initrd-switch-root.service-add-some-more-dep.patch
Patch86: 0086-systemd-service-to-run.sh-do-not-copy-the-target-sub.patch
Patch87: 0087-test-TEST-04-FULL-SYSTEMD-default-to-basic.target-an.patch
Patch88: 0088-kernel-modules-module-setup.sh-add-hid_generic-to-ke.patch
Patch89: 0089-Fixes-for-systemd-187-which-does-the-right-thing-for.patch
Patch90: 0090-dracut.spec-add-suse-version-ifdefs.patch
Patch91: 0091-dracut-functions.sh-output-more-info-if-dependency-m.patch
Patch92: 0092-Fix-fips-module-list.patch
Patch93: 0093-systemd-dracut-pre-pivot.service-force-clean-stop-of.patch
Patch94: 0094-systemd-initrd-switch-root.service-call-switch-root-.patch
Patch95: 0095-dracut.conf.d-fedora.conf.example-disable-systemd-fo.patch
BuildRequires: dash bash git
@ -168,7 +180,6 @@ Requires: file
Requires: udev > 166
%if 0%{?fedora} || 0%{?rhel} > 6
Requires: util-linux >= 2.21
Requires: systemd >= 186
%else
Requires: util-linux-ng >= 2.21
%endif
@ -195,7 +206,7 @@ Provides: dracut-generic = %{version}-%{release}
This package requires everything which is needed to build a generic
all purpose initramfs with network support with dracut.
%if 0%{?fedora} || 0%{?rhel} >= 6
%if 0%{?fedora} || 0%{?rhel} >= 6 || 0%{?suse_version}
%package fips
Summary: Dracut modules to build a dracut initramfs with an integrity check
Requires: %{name} = %{version}-%{release}
@ -269,7 +280,7 @@ make install DESTDIR=$RPM_BUILD_ROOT \
echo "DRACUT_VERSION=%{version}-%{release}" > $RPM_BUILD_ROOT/%{dracutlibdir}/dracut-version.sh
%if 0%{?fedora} == 0 && 0%{?rhel} == 0
%if 0%{?fedora} == 0 && 0%{?rhel} == 0 && 0%{?suse_version} == 0
rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/01fips
rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/02fips-aesni
%endif
@ -294,7 +305,7 @@ 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}
%if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version}
install -m 0644 dracut.conf.d/fedora.conf.example $RPM_BUILD_ROOT/etc/dracut.conf.d/01-dist.conf
install -m 0644 dracut.conf.d/fips.conf.example $RPM_BUILD_ROOT/etc/dracut.conf.d/40-fips.conf
%endif
@ -342,11 +353,13 @@ rm -rf $RPM_BUILD_ROOT
%endif
%dir /etc/dracut.conf.d
%{_mandir}/man8/dracut.8*
%if 0%{?fedora} > 12 || 0%{?rhel} >= 6 || 0%{?suse_version} > 9999
%{_mandir}/man8/mkinitrd.8*
%{_mandir}/man1/lsinitrd.1*
%endif
%{_mandir}/man7/dracut.kernel.7*
%{_mandir}/man7/dracut.cmdline.7*
%{_mandir}/man5/dracut.conf.5*
%{_mandir}/man1/lsinitrd.1*
%{dracutlibdir}/modules.d/00bootchart
%{dracutlibdir}/modules.d/04watchdog
%{dracutlibdir}/modules.d/05busybox
@ -413,7 +426,7 @@ rm -rf $RPM_BUILD_ROOT
%{dracutlibdir}/modules.d/45ifcfg
%{dracutlibdir}/modules.d/95znet
%if 0%{?fedora} || 0%{?rhel}
%if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version}
%files fips
%defattr(-,root,root,0755)
%{dracutlibdir}/modules.d/01fips
@ -438,6 +451,9 @@ rm -rf $RPM_BUILD_ROOT
%dir /var/lib/dracut/overlay
%changelog
* Tue Jul 17 2012 Harald Hoyer <harald@redhat.com> 020-96.git20120717
- disabled systemd in the initramfs, until it works correctly
* Wed Jul 11 2012 Harald Hoyer <harald@redhat.com> 020-84.git20120711
- add back "--force" to switch-root, otherwise systemd umounts /run