From 8c4725751c98004a1cbd6acb855cd2ee80215263 Mon Sep 17 00:00:00 2001 From: Harald Hoyer Date: Sep 08 2009 14:32:45 +0000 Subject: - fixed several problems with md raid containers - fixed selinux policy loading --- diff --git a/.cvsignore b/.cvsignore index 477a4e6..0a30ea4 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -dracut-001.tar.bz2 +dracut-001-f5c4374d.tar.bz2 diff --git a/0005-mdraid-add-grep-for-convenience.patch b/0005-mdraid-add-grep-for-convenience.patch deleted file mode 100644 index 731a4aa..0000000 --- a/0005-mdraid-add-grep-for-convenience.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 429aa1a2c29dd42fbc91e956a8a77675773cc46d Mon Sep 17 00:00:00 2001 -From: Harald Hoyer -Date: Thu, 3 Sep 2009 17:11:03 +0200 -Subject: [PATCH 5/6] mdraid: add grep for convenience - ---- - modules.d/90mdraid/install | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/modules.d/90mdraid/install b/modules.d/90mdraid/install -index 60f289a..497e5b0 100755 ---- a/modules.d/90mdraid/install -+++ b/modules.d/90mdraid/install -@@ -1,6 +1,6 @@ - #!/bin/bash - --dracut_install mdadm partx -+dracut_install mdadm partx grep - - - # XXX: mdmon really needs to run as non-root? --- -1.6.2.5 - diff --git a/0006--crypt-dmraid-lvm-mdraid-cleanup-with-pre-pivot-30.patch b/0006--crypt-dmraid-lvm-mdraid-cleanup-with-pre-pivot-30.patch deleted file mode 100644 index cc9c0a1..0000000 --- a/0006--crypt-dmraid-lvm-mdraid-cleanup-with-pre-pivot-30.patch +++ /dev/null @@ -1,58 +0,0 @@ -From e4dec3d6b66ad6cc3c5b0646459c4ba2db1808b7 Mon Sep 17 00:00:00 2001 -From: Harald Hoyer -Date: Thu, 3 Sep 2009 17:11:57 +0200 -Subject: [PATCH 6/6] {crypt,dmraid,lvm,mdraid}: cleanup with pre-pivot 30 and 31 - ---- - modules.d/90crypt/install | 2 +- - modules.d/90dmraid/install | 2 +- - modules.d/90lvm/install | 2 +- - modules.d/90mdraid/install | 2 +- - 4 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/modules.d/90crypt/install b/modules.d/90crypt/install -index 5108fef..b15440c 100755 ---- a/modules.d/90crypt/install -+++ b/modules.d/90crypt/install -@@ -4,4 +4,4 @@ inst_rules "$moddir/70-luks.rules" - inst "$moddir"/cryptroot-ask.sh /sbin/cryptroot-ask - inst_hook cmdline 30 "$moddir/parse-crypt.sh" - inst_hook pre-pivot 30 "$moddir/crypt-cleanup.sh" --inst_hook pre-pivot 60 "$moddir/crypt-cleanup.sh" -+inst_hook pre-pivot 31 "$moddir/crypt-cleanup.sh" -diff --git a/modules.d/90dmraid/install b/modules.d/90dmraid/install -index 704728b..b66257c 100755 ---- a/modules.d/90dmraid/install -+++ b/modules.d/90dmraid/install -@@ -4,4 +4,4 @@ inst "$moddir/dmraid.sh" /sbin/dmraid_scan - inst_rules 64-md-raid.rules - inst_rules "$moddir/61-dmraid-imsm.rules" - inst_hook pre-pivot 30 "$moddir/dmraid-cleanup.sh" --inst_hook pre-pivot 60 "$moddir/dmraid-cleanup.sh" -+inst_hook pre-pivot 31 "$moddir/dmraid-cleanup.sh" -diff --git a/modules.d/90lvm/install b/modules.d/90lvm/install -index eb27159..ad4d2e2 100755 ---- a/modules.d/90lvm/install -+++ b/modules.d/90lvm/install -@@ -13,4 +13,4 @@ fi - inst "$moddir/lvm_scan.sh" /sbin/lvm_scan - inst_hook cmdline 30 "$moddir/parse-lvm.sh" - inst_hook pre-pivot 30 "$moddir/lvm-cleanup.sh" --inst_hook pre-pivot 60 "$moddir/lvm-cleanup.sh" -\ No newline at end of file -+inst_hook pre-pivot 31 "$moddir/lvm-cleanup.sh" -\ No newline at end of file -diff --git a/modules.d/90mdraid/install b/modules.d/90mdraid/install -index 497e5b0..71c313b 100755 ---- a/modules.d/90mdraid/install -+++ b/modules.d/90mdraid/install -@@ -34,4 +34,4 @@ fi - inst "$moddir/mdraid_start.sh" /sbin/mdraid_start - inst_hook pre-trigger 30 "$moddir/parse-md.sh" - inst_hook pre-pivot 30 "$moddir/mdraid-cleanup.sh" --inst_hook pre-pivot 60 "$moddir/mdraid-cleanup.sh" -\ No newline at end of file -+inst_hook pre-pivot 31 "$moddir/mdraid-cleanup.sh" --- -1.6.2.5 - diff --git a/0007-95udev-rules-fixed-c-p-bug-which-did-not-install-61.patch b/0007-95udev-rules-fixed-c-p-bug-which-did-not-install-61.patch deleted file mode 100644 index 8d39fce..0000000 --- a/0007-95udev-rules-fixed-c-p-bug-which-did-not-install-61.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 96f3cf1d27268f3784f420ebb52228f3e6b08e77 Mon Sep 17 00:00:00 2001 -From: Harald Hoyer -Date: Mon, 7 Sep 2009 11:40:20 +0200 -Subject: [PATCH 7/8] 95udev-rules: fixed c&p bug which did not install 61-persistent-storage.rules - ---- - modules.d/95udev-rules/install | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/modules.d/95udev-rules/install b/modules.d/95udev-rules/install -index cf22d1e..695e472 100755 ---- a/modules.d/95udev-rules/install -+++ b/modules.d/95udev-rules/install -@@ -23,7 +23,7 @@ if [ ! -x /lib/udev/vol_id ]; then - else - inst_rules "$moddir/59-persistent-storage-volid.rules" - fi --inst_rules "$moddir/61-persistent-storage-volid.rules" -+inst_rules "$moddir/61-persistent-storage.rules" - - for i in \ - ata_id \ --- -1.6.2.5 - diff --git a/0009-mdraid_start.sh-fixed-raid-activation.patch b/0009-mdraid_start.sh-fixed-raid-activation.patch deleted file mode 100644 index 8344eab..0000000 --- a/0009-mdraid_start.sh-fixed-raid-activation.patch +++ /dev/null @@ -1,102 +0,0 @@ -From 587b3497c149780f8c4e680d19a880418c5cc8bb Mon Sep 17 00:00:00 2001 -From: Harald Hoyer -Date: Mon, 7 Sep 2009 14:11:18 +0200 -Subject: [PATCH 09/12] mdraid_start.sh: fixed raid activation - ---- - modules.d/90mdraid/65-md-incremental-imsm.rules | 6 ++++++ - modules.d/90mdraid/install | 3 ++- - modules.d/90mdraid/mdcontainer_start.sh | 9 +++++++++ - modules.d/90mdraid/mdraid_start.sh | 18 ++---------------- - modules.d/95debug/install | 2 +- - 5 files changed, 20 insertions(+), 18 deletions(-) - create mode 100755 modules.d/90mdraid/mdcontainer_start.sh - -diff --git a/modules.d/90mdraid/65-md-incremental-imsm.rules b/modules.d/90mdraid/65-md-incremental-imsm.rules -index 8385fb4..5104fc5 100644 ---- a/modules.d/90mdraid/65-md-incremental-imsm.rules -+++ b/modules.d/90mdraid/65-md-incremental-imsm.rules -@@ -23,3 +23,9 @@ RUN+="/sbin/mdadm -I --no-degraded $env{DEVNAME}" - RUN+="/bin/sh -c '>/tmp/.mdraid_start-%k; /bin/ln -s /sbin/mdraid_start /initqueue/mdraid_start.sh'" - - LABEL="md_inc_end" -+ -+ACTION=="add|change", \ -+ ENV{DEVTYPE}!="partition", \ -+ ENV{MD_LEVEL}=="container", \ -+ TEST!="/tmp/.mdcontainer_start-%k", \ -+ RUN+="/bin/sh -c '>/tmp/.mdcontainer_start-%k; initqueue /sbin/mdcontainer_start $env{DEVNAME}'" -diff --git a/modules.d/90mdraid/install b/modules.d/90mdraid/install -index 71c313b..c2de3bb 100755 ---- a/modules.d/90mdraid/install -+++ b/modules.d/90mdraid/install -@@ -1,6 +1,6 @@ - #!/bin/bash - --dracut_install mdadm partx grep -+dracut_install mdadm partx - - - # XXX: mdmon really needs to run as non-root? -@@ -32,6 +32,7 @@ if [ -x /sbin/mdmon ] ; then - fi - - inst "$moddir/mdraid_start.sh" /sbin/mdraid_start -+inst "$moddir/mdcontainer_start.sh" /sbin/mdcontainer_start - inst_hook pre-trigger 30 "$moddir/parse-md.sh" - inst_hook pre-pivot 30 "$moddir/mdraid-cleanup.sh" - inst_hook pre-pivot 31 "$moddir/mdraid-cleanup.sh" -diff --git a/modules.d/90mdraid/mdcontainer_start.sh b/modules.d/90mdraid/mdcontainer_start.sh -new file mode 100755 -index 0000000..403b62b ---- /dev/null -+++ b/modules.d/90mdraid/mdcontainer_start.sh -@@ -0,0 +1,9 @@ -+#!/bin/sh -+. /lib/dracut-lib.sh -+ -+if $UDEV_QUEUE_EMPTY >/dev/null 2>&1; then -+ # run mdadm if udev has settled -+ md=$1 -+ # and activate any containers -+ mdadm -IR $md 2>&1 | vinfo -+fi -diff --git a/modules.d/90mdraid/mdraid_start.sh b/modules.d/90mdraid/mdraid_start.sh -index a6868bd..55e7d9c 100755 ---- a/modules.d/90mdraid/mdraid_start.sh -+++ b/modules.d/90mdraid/mdraid_start.sh -@@ -4,20 +4,6 @@ if $UDEV_QUEUE_EMPTY >/dev/null 2>&1; then - [ -h "$job" ] && rm -f "$job" - # run mdadm if udev has settled - info "Assembling MD RAID arrays" -- -- # and activate any containers -- for md in /dev/md?*; do -- case $md in -- /dev/md*p*) ;; -- *) -- if mdadm --query --test --detail $md 2>&1|grep -q 'does not appear to be active'; then -- info "Starting MD RAID array $md" -- mdadm -R $md 2>&1 | vinfo -- if mdadm --query --test --detail $md 2>&1|grep -q 'does not appear to be active'; then -- mdadm -IR $md 2>&1 | vinfo -- fi -- udevsettle -- fi -- esac -- done -+ mdadm -IRs 2>&1 | vinfo -+ udevsettle - fi -diff --git a/modules.d/95debug/install b/modules.d/95debug/install -index 1597187..1c7afaf 100755 ---- a/modules.d/95debug/install -+++ b/modules.d/95debug/install -@@ -1,3 +1,3 @@ - #!/bin/bash - dracut_install -o ps grep more cat rm strace free showmount --dracut_install -o ping netstat rpcinfo -+dracut_install -o ping netstat rpcinfo vi --- -1.6.2.5 - diff --git a/0010-add-scp-to-debug-module.patch b/0010-add-scp-to-debug-module.patch deleted file mode 100644 index 82dee5b..0000000 --- a/0010-add-scp-to-debug-module.patch +++ /dev/null @@ -1,21 +0,0 @@ -From 4f4a79b1a13f9961030a3d97743274116f72054a Mon Sep 17 00:00:00 2001 -From: Harald Hoyer -Date: Mon, 7 Sep 2009 17:10:19 +0200 -Subject: [PATCH 10/12] add scp to debug module - ---- - modules.d/95debug/install | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/modules.d/95debug/install b/modules.d/95debug/install -index 1c7afaf..cd8c48c 100755 ---- a/modules.d/95debug/install -+++ b/modules.d/95debug/install -@@ -1,3 +1,3 @@ - #!/bin/bash - dracut_install -o ps grep more cat rm strace free showmount --dracut_install -o ping netstat rpcinfo vi -+dracut_install -o ping netstat rpcinfo vi scp --- -1.6.2.5 - diff --git a/0011-mdraid-cleanup-do-not-stop-mdraid-container.patch b/0011-mdraid-cleanup-do-not-stop-mdraid-container.patch deleted file mode 100644 index 925e9b7..0000000 --- a/0011-mdraid-cleanup-do-not-stop-mdraid-container.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 906dedf4d57f03545094e75482072b12873926f8 Mon Sep 17 00:00:00 2001 -From: Harald Hoyer -Date: Mon, 7 Sep 2009 17:53:37 +0200 -Subject: [PATCH 11/12] mdraid-cleanup: do not stop mdraid container - ---- - modules.d/90mdraid/mdraid-cleanup.sh | 15 +++++++++++++-- - 1 files changed, 13 insertions(+), 2 deletions(-) - -diff --git a/modules.d/90mdraid/mdraid-cleanup.sh b/modules.d/90mdraid/mdraid-cleanup.sh -index 9c4469d..dc3b86f 100755 ---- a/modules.d/90mdraid/mdraid-cleanup.sh -+++ b/modules.d/90mdraid/mdraid-cleanup.sh -@@ -1,4 +1,15 @@ - # stop everything which is not busy --for i in /dev/md*; do -- mdadm --stop $i >/dev/null 2>&1 -+for i in /dev/md* /dev/md/*; do -+ [ -b $i ] || continue -+ -+ mddetail=$(udevadm info --query=property --name=$i) -+ case "$mddetail" in -+ *MD_LEVEL=container*) -+ ;; -+ *DEVTYPE=partition*) -+ ;; -+ *) -+ mdadm --stop $i >/dev/null 2>&1 -+ ;; -+ esac - done --- -1.6.2.5 - diff --git a/0012-added-initqueue-settled-and-refactored-code.patch b/0012-added-initqueue-settled-and-refactored-code.patch deleted file mode 100644 index c074332..0000000 --- a/0012-added-initqueue-settled-and-refactored-code.patch +++ /dev/null @@ -1,461 +0,0 @@ -From 273b197d75da0165ce5ad22bcab6697bc22dbb04 Mon Sep 17 00:00:00 2001 -From: Harald Hoyer -Date: Mon, 7 Sep 2009 17:40:04 +0200 -Subject: [PATCH 12/12] added initqueue-settled and refactored code - ---- - modules.d/90crypt/cryptroot-ask.sh | 2 - - modules.d/90dmraid/61-dmraid-imsm.rules | 4 +- - modules.d/90dmraid/dmraid.sh | 45 +++++++-------- - .../90dmsquash-live/dmsquash-live-genrules.sh | 4 +- - modules.d/90lvm/64-lvm-vol_id.rules | 22 ------- - modules.d/90lvm/64-lvm.rules | 9 ++- - modules.d/90lvm/install | 7 +-- - modules.d/90lvm/lvm_scan.sh | 61 +++++++++---------- - modules.d/90mdraid/65-md-incremental-imsm.rules | 42 ++++++++++++- - modules.d/90mdraid/mdcontainer_start.sh | 9 +-- - modules.d/90mdraid/mdraid_start.sh | 11 +-- - modules.d/95rootfs-block/block-genrules.sh | 2 +- - modules.d/99base/dracut-lib.sh | 7 ++ - modules.d/99base/init | 17 +++++- - modules.d/99base/initqueue | 34 +++++++++-- - modules.d/99base/install | 1 + - 16 files changed, 160 insertions(+), 117 deletions(-) - delete mode 100644 modules.d/90lvm/64-lvm-vol_id.rules - -diff --git a/modules.d/90crypt/cryptroot-ask.sh b/modules.d/90crypt/cryptroot-ask.sh -index a2ebde6..7872d64 100755 ---- a/modules.d/90crypt/cryptroot-ask.sh -+++ b/modules.d/90crypt/cryptroot-ask.sh -@@ -35,6 +35,4 @@ fi - # mark device as asked - >> /tmp/cryptroot-asked-$2 - --udevsettle -- - exit 0 -diff --git a/modules.d/90dmraid/61-dmraid-imsm.rules b/modules.d/90dmraid/61-dmraid-imsm.rules -index 172e09f..d610643 100644 ---- a/modules.d/90dmraid/61-dmraid-imsm.rules -+++ b/modules.d/90dmraid/61-dmraid-imsm.rules -@@ -11,7 +11,9 @@ ENV{ID_FS_TYPE}=="isw_raid_member", ENV{rd_NO_MDIMSM}!="?*", GOTO="dm_end" - ENV{ID_FS_TYPE}!="*_raid_member", , GOTO="dm_end" - TEST=="/tmp/.dmraid_scan-%k", GOTO="dm_end" - --RUN+="/bin/sh -c '>/tmp/.dmraid_scan-%k; /bin/ln -fs /sbin/dmraid_scan /initqueue/dmraid_scan.sh'" -+RUN+="/sbin/initqueue --onetime --unique --settled /sbin/dmraid_scan" -+ -+ACTION=="change", RUN+="/bin/sh -c '>/tmp/.dmraid_scan-%k'" - - ENV{DEVTYPE}!="partition", \ - RUN+="/sbin/partx -d --nr 1-1024 $env{DEVNAME}" -diff --git a/modules.d/90dmraid/dmraid.sh b/modules.d/90dmraid/dmraid.sh -index 2cd6773..e382233 100755 ---- a/modules.d/90dmraid/dmraid.sh -+++ b/modules.d/90dmraid/dmraid.sh -@@ -1,28 +1,25 @@ - #!/bin/sh - --if $UDEV_QUEUE_EMPTY >/dev/null 2>&1; then -- [ -h "$job" ] && rm -f "$job" -- DM_RAIDS=$(getargs rd_DM_UUID=) -- # run dmraid if udev has settled -- info "Scanning for dmraid devices $DM_RAIDS" -- if [ -n "$DM_RAIDS" ]; then -- # only activate specified DM RAIDS -- SETS=$(dmraid -c -s) -- info "Found dmraid sets:" -- echo $SETS|vinfo -- for r in $DM_RAIDS; do -- for s in $SETS; do -- if [ "${s##$r}" != "$s" ]; then -- info "Activating $s" -- dmraid -ay $s 2>&1 | vinfo -- udevsettle -- fi -- done -+. /lib/dracut-lib.sh -+ -+DM_RAIDS=$(getargs rd_DM_UUID=) -+# run dmraid if udev has settled -+info "Scanning for dmraid devices $DM_RAIDS" -+if [ -n "$DM_RAIDS" ]; then -+ # only activate specified DM RAIDS -+ SETS=$(dmraid -c -s) -+ info "Found dmraid sets:" -+ echo $SETS|vinfo -+ for r in $DM_RAIDS; do -+ for s in $SETS; do -+ if [ "${s##$r}" != "$s" ]; then -+ info "Activating $s" -+ dmraid -ay $s 2>&1 | vinfo -+ udevsettle -+ fi - done -- else -- # scan and activate all DM RAIDS -- dmraid -ay 2>&1 | vinfo -- udevsettle -- fi -+ done -+else -+ # scan and activate all DM RAIDS -+ dmraid -ay 2>&1 | vinfo - fi -- -diff --git a/modules.d/90dmsquash-live/dmsquash-live-genrules.sh b/modules.d/90dmsquash-live/dmsquash-live-genrules.sh -index a3858e1..4bf993d 100644 ---- a/modules.d/90dmsquash-live/dmsquash-live-genrules.sh -+++ b/modules.d/90dmsquash-live/dmsquash-live-genrules.sh -@@ -4,9 +4,9 @@ if [ "${root%%:*}" = "live" ]; then - ${root#live:/dev/} - printf 'SYMLINK=="%s", SYMLINK+="live"\n' \ - ${root#live:/dev/} -- printf 'KERNEL=="%s", RUN+="/sbin/initqueue --onetime /sbin/dmsquash-live-root $env{DEVNAME}"\n' \ -+ printf 'KERNEL=="%s", RUN+="/sbin/initqueue --onetime --unique /sbin/dmsquash-live-root $env{DEVNAME}"\n' \ - ${root#live:/dev/} -- printf 'SYMLINK=="%s", RUN+="/sbin/initqueue --onetime /sbin/dmsquash-live-root $env{DEVNAME}"\n' \ -+ printf 'SYMLINK=="%s", RUN+="/sbin/initqueue --onetime --unique /sbin/dmsquash-live-root $env{DEVNAME}"\n' \ - ${root#live:/dev/} - - ) >> /etc/udev/rules.d/99-live-mount.rules -diff --git a/modules.d/90lvm/64-lvm-vol_id.rules b/modules.d/90lvm/64-lvm-vol_id.rules -deleted file mode 100644 -index 4f349a6..0000000 ---- a/modules.d/90lvm/64-lvm-vol_id.rules -+++ /dev/null -@@ -1,22 +0,0 @@ --# hacky rules to try to activate lvm when we get new block devs... --# --# Copyright 2008, Red Hat, Inc. --# Jeremy Katz -- -- --SUBSYSTEM!="block", GOTO="lvm_end" --ACTION!="add|change", GOTO="lvm_end" --KERNEL=="dm-[0-9]*", ACTION!="change", GOTO="lvm_end" -- --ENV{ID_FS_TYPE}=="LVM2_member", \ -- TEST!="/tmp/.lvm_scan-%k", \ -- RUN+="/bin/sh -c '>/tmp/.lvm_scan-%k; /bin/ln -fs /sbin/lvm_scan /initqueue/lvm_scan.sh'" -- --KERNEL!="dm-[0-9]*", GOTO="lvm_end" -- --OPTIONS="link_priority=-100" --ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}" --ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}" -- -- --LABEL="lvm_end" -diff --git a/modules.d/90lvm/64-lvm.rules b/modules.d/90lvm/64-lvm.rules -index 0a053ae..a200add 100644 ---- a/modules.d/90lvm/64-lvm.rules -+++ b/modules.d/90lvm/64-lvm.rules -@@ -7,9 +7,12 @@ - SUBSYSTEM!="block", GOTO="lvm_end" - ACTION!="add|change", GOTO="lvm_end" - KERNEL=="dm-[0-9]*", ACTION=="add", GOTO="lvm_end" -+ENV{ID_FS_TYPE}!="LVM2_member", GOTO="lvm_end" - --ENV{ID_FS_TYPE}=="LVM2_member", \ -- TEST!="/tmp/.lvm_scan-%k", \ -- RUN+="/bin/sh -c '>/tmp/.lvm_scan-%k; /bin/ln -fs /sbin/lvm_scan /initqueue/lvm_scan.sh'" -+TEST!="/tmp/.lvm_change-%k", \ -+ RUN+="/sbin/initqueue --settled --onetime --unique /sbin/lvm_scan" -+ -+ACTION=="add", RUN+="/bin/sh -c '>/tmp/.lvm_scan-%k;'" -+ACTION=="change", RUN+="/bin/sh -c '>/tmp/.lvm_change-%k;>/tmp/.lvm_scan-%k;'" - - LABEL="lvm_end" -diff --git a/modules.d/90lvm/install b/modules.d/90lvm/install -index ad4d2e2..c0952e2 100755 ---- a/modules.d/90lvm/install -+++ b/modules.d/90lvm/install -@@ -1,10 +1,7 @@ - #!/bin/bash - inst lvm --if [ -x /lib/udev/vol_id ]; then -- inst_rules "$moddir/64-lvm-vol_id.rules" 64-device-mapper.rules --else -- inst_rules "$moddir/64-lvm.rules" 64-device-mapper.rules --fi -+ -+inst_rules "$moddir/64-lvm.rules" 64-lvm.rules - - if [[ $hostonly ]]; then - [ -f /etc/lvm/lvm.conf ] && inst /etc/lvm/lvm.conf -diff --git a/modules.d/90lvm/lvm_scan.sh b/modules.d/90lvm/lvm_scan.sh -index a40b677..f606055 100755 ---- a/modules.d/90lvm/lvm_scan.sh -+++ b/modules.d/90lvm/lvm_scan.sh -@@ -1,38 +1,35 @@ - #!/bin/sh - --if $UDEV_QUEUE_EMPTY >/dev/null 2>&1; then -- [ -h "$job" ] && rm -f "$job" -- # run lvm scan if udev has settled -+# run lvm scan if udev has settled - -- VGS=$(getargs rd_LVM_VG=) -+. /lib/dracut-lib.sh - -- [ -d /etc/lvm ] || mkdir -p /etc/lvm -- # build a list of devices to scan -- lvmdevs=$( -- for f in /tmp/.lvm_scan-*; do -- [ -e "$f" ] || continue -- echo -n "${f##/tmp/.lvm_scan-} " -- done -- ) -+VGS=$(getargs rd_LVM_VG=) - -- if [ ! -e /etc/lvm/lvm.conf ]; then -- { -- echo 'devices {'; -- echo -n ' filter = [ ' -- for dev in $lvmdevs; do -- printf '"a|^/dev/%s$|", ' $dev; -- done; -- echo '"r/.*/" ]'; -- echo 'types = [ "blkext", 1024 , "cciss0", 1024 ]' -- echo '}'; -- } > /etc/lvm/lvm.conf -- lvmwritten=1 -- fi -- info "Scanning devices $lvmdevs for LVM volume groups $VGS" -- lvm vgscan 2>&1 | vinfo -- lvm vgchange -ay $VGS 2>&1 | vinfo -- [ "$lvmwritten" ] && rm -f /etc/lvm/lvm.conf -- unset lvmwritten -- udevsettle --fi -+[ -d /etc/lvm ] || mkdir -p /etc/lvm -+# build a list of devices to scan -+lvmdevs=$( -+ for f in /tmp/.lvm_scan-*; do -+ [ -e "$f" ] || continue -+ echo -n "${f##/tmp/.lvm_scan-} " -+ done -+) - -+if [ ! -e /etc/lvm/lvm.conf ]; then -+ { -+ echo 'devices {'; -+ echo -n ' filter = [ ' -+ for dev in $lvmdevs; do -+ printf '"a|^/dev/%s$|", ' $dev; -+ done; -+ echo '"r/.*/" ]'; -+ echo 'types = [ "blkext", 1024 , "cciss0", 1024 ]' -+ echo '}'; -+ } > /etc/lvm/lvm.conf -+ lvmwritten=1 -+fi -+info "Scanning devices $lvmdevs for LVM volume groups $VGS" -+lvm vgscan 2>&1 | vinfo -+lvm vgchange -ay $VGS 2>&1 | vinfo -+[ "$lvmwritten" ] && rm -f /etc/lvm/lvm.conf -+unset lvmwritten -diff --git a/modules.d/90mdraid/65-md-incremental-imsm.rules b/modules.d/90mdraid/65-md-incremental-imsm.rules -index 5104fc5..0a06988 100644 ---- a/modules.d/90mdraid/65-md-incremental-imsm.rules -+++ b/modules.d/90mdraid/65-md-incremental-imsm.rules -@@ -20,12 +20,46 @@ ENV{DEVTYPE}!="partition", \ - - RUN+="/sbin/mdadm -I --no-degraded $env{DEVNAME}" - --RUN+="/bin/sh -c '>/tmp/.mdraid_start-%k; /bin/ln -s /sbin/mdraid_start /initqueue/mdraid_start.sh'" -- - LABEL="md_inc_end" - -+# -+# Handle non-container raid arrays -+# -+ACTION=="add|change", \ -+ KERNEL=="md[0-9]*|md/*", \ -+ ENV{DEVTYPE}!="partition", \ -+ ENV{MD_LEVEL}!="container", \ -+ GOTO="do_raidstart" -+ -+GOTO="end_raidstart" -+ -+LABEL="do_raidstart" -+ -+TEST!="/tmp/.mdraid_start-%k", \ -+ RUN+="/sbin/initqueue --settled --onetime --unique /sbin/mdraid_start" -+ -+ACTION=="change", \ -+ RUN+="/bin/sh -c '>/tmp/.mdraid_start-%k'" -+ -+LABEL="end_raidstart" -+ -+# -+# Handle container raid arrays -+# - ACTION=="add|change", \ -+ KERNEL=="md[0-9]*|md/*", \ - ENV{DEVTYPE}!="partition", \ - ENV{MD_LEVEL}=="container", \ -- TEST!="/tmp/.mdcontainer_start-%k", \ -- RUN+="/bin/sh -c '>/tmp/.mdcontainer_start-%k; initqueue /sbin/mdcontainer_start $env{DEVNAME}'" -+ GOTO="do_container" -+ -+GOTO="end_container" -+ -+LABEL="do_container" -+ -+TEST!="/tmp/.mdcontainer_start-%k", \ -+ RUN+="/sbin/initqueue --settled --onetime /sbin/mdcontainer_start $env{DEVNAME}" -+ -+ACTION=="change", \ -+ RUN+="/bin/sh -c '>/tmp/.mdcontainer_start-%k'" -+ -+LABEL="end_container" -diff --git a/modules.d/90mdraid/mdcontainer_start.sh b/modules.d/90mdraid/mdcontainer_start.sh -index 403b62b..4cb282d 100755 ---- a/modules.d/90mdraid/mdcontainer_start.sh -+++ b/modules.d/90mdraid/mdcontainer_start.sh -@@ -1,9 +1,6 @@ - #!/bin/sh - . /lib/dracut-lib.sh - --if $UDEV_QUEUE_EMPTY >/dev/null 2>&1; then -- # run mdadm if udev has settled -- md=$1 -- # and activate any containers -- mdadm -IR $md 2>&1 | vinfo --fi -+md=$1 -+# and activate any containers -+mdadm -IR $md 2>&1 | vinfo -diff --git a/modules.d/90mdraid/mdraid_start.sh b/modules.d/90mdraid/mdraid_start.sh -index 55e7d9c..ee9362c 100755 ---- a/modules.d/90mdraid/mdraid_start.sh -+++ b/modules.d/90mdraid/mdraid_start.sh -@@ -1,9 +1,6 @@ - #!/bin/sh - --if $UDEV_QUEUE_EMPTY >/dev/null 2>&1; then -- [ -h "$job" ] && rm -f "$job" -- # run mdadm if udev has settled -- info "Assembling MD RAID arrays" -- mdadm -IRs 2>&1 | vinfo -- udevsettle --fi -+. /lib/dracut-lib.sh -+# run mdadm if udev has settled -+info "Assembling MD RAID arrays" -+mdadm -IRs 2>&1 | vinfo -diff --git a/modules.d/95rootfs-block/block-genrules.sh b/modules.d/95rootfs-block/block-genrules.sh -index 10471ea..f12a6b9 100644 ---- a/modules.d/95rootfs-block/block-genrules.sh -+++ b/modules.d/95rootfs-block/block-genrules.sh -@@ -8,5 +8,5 @@ if [ "${root%%:*}" = "block" ]; then - ( - printf '[ -e "%s" ] && { ln -s "%s" /dev/root; rm "$job"; }\n' \ - "${root#block:}" "${root#block:}" -- ) >> /initqueue/blocksymlink.sh -+ ) >> /initqueue-settled/blocksymlink.sh - fi -diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh -index a717bb4..9e33cf3 100644 ---- a/modules.d/99base/dracut-lib.sh -+++ b/modules.d/99base/dracut-lib.sh -@@ -117,3 +117,10 @@ udevsettle() { - udevadm settle --timeout=30 - fi - } -+ -+if [ -e /proc/cmdline ]; then -+ if getarg rdinitdebug; then -+ set -x -+ fi -+fi -+ -diff --git a/modules.d/99base/init b/modules.d/99base/init -index d94a3a2..14505ed 100755 ---- a/modules.d/99base/init -+++ b/modules.d/99base/init -@@ -138,7 +138,22 @@ while :; do - [ -n "$queuetriggered" ] && continue - - if $UDEV_QUEUE_EMPTY >/dev/null 2>&1; then -- # no more udev jobs -+ unset queuetriggered -+ for job in /initqueue-settled/*.sh; do -+ [ -e "$job" ] || break -+ -+ queuetriggered="1" -+ -+ job=$job . $job -+ -+ # bail out, if we have mounted the root filesystem -+ [ -d "$NEWROOT/proc" ] && break 2; -+ -+ # check if root can be mounted -+ [ -e /dev/root ] && break 2; -+ done -+ -+ # no more udev jobs and queues empty. - sleep 0.5 - i=$(($i+1)) - [ $i -gt 20 ] \ -diff --git a/modules.d/99base/initqueue b/modules.d/99base/initqueue -index a5c6ef6..b2d4406 100755 ---- a/modules.d/99base/initqueue -+++ b/modules.d/99base/initqueue -@@ -1,12 +1,32 @@ - #!/bin/sh - --if [ "$1" = "--onetime" ]; then -- onetime="yes" -- shift -+. /lib/dracut-lib.sh -+ -+while [ $# -gt 0 ]; do -+ case "$1" in -+ --onetime) -+ onetime="yes" -+ shift;; -+ --settled) -+ settled="-settled" -+ shift;; -+ --unique) -+ unique="yes" -+ shift;; -+ *) -+ break;; -+ esac -+done -+ -+if [ -z "$unique" ]; then -+ job=$$ -+else -+ job=${1##*/} - fi --echo "$@" > /tmp/$$.sh -+ -+echo "$@" > /tmp/${job}.sh - if [ -n "$onetime" ]; then -- echo '[ -e "$job" ] && rm "$job"' >> /tmp/$$.sh -+ echo '[ -e "$job" ] && rm "$job"' >> /tmp/${job}.sh - fi --mv /tmp/$$.sh /initqueue/ -->> /initqueue/work -+mv -f /tmp/${job}.sh /initqueue${settled}/ -+[ -z "$settled" ] && >> /initqueue/work -diff --git a/modules.d/99base/install b/modules.d/99base/install -index bc2336a..08ca8f0 100755 ---- a/modules.d/99base/install -+++ b/modules.d/99base/install -@@ -9,6 +9,7 @@ fi - inst "$moddir/init" "/init" - inst "$moddir/initqueue" "/sbin/initqueue" - mkdir -p ${initdir}/initqueue -+mkdir -p ${initdir}/initqueue-settled - mkdir -p ${initdir}/tmp - # Bail out if switch_root does not exist - if which switch_root >/dev/null 2>&1; then --- -1.6.2.5 - diff --git a/dracut.spec b/dracut.spec index 2ca6b59..b5c7b5f 100644 --- a/dracut.spec +++ b/dracut.spec @@ -1,3 +1,5 @@ +%define gittag f5c4374d + %if 0%{?fedora} < 12 %define with_switch_root 1 %else @@ -13,21 +15,12 @@ Name: dracut Version: 001 -Release: 5%{?rdist} +Release: 6%{?rdist} Summary: Initramfs generator using udev Group: System Environment/Base License: GPLv2+ URL: http://apps.sourceforge.net/trac/dracut/wiki Source0: dracut-%{version}%{?dashgittag}.tar.bz2 - -Patch1: 0005-mdraid-add-grep-for-convenience.patch -Patch2: 0006--crypt-dmraid-lvm-mdraid-cleanup-with-pre-pivot-30.patch -Patch3: 0007-95udev-rules-fixed-c-p-bug-which-did-not-install-61.patch -Patch4: 0009-mdraid_start.sh-fixed-raid-activation.patch -Patch5: 0010-add-scp-to-debug-module.patch -Patch6: 0011-mdraid-cleanup-do-not-stop-mdraid-container.patch -Patch7: 0012-added-initqueue-settled-and-refactored-code.patch - BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Requires: udev Requires: util-linux-ng @@ -111,18 +104,11 @@ This package contains tools to assemble the local initrd and host configuration. %prep %setup -q -n %{name}-%{version}%{?dashgittag} -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 -%patch5 -p1 -%patch6 -p1 -%patch7 -p1 -chmod a+x modules.d/*/*.sh %build make + %install rm -rf $RPM_BUILD_ROOT make install DESTDIR=$RPM_BUILD_ROOT sbindir=/sbin \ @@ -195,6 +181,10 @@ rm -rf $RPM_BUILD_ROOT %dir /var/lib/dracut/overlay %changelog +* Tue Sep 08 2009 Harald Hoyer 001-6 +- fixed several problems with md raid containers +- fixed selinux policy loading + * Tue Sep 08 2009 Harald Hoyer 001-5 - patch does not honor file modes, fixed them manually diff --git a/sources b/sources index eeb405a..d3ccb92 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -12d60478b28876747bee3d7c8c04be95 dracut-001.tar.bz2 +36e8fcadcbd9ee4ca37e55fac35662b5 dracut-001-f5c4374d.tar.bz2