update to latest git
lots of patch changes
This commit is contained in:
parent
401ad95270
commit
6adbc8b238
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,3 +1,4 @@
|
|||||||
/dracut-011-9b30d47.tar.bz2
|
/dracut-011-9b30d47.tar.bz2
|
||||||
/dracut-011.tar.bz2
|
/dracut-011.tar.bz2
|
||||||
/dracut-013.tar.bz2
|
/dracut-013.tar.bz2
|
||||||
|
/dracut-014.tar.bz2
|
||||||
|
@ -1,28 +0,0 @@
|
|||||||
From 4a049ce55681849e6338ee355ade3b7f92ca04d7 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Fri, 12 Aug 2011 16:29:28 +0200
|
|
||||||
Subject: [PATCH] add x-bit to *.sh
|
|
||||||
|
|
||||||
---
|
|
||||||
0 files changed, 0 insertions(+), 0 deletions(-)
|
|
||||||
mode change 100644 => 100755 modules.d/90crypt/crypt-lib.sh
|
|
||||||
mode change 100644 => 100755 modules.d/90crypt/parse-keydev.sh
|
|
||||||
mode change 100644 => 100755 modules.d/90dm/dm-shutdown.sh
|
|
||||||
mode change 100644 => 100755 modules.d/90mdraid/md-shutdown.sh
|
|
||||||
mode change 100644 => 100755 modules.d/91crypt-gpg/crypt-gpg-lib.sh
|
|
||||||
|
|
||||||
diff --git a/modules.d/90crypt/crypt-lib.sh b/modules.d/90crypt/crypt-lib.sh
|
|
||||||
old mode 100644
|
|
||||||
new mode 100755
|
|
||||||
diff --git a/modules.d/90crypt/parse-keydev.sh b/modules.d/90crypt/parse-keydev.sh
|
|
||||||
old mode 100644
|
|
||||||
new mode 100755
|
|
||||||
diff --git a/modules.d/90dm/dm-shutdown.sh b/modules.d/90dm/dm-shutdown.sh
|
|
||||||
old mode 100644
|
|
||||||
new mode 100755
|
|
||||||
diff --git a/modules.d/90mdraid/md-shutdown.sh b/modules.d/90mdraid/md-shutdown.sh
|
|
||||||
old mode 100644
|
|
||||||
new mode 100755
|
|
||||||
diff --git a/modules.d/91crypt-gpg/crypt-gpg-lib.sh b/modules.d/91crypt-gpg/crypt-gpg-lib.sh
|
|
||||||
old mode 100644
|
|
||||||
new mode 100755
|
|
149
0001-dracut-export-host_fs_types-host_devs.patch
Normal file
149
0001-dracut-export-host_fs_types-host_devs.patch
Normal file
@ -0,0 +1,149 @@
|
|||||||
|
From 7ae5d9d11d1a0ccd31dced528e2792f1c1d5aeca Mon Sep 17 00:00:00 2001
|
||||||
|
From: Harald Hoyer <harald@redhat.com>
|
||||||
|
Date: Thu, 8 Dec 2011 10:25:58 +0100
|
||||||
|
Subject: [PATCH] dracut: export host_fs_types host_devs
|
||||||
|
|
||||||
|
Determine devices and filesystems to be included in the host-only
|
||||||
|
initramfs image.
|
||||||
|
|
||||||
|
To get a minimal initramfs, which can mount
|
||||||
|
/
|
||||||
|
/etc
|
||||||
|
/usr
|
||||||
|
/usr/bin
|
||||||
|
/usr/sbin
|
||||||
|
/usr/lib
|
||||||
|
/usr/lib64
|
||||||
|
/boot
|
||||||
|
we look in fstab for the corresponding devices and determine their and
|
||||||
|
their slaves' filesystem type and put all that in $host_fs_types
|
||||||
|
and $host_devs.
|
||||||
|
---
|
||||||
|
dracut | 42 +++++++++++++++++++++++++++++++++++++++++-
|
||||||
|
dracut-functions | 30 ++++++++++++++++++++++++++----
|
||||||
|
2 files changed, 67 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/dracut b/dracut
|
||||||
|
index 45ee759..3d08680 100755
|
||||||
|
--- a/dracut
|
||||||
|
+++ b/dracut
|
||||||
|
@@ -507,12 +507,52 @@ trap 'exit 1;' SIGINT
|
||||||
|
# Need to be able to have non-root users read stuff (rpcbind etc)
|
||||||
|
chmod 755 "$initdir"
|
||||||
|
|
||||||
|
+if [[ $hostonly ]]; then
|
||||||
|
+
|
||||||
|
+ _get_fs_type() (
|
||||||
|
+ [[ $1 ]] || return
|
||||||
|
+ if [[ -b /dev/block/$1 ]] && get_fs_env /dev/block/$1; then
|
||||||
|
+ echo -n "$ID_FS_TYPE "
|
||||||
|
+ return 1
|
||||||
|
+ fi
|
||||||
|
+ if find_dev_fstype $1; then
|
||||||
|
+ echo -n " "
|
||||||
|
+ return 1
|
||||||
|
+ fi
|
||||||
|
+ return 1
|
||||||
|
+ )
|
||||||
|
+
|
||||||
|
+ push host_mp \
|
||||||
|
+ "/" \
|
||||||
|
+ "/etc" \
|
||||||
|
+ "/usr" \
|
||||||
|
+ "/usr/bin" \
|
||||||
|
+ "/usr/sbin" \
|
||||||
|
+ "/usr/lib" \
|
||||||
|
+ "/usr/lib64" \
|
||||||
|
+ "/boot"
|
||||||
|
+
|
||||||
|
+ host_fs_types=""
|
||||||
|
+ for mp in "${host_mp[@]}"; do
|
||||||
|
+ mountpoint "$mp" >/dev/null 2>&1 || continue
|
||||||
|
+ push host_devs $(find_block_device "$mp")
|
||||||
|
+ done
|
||||||
|
+ for dev in "${host_devs[@]}"; do
|
||||||
|
+ unset fs_type
|
||||||
|
+ for fstype in $(_get_fs_type $dev) \
|
||||||
|
+ $(check_block_and_slaves _get_fs_type $dev); do
|
||||||
|
+ strstr " $host_fs_types " "$fstype" || host_fs_types+="$fstype "
|
||||||
|
+ done
|
||||||
|
+ done
|
||||||
|
+fi
|
||||||
|
+echo "host_fs_types=$host_fs_types"
|
||||||
|
+
|
||||||
|
export initdir dracutbasedir dracutmodules drivers \
|
||||||
|
fw_dir drivers_dir debug no_kernel kernel_only \
|
||||||
|
add_drivers mdadmconf lvmconf filesystems \
|
||||||
|
use_fstab libdir usrlibdir fscks nofscks \
|
||||||
|
stdloglvl sysloglvl fileloglvl kmsgloglvl logfile \
|
||||||
|
- debug
|
||||||
|
+ debug host_fs_types host_devs
|
||||||
|
|
||||||
|
# Create some directory structure first
|
||||||
|
[[ $prefix ]] && mkdir -m 0755 -p "${initdir}${prefix}"
|
||||||
|
diff --git a/dracut-functions b/dracut-functions
|
||||||
|
index c54cd7c..258d376 100755
|
||||||
|
--- a/dracut-functions
|
||||||
|
+++ b/dracut-functions
|
||||||
|
@@ -165,8 +165,11 @@ get_fs_type() (
|
||||||
|
echo "nfs"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
- get_fs_env $1 || return
|
||||||
|
- echo $ID_FS_TYPE
|
||||||
|
+ if get_fs_env $1; then
|
||||||
|
+ echo $ID_FS_TYPE
|
||||||
|
+ return
|
||||||
|
+ fi
|
||||||
|
+ find_dev_fstype $1
|
||||||
|
)
|
||||||
|
|
||||||
|
get_fs_uuid() (
|
||||||
|
@@ -174,11 +177,11 @@ get_fs_uuid() (
|
||||||
|
echo $ID_FS_UUID
|
||||||
|
)
|
||||||
|
|
||||||
|
-# finds the major:minor of the block device backing the root filesystem.
|
||||||
|
find_block_device() {
|
||||||
|
local _x _mpt _majmin _dev _fs _maj _min
|
||||||
|
if [[ $use_fstab != yes ]]; then
|
||||||
|
while read _x _x _majmin _x _mpt _x _x _fs _dev _x; do
|
||||||
|
+ [[ $_mpt = $1 ]] || continue
|
||||||
|
[[ $_fs = nfs ]] && { echo $_dev; return 0;}
|
||||||
|
[[ $_fs = nfs3 ]] && { echo $_dev; return 0;}
|
||||||
|
[[ $_fs = nfs4 ]] && { echo $_dev; return 0;}
|
||||||
|
@@ -189,7 +192,7 @@ find_block_device() {
|
||||||
|
echo $_maj:$_min
|
||||||
|
} && return 0
|
||||||
|
}
|
||||||
|
- if [[ $_mpt = $1 ]] && [[ ${_majmin#0:} = $_majmin ]]; then
|
||||||
|
+ if [[ ${_majmin#0:} = $_majmin ]]; then
|
||||||
|
echo $_majmin
|
||||||
|
return 0 # we have a winner!
|
||||||
|
fi
|
||||||
|
@@ -215,6 +218,25 @@ find_block_device() {
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
+find_dev_fstype() {
|
||||||
|
+ local _x _mpt _majmin _dev _fs _maj _min
|
||||||
|
+ while read _x _x _majmin _x _mpt _x _x _fs _dev _x; do
|
||||||
|
+ [[ $_dev = $1 ]] || continue
|
||||||
|
+ echo -n $_fs;
|
||||||
|
+ return 0;
|
||||||
|
+ done < /proc/self/mountinfo
|
||||||
|
+
|
||||||
|
+ # fall back to /etc/fstab
|
||||||
|
+ while read _dev _mpt _fs _x; do
|
||||||
|
+ [[ $_dev = $1 ]] || continue
|
||||||
|
+ echo -n $_fs;
|
||||||
|
+ return 0;
|
||||||
|
+ done < /etc/fstab
|
||||||
|
+
|
||||||
|
+ return 1
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+# finds the major:minor of the block device backing the root filesystem.
|
||||||
|
find_root_block_device() { find_block_device /; }
|
||||||
|
|
||||||
|
# Walk all the slave relationships for a given block device.
|
@ -1,24 +0,0 @@
|
|||||||
From 566dab2ac1323df9d21b4d682312f787b10a4bdc Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Wed, 17 Aug 2011 08:24:30 +0200
|
|
||||||
Subject: [PATCH] 90dmsquash-live/dmsquash-live-root: include fs_lib.sh for
|
|
||||||
det_fs()
|
|
||||||
|
|
||||||
https://bugzilla.redhat.com/show_bug.cgi?id=730579
|
|
||||||
---
|
|
||||||
modules.d/90dmsquash-live/dmsquash-live-root | 2 ++
|
|
||||||
1 files changed, 2 insertions(+), 0 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/90dmsquash-live/dmsquash-live-root b/modules.d/90dmsquash-live/dmsquash-live-root
|
|
||||||
index 265de19..90e633c 100755
|
|
||||||
--- a/modules.d/90dmsquash-live/dmsquash-live-root
|
|
||||||
+++ b/modules.d/90dmsquash-live/dmsquash-live-root
|
|
||||||
@@ -3,6 +3,8 @@
|
|
||||||
# ex: ts=8 sw=4 sts=4 et filetype=sh
|
|
||||||
|
|
||||||
type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
|
|
||||||
+type det_fs >/dev/null 2>&1 || . /lib/fs-lib.sh
|
|
||||||
+
|
|
||||||
[ -f /tmp/root.info ] && . /tmp/root.info
|
|
||||||
|
|
||||||
PATH=/usr/sbin:/usr/bin:/sbin:/bin
|
|
480
0002-module-setup.sh-use-host_fs_types-host_devs.patch
Normal file
480
0002-module-setup.sh-use-host_fs_types-host_devs.patch
Normal file
@ -0,0 +1,480 @@
|
|||||||
|
From 480d772f22a2f690928c59c7c0ebfa7dc00332ea Mon Sep 17 00:00:00 2001
|
||||||
|
From: Harald Hoyer <harald@redhat.com>
|
||||||
|
Date: Thu, 8 Dec 2011 10:43:29 +0100
|
||||||
|
Subject: [PATCH] */module-setup.sh: use host_fs_types host_devs
|
||||||
|
|
||||||
|
For the $hostonly case, use $host_fs_types and $host_devs to determine,
|
||||||
|
if a module has to be included in the initramfs.
|
||||||
|
---
|
||||||
|
dracut | 16 +++++---
|
||||||
|
dracut-functions | 31 +++++++++++++---
|
||||||
|
modules.d/90btrfs/module-setup.sh | 16 ++++----
|
||||||
|
modules.d/90crypt/module-setup.sh | 26 ++++++++-----
|
||||||
|
modules.d/90dmraid/module-setup.sh | 40 +++++++++++++++------
|
||||||
|
modules.d/90kernel-modules/module-setup.sh | 6 +++-
|
||||||
|
modules.d/90lvm/module-setup.sh | 25 ++++++++-----
|
||||||
|
modules.d/90mdraid/module-setup.sh | 40 +++++++++++++++-----
|
||||||
|
modules.d/95fstab-sys/module-setup.sh | 2 +-
|
||||||
|
modules.d/95nfs/module-setup.sh | 14 +++++--
|
||||||
|
modules.d/99base/module-setup.sh | 1 +
|
||||||
|
modules.d/99fs-lib/module-setup.sh | 55 ++++++++++++++--------------
|
||||||
|
12 files changed, 179 insertions(+), 93 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/dracut b/dracut
|
||||||
|
index 3d08680..46694f8 100755
|
||||||
|
--- a/dracut
|
||||||
|
+++ b/dracut
|
||||||
|
@@ -508,15 +508,19 @@ trap 'exit 1;' SIGINT
|
||||||
|
chmod 755 "$initdir"
|
||||||
|
|
||||||
|
if [[ $hostonly ]]; then
|
||||||
|
+ # in hostonly mode, determine all devices, which have to be accessed
|
||||||
|
+ # and examine them for filesystem types
|
||||||
|
+
|
||||||
|
+ unset host_fs_types
|
||||||
|
|
||||||
|
_get_fs_type() (
|
||||||
|
[[ $1 ]] || return
|
||||||
|
if [[ -b /dev/block/$1 ]] && get_fs_env /dev/block/$1; then
|
||||||
|
- echo -n "$ID_FS_TYPE "
|
||||||
|
+ echo "$1|$ID_FS_TYPE"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
- if find_dev_fstype $1; then
|
||||||
|
- echo -n " "
|
||||||
|
+ if fstype=$(find_dev_fstype $1); then
|
||||||
|
+ echo "$1|$fstype"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
return 1
|
||||||
|
@@ -532,7 +536,6 @@ if [[ $hostonly ]]; then
|
||||||
|
"/usr/lib64" \
|
||||||
|
"/boot"
|
||||||
|
|
||||||
|
- host_fs_types=""
|
||||||
|
for mp in "${host_mp[@]}"; do
|
||||||
|
mountpoint "$mp" >/dev/null 2>&1 || continue
|
||||||
|
push host_devs $(find_block_device "$mp")
|
||||||
|
@@ -541,11 +544,12 @@ if [[ $hostonly ]]; then
|
||||||
|
unset fs_type
|
||||||
|
for fstype in $(_get_fs_type $dev) \
|
||||||
|
$(check_block_and_slaves _get_fs_type $dev); do
|
||||||
|
- strstr " $host_fs_types " "$fstype" || host_fs_types+="$fstype "
|
||||||
|
+ if ! strstr " ${host_fs_types[*]} " " $fstype ";then
|
||||||
|
+ push host_fs_types "$fstype"
|
||||||
|
+ fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
-echo "host_fs_types=$host_fs_types"
|
||||||
|
|
||||||
|
export initdir dracutbasedir dracutmodules drivers \
|
||||||
|
fw_dir drivers_dir debug no_kernel kernel_only \
|
||||||
|
diff --git a/dracut-functions b/dracut-functions
|
||||||
|
index 258d376..d95df14 100755
|
||||||
|
--- a/dracut-functions
|
||||||
|
+++ b/dracut-functions
|
||||||
|
@@ -177,6 +177,14 @@ get_fs_uuid() (
|
||||||
|
echo $ID_FS_UUID
|
||||||
|
)
|
||||||
|
|
||||||
|
+
|
||||||
|
+get_maj_min() {
|
||||||
|
+ local _dev
|
||||||
|
+ _dev=$(stat -c '$((0x%T)):$((0x%t))' "$1" 2>/dev/null)
|
||||||
|
+ _dev=$(eval "echo $_dev")
|
||||||
|
+ echo $_dev
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
find_block_device() {
|
||||||
|
local _x _mpt _majmin _dev _fs _maj _min
|
||||||
|
if [[ $use_fstab != yes ]]; then
|
||||||
|
@@ -186,11 +194,8 @@ find_block_device() {
|
||||||
|
[[ $_fs = nfs3 ]] && { echo $_dev; return 0;}
|
||||||
|
[[ $_fs = nfs4 ]] && { echo $_dev; return 0;}
|
||||||
|
[[ $_fs = btrfs ]] && {
|
||||||
|
- ls -nLl "$_dev" | {
|
||||||
|
- read _x _x _x _x _maj _min _x
|
||||||
|
- _maj=${_maj//,/}
|
||||||
|
- echo $_maj:$_min
|
||||||
|
- } && return 0
|
||||||
|
+ get_maj_min $_dev
|
||||||
|
+ return 0;
|
||||||
|
}
|
||||||
|
if [[ ${_majmin#0:} = $_majmin ]]; then
|
||||||
|
echo $_majmin
|
||||||
|
@@ -239,6 +244,22 @@ find_dev_fstype() {
|
||||||
|
# finds the major:minor of the block device backing the root filesystem.
|
||||||
|
find_root_block_device() { find_block_device /; }
|
||||||
|
|
||||||
|
+for_each_host_dev_fs()
|
||||||
|
+{
|
||||||
|
+ local _func="$1"
|
||||||
|
+ for f in ${host_fs_types[@]}; do
|
||||||
|
+ OLDIFS="$IFS"
|
||||||
|
+ IFS="|"
|
||||||
|
+ set -- $f
|
||||||
|
+ IFS="$OLDIFS"
|
||||||
|
+ dev=$1
|
||||||
|
+ [[ -b /dev/block/$dev ]] && dev="/dev/block/$dev"
|
||||||
|
+ [[ -b $dev ]] || continue
|
||||||
|
+ fs="$2"
|
||||||
|
+ $_func $dev $fs
|
||||||
|
+ done
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
# Walk all the slave relationships for a given block device.
|
||||||
|
# Stop when our helper function returns success
|
||||||
|
# $1 = function to call on every found block device
|
||||||
|
diff --git a/modules.d/90btrfs/module-setup.sh b/modules.d/90btrfs/module-setup.sh
|
||||||
|
index 7b0b424..f89713f 100755
|
||||||
|
--- a/modules.d/90btrfs/module-setup.sh
|
||||||
|
+++ b/modules.d/90btrfs/module-setup.sh
|
||||||
|
@@ -11,14 +11,14 @@ check() {
|
||||||
|
. $dracutfunctions
|
||||||
|
[[ $debug ]] && set -x
|
||||||
|
|
||||||
|
- is_btrfs() { get_fs_type /dev/block/$1 | grep -q btrfs; }
|
||||||
|
-
|
||||||
|
- if [[ $hostonly ]]; then
|
||||||
|
- _rootdev=$(find_root_block_device)
|
||||||
|
- if [[ $_rootdev ]]; then
|
||||||
|
- is_btrfs "$_rootdev" || return 1
|
||||||
|
- fi
|
||||||
|
- fi
|
||||||
|
+ [[ $hostonly ]] && {
|
||||||
|
+ local _found
|
||||||
|
+ for fs in $host_fs_types; do
|
||||||
|
+ [[ "$fs" = "|btrfs" ]] && _found="1"
|
||||||
|
+ done
|
||||||
|
+ [[ $_found ]] || return 1
|
||||||
|
+ unset _found
|
||||||
|
+ }
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
diff --git a/modules.d/90crypt/module-setup.sh b/modules.d/90crypt/module-setup.sh
|
||||||
|
index 2a8268f..42c6b48 100755
|
||||||
|
--- a/modules.d/90crypt/module-setup.sh
|
||||||
|
+++ b/modules.d/90crypt/module-setup.sh
|
||||||
|
@@ -9,18 +9,24 @@ check() {
|
||||||
|
|
||||||
|
. $dracutfunctions
|
||||||
|
|
||||||
|
- is_crypt() { [[ $(get_fs_type /dev/block/$1) = crypto_LUKS ]]; }
|
||||||
|
+ check_crypt() {
|
||||||
|
+ local dev=$1 fs=$2
|
||||||
|
+ [[ $fs = "crypto_LUKS" ]] || continue
|
||||||
|
+ ID_FS_UUID=$(udevadm info --query=property --name=$dev \
|
||||||
|
+ | while read line; do
|
||||||
|
+ [[ ${line#ID_FS_UUID} = $line ]] && continue
|
||||||
|
+ eval "$line"
|
||||||
|
+ echo $ID_FS_UUID
|
||||||
|
+ break
|
||||||
|
+ done)
|
||||||
|
+ [[ ${ID_FS_UUID} ]] || continue
|
||||||
|
+ echo " rd.luks.uuid=${ID_FS_UUID} " >> "${initdir}/etc/cmdline.d/90crypt.conf"
|
||||||
|
+ }
|
||||||
|
|
||||||
|
[[ $hostonly ]] && {
|
||||||
|
- _rootdev=$(find_root_block_device)
|
||||||
|
- if [[ $_rootdev ]]; then
|
||||||
|
- # root lives on a block device, so we can be more precise about
|
||||||
|
- # hostonly checking
|
||||||
|
- check_block_and_slaves is_crypt "$_rootdev" || return 1
|
||||||
|
- else
|
||||||
|
- # root is not on a block device, use the shotgun approach
|
||||||
|
- blkid | grep -q crypto\?_LUKS || return 1
|
||||||
|
- fi
|
||||||
|
+ [[ -d "${initdir}/etc/cmdline.d" ]] || mkdir -p "${initdir}/etc/cmdline.d"
|
||||||
|
+ for_each_host_dev_fs check_crypt
|
||||||
|
+ [ -f "${initdir}/etc/cmdline.d/90crypt.conf" ] || return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0
|
||||||
|
diff --git a/modules.d/90dmraid/module-setup.sh b/modules.d/90dmraid/module-setup.sh
|
||||||
|
index 87a4d1e..9de6c63 100755
|
||||||
|
--- a/modules.d/90dmraid/module-setup.sh
|
||||||
|
+++ b/modules.d/90dmraid/module-setup.sh
|
||||||
|
@@ -11,19 +11,37 @@ check() {
|
||||||
|
. $dracutfunctions
|
||||||
|
[[ $debug ]] && set -x
|
||||||
|
|
||||||
|
- is_dmraid() { get_fs_type /dev/block/$1 |grep -v linux_raid_member | \
|
||||||
|
- grep -q _raid_member; }
|
||||||
|
+ check_dmraid() {
|
||||||
|
+ local dev=$1 fs=$2 holder DEVPATH DM_NAME
|
||||||
|
+ [[ "$fs" = "linux_raid_member" ]] && continue
|
||||||
|
+ [[ "$fs" = "${fs%%_raid_member}" ]] && continue
|
||||||
|
+
|
||||||
|
+ DEVPATH=$(udevadm info --query=property --name=$dev \
|
||||||
|
+ | while read line; do
|
||||||
|
+ [[ ${line#DEVPATH} = $line ]] && continue
|
||||||
|
+ eval "$line"
|
||||||
|
+ echo $DEVPATH
|
||||||
|
+ break
|
||||||
|
+ done)
|
||||||
|
+ for holder in /sys/$DEVPATH/holders/*; do
|
||||||
|
+ [[ -e $holder ]] || continue
|
||||||
|
+ DM_NAME=$(udevadm info --query=property --path=$holder \
|
||||||
|
+ | while read line; do
|
||||||
|
+ [[ ${line#DM_NAME} = $line ]] && continue
|
||||||
|
+ eval "$line"
|
||||||
|
+ echo $DM_NAME
|
||||||
|
+ break
|
||||||
|
+ done)
|
||||||
|
+ done
|
||||||
|
+
|
||||||
|
+ [[ ${DM_NAME} ]] || continue
|
||||||
|
+ echo " rd.dm.uuid=${DM_NAME} " >> "${initdir}/etc/cmdline.d/90dmraid.conf"
|
||||||
|
+ }
|
||||||
|
|
||||||
|
[[ $hostonly ]] && {
|
||||||
|
- _rootdev=$(find_root_block_device)
|
||||||
|
- if [[ $_rootdev ]]; then
|
||||||
|
- # root lives on a block device, so we can be more precise about
|
||||||
|
- # hostonly checking
|
||||||
|
- check_block_and_slaves is_dmraid "$_rootdev" || return 1
|
||||||
|
- else
|
||||||
|
- # root is not on a block device, use the shotgun approach
|
||||||
|
- dmraid -r | grep -q ok || return 1
|
||||||
|
- fi
|
||||||
|
+ [[ -d "${initdir}/etc/cmdline.d" ]] || mkdir -p "${initdir}/etc/cmdline.d"
|
||||||
|
+ for_each_host_dev_fs check_dmraid
|
||||||
|
+ [ -f "${initdir}/etc/cmdline.d/90dmraid.conf" ] || return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0
|
||||||
|
diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh
|
||||||
|
index d7aadd8..8d2ab91 100755
|
||||||
|
--- a/modules.d/90kernel-modules/module-setup.sh
|
||||||
|
+++ b/modules.d/90kernel-modules/module-setup.sh
|
||||||
|
@@ -50,7 +50,11 @@ installkernel() {
|
||||||
|
rm -fr ${initdir}/lib/modules/*/kernel/fs/ocfs2
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
- hostonly='' instmods $(get_fs_type "/dev/block/$(find_root_block_device)")
|
||||||
|
+ inst_fs() {
|
||||||
|
+ [[ $2 ]] || return 1
|
||||||
|
+ hostonly='' instmods $2
|
||||||
|
+ }
|
||||||
|
+ for_each_host_dev_fs inst_fs
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
hostonly='' instmods $drivers
|
||||||
|
diff --git a/modules.d/90lvm/module-setup.sh b/modules.d/90lvm/module-setup.sh
|
||||||
|
index 40dc350..87751cb 100755
|
||||||
|
--- a/modules.d/90lvm/module-setup.sh
|
||||||
|
+++ b/modules.d/90lvm/module-setup.sh
|
||||||
|
@@ -10,18 +10,23 @@ check() {
|
||||||
|
. $dracutfunctions
|
||||||
|
[[ $debug ]] && set -x
|
||||||
|
|
||||||
|
- is_lvm() { [[ $(get_fs_type /dev/block/$1) = LVM2_member ]]; }
|
||||||
|
+ check_lvm() {
|
||||||
|
+ local dev=$1
|
||||||
|
+ DM_LV_NAME=$(udevadm info --query=property --name=$dev \
|
||||||
|
+ | while read line; do
|
||||||
|
+ [[ ${line#DM_LV_NAME} = $line ]] && continue
|
||||||
|
+ eval "$line"
|
||||||
|
+ echo $DM_LV_NAME
|
||||||
|
+ break
|
||||||
|
+ done)
|
||||||
|
+ [[ ${DM_LV_NAME} ]] || continue
|
||||||
|
+ echo " rd.lvm.lv=${DM_LV_NAME} " >> "${initdir}/etc/cmdline.d/90lvm.conf"
|
||||||
|
+ }
|
||||||
|
|
||||||
|
[[ $hostonly ]] && {
|
||||||
|
- _rootdev=$(find_root_block_device)
|
||||||
|
- if [[ $_rootdev ]]; then
|
||||||
|
- # root lives on a block device, so we can be more precise about
|
||||||
|
- # hostonly checking
|
||||||
|
- check_block_and_slaves is_lvm "$_rootdev" || return 1
|
||||||
|
- else
|
||||||
|
- # root is not on a block device, use the shotgun approach
|
||||||
|
- blkid | grep -q LVM2_member || return 1
|
||||||
|
- fi
|
||||||
|
+ [[ -d "${initdir}/etc/cmdline.d" ]] || mkdir -p "${initdir}/etc/cmdline.d"
|
||||||
|
+ for_each_host_dev_fs check_lvm
|
||||||
|
+ [ -f "${initdir}/etc/cmdline.d/90lvm.conf" ] || return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0
|
||||||
|
diff --git a/modules.d/90mdraid/module-setup.sh b/modules.d/90mdraid/module-setup.sh
|
||||||
|
index 029d667..05e0127 100755
|
||||||
|
--- a/modules.d/90mdraid/module-setup.sh
|
||||||
|
+++ b/modules.d/90mdraid/module-setup.sh
|
||||||
|
@@ -10,18 +10,38 @@ check() {
|
||||||
|
. $dracutfunctions
|
||||||
|
[[ $debug ]] && set -x
|
||||||
|
|
||||||
|
- is_mdraid() { [[ -d "/sys/dev/block/$1/md" ]]; }
|
||||||
|
+ check_mdraid() {
|
||||||
|
+ local dev=$1 fs=$2 holder DEVPATH MD_UUID
|
||||||
|
+ [[ "$fs" = "linux_raid_member" ]] && continue
|
||||||
|
+ [[ "$fs" = "${fs%%_raid_member}" ]] && continue
|
||||||
|
+
|
||||||
|
+ DEVPATH=$(udevadm info --query=property --name=$dev \
|
||||||
|
+ | while read line; do
|
||||||
|
+ [[ ${line#DEVPATH} = $line ]] && continue
|
||||||
|
+ eval "$line"
|
||||||
|
+ echo $DEVPATH
|
||||||
|
+ break
|
||||||
|
+ done)
|
||||||
|
+
|
||||||
|
+ for holder in /sys/$DEVPATH/holders/*; do
|
||||||
|
+ [[ -e $holder ]] || continue
|
||||||
|
+ MD_UUID=$(udevadm info --query=property --path=$holder \
|
||||||
|
+ | while read line; do
|
||||||
|
+ [[ ${line#MD_UUID} = $line ]] && continue
|
||||||
|
+ eval "$line"
|
||||||
|
+ echo $MD_UUID
|
||||||
|
+ break
|
||||||
|
+ done)
|
||||||
|
+ done
|
||||||
|
+
|
||||||
|
+ [[ ${MD_UUID} ]] || continue
|
||||||
|
+ echo " rd.md.uuid=${MD_UUID} " >> "${initdir}/etc/cmdline.d/90mdraid.conf"
|
||||||
|
+ }
|
||||||
|
|
||||||
|
[[ $hostonly ]] && {
|
||||||
|
- _rootdev=$(find_root_block_device)
|
||||||
|
- if [[ $_rootdev ]]; then
|
||||||
|
- # root lives on a block device, so we can be more precise about
|
||||||
|
- # hostonly checking
|
||||||
|
- check_block_and_slaves is_mdraid "$_rootdev" || return 1
|
||||||
|
- else
|
||||||
|
- # root is not on a block device, use the shotgun approach
|
||||||
|
- blkid | egrep -q '(linux|isw|ddf)_raid' || return 1
|
||||||
|
- fi
|
||||||
|
+ [[ -d "${initdir}/etc/cmdline.d" ]] || mkdir -p "${initdir}/etc/cmdline.d"
|
||||||
|
+ for_each_host_dev_fs check_mdraid
|
||||||
|
+ [[ -f "${initdir}/etc/cmdline.d/90mdraid.conf" ]] || return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0
|
||||||
|
diff --git a/modules.d/95fstab-sys/module-setup.sh b/modules.d/95fstab-sys/module-setup.sh
|
||||||
|
index c22b047..ea9db83 100755
|
||||||
|
--- a/modules.d/95fstab-sys/module-setup.sh
|
||||||
|
+++ b/modules.d/95fstab-sys/module-setup.sh
|
||||||
|
@@ -11,6 +11,6 @@ depends() {
|
||||||
|
}
|
||||||
|
|
||||||
|
install() {
|
||||||
|
- dracut_install /etc/fstab.sys
|
||||||
|
+ inst /etc/fstab.sys /etc/fstab
|
||||||
|
inst_hook pre-pivot 00 "$moddir/mount-sys.sh"
|
||||||
|
}
|
||||||
|
diff --git a/modules.d/95nfs/module-setup.sh b/modules.d/95nfs/module-setup.sh
|
||||||
|
index c5f97c9..bb3b793 100755
|
||||||
|
--- a/modules.d/95nfs/module-setup.sh
|
||||||
|
+++ b/modules.d/95nfs/module-setup.sh
|
||||||
|
@@ -3,13 +3,19 @@
|
||||||
|
# ex: ts=8 sw=4 sts=4 et filetype=sh
|
||||||
|
|
||||||
|
check() {
|
||||||
|
- # If hostonly was requested, fail the check if we are not actually
|
||||||
|
- # booting from root.
|
||||||
|
- [ $hostonly ] && ! egrep -q '/ nfs[34 ]' /proc/mounts && return 1
|
||||||
|
-
|
||||||
|
# If our prerequisites are not met, fail anyways.
|
||||||
|
type -P rpcbind >/dev/null || type -P portmap >/dev/null || return 1
|
||||||
|
type -P rpc.statd mount.nfs mount.nfs4 umount >/dev/null || return 1
|
||||||
|
+
|
||||||
|
+ [[ $hostonly ]] && {
|
||||||
|
+ for fs in ${host_fs_types[@]}; do
|
||||||
|
+ strstr "$fs" "|nfs" && return 0
|
||||||
|
+ strstr "$fs" "|nfs3" && return 0
|
||||||
|
+ strstr "$fs" "|nfs4" && return 0
|
||||||
|
+ done
|
||||||
|
+ return 255
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/modules.d/99base/module-setup.sh b/modules.d/99base/module-setup.sh
|
||||||
|
index f6dc920..5297a9d 100755
|
||||||
|
--- a/modules.d/99base/module-setup.sh
|
||||||
|
+++ b/modules.d/99base/module-setup.sh
|
||||||
|
@@ -38,6 +38,7 @@ install() {
|
||||||
|
dracut_install switch_root || dfatal "Failed to install switch_root"
|
||||||
|
|
||||||
|
inst "$moddir/dracut-lib.sh" "/lib/dracut-lib.sh"
|
||||||
|
+ inst "$moddir/mount-hook.sh" "/usr/bin/mount-hook"
|
||||||
|
inst_hook cmdline 10 "$moddir/parse-root-opts.sh"
|
||||||
|
mkdir -p "${initdir}/var"
|
||||||
|
[ -x /lib/systemd/systemd-timestamp ] && inst /lib/systemd/systemd-timestamp
|
||||||
|
diff --git a/modules.d/99fs-lib/module-setup.sh b/modules.d/99fs-lib/module-setup.sh
|
||||||
|
index 04b63f1..9c900cc 100755
|
||||||
|
--- a/modules.d/99fs-lib/module-setup.sh
|
||||||
|
+++ b/modules.d/99fs-lib/module-setup.sh
|
||||||
|
@@ -10,6 +10,32 @@ depends() {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
+
|
||||||
|
+echo_fs_helper() {
|
||||||
|
+ local dev=$1 fs=$2
|
||||||
|
+ case "$fs" in
|
||||||
|
+ xfs)
|
||||||
|
+ echo -n " xfs_db xfs_repair xfs_check "
|
||||||
|
+ ;;
|
||||||
|
+ ext?)
|
||||||
|
+ echo -n " e2fsck "
|
||||||
|
+ ;;
|
||||||
|
+ jfs)
|
||||||
|
+ echo -n " jfs_fsck "
|
||||||
|
+ ;;
|
||||||
|
+ reiserfs)
|
||||||
|
+ echo -n " reiserfsck "
|
||||||
|
+ ;;
|
||||||
|
+ btrfs)
|
||||||
|
+ echo -n " btrfsck "
|
||||||
|
+ ;;
|
||||||
|
+ *)
|
||||||
|
+ [[ -x fsck.$fs ]] && echo -n " fsck.$fs "
|
||||||
|
+ ;;
|
||||||
|
+ esac
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+
|
||||||
|
install() {
|
||||||
|
local _helpers
|
||||||
|
|
||||||
|
@@ -25,33 +51,8 @@ install() {
|
||||||
|
e2fsck jfs_fsck reiserfsck btrfsck
|
||||||
|
"
|
||||||
|
if [[ $hostonly ]]; then
|
||||||
|
- print_fs_type() { get_fs_type /dev/block/$1; }
|
||||||
|
- _rootdev=$(find_root_block_device)
|
||||||
|
- if [[ $_rootdev ]]; then
|
||||||
|
- _helpers="umount mount "
|
||||||
|
- for fs in $(check_block_and_slaves print_fs_type "$_rootdev"); do
|
||||||
|
- case "$fs" in
|
||||||
|
- xfs)
|
||||||
|
- _helpers+=" xfs_db xfs_repair xfs_check "
|
||||||
|
- ;;
|
||||||
|
- ext?)
|
||||||
|
- _helpers+=" e2fsck "
|
||||||
|
- ;;
|
||||||
|
- jfs)
|
||||||
|
- _helpers+=" jfs_fsck "
|
||||||
|
- ;;
|
||||||
|
- reiserfs)
|
||||||
|
- _helpers+=" reiserfsck "
|
||||||
|
- ;;
|
||||||
|
- btrfs)
|
||||||
|
- _helpers+=" btrfsck "
|
||||||
|
- ;;
|
||||||
|
- *)
|
||||||
|
- [[ -x fsck.$fs ]] && _helpers+= " fsck.$fs "
|
||||||
|
- ;;
|
||||||
|
- esac
|
||||||
|
- done
|
||||||
|
- fi
|
||||||
|
+ _helpers="umount mount "
|
||||||
|
+ _helpers+=$(for_each_host_dev_fs echo_fs_helper)
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
_helpers="$fscks"
|
@ -0,0 +1,29 @@
|
|||||||
|
From 43f218522128b7864346bb11f7aad234410db745 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Harald Hoyer <harald@redhat.com>
|
||||||
|
Date: Thu, 8 Dec 2011 15:04:04 +0100
|
||||||
|
Subject: [PATCH] 95iscsi/iscsiroot: unset used variables before starting
|
||||||
|
|
||||||
|
If iscsiroot is called multiple times, then some variables can hold the
|
||||||
|
values of a previous call, so unset all variables before using them.
|
||||||
|
|
||||||
|
https://bugzilla.redhat.com/show_bug.cgi?id=752066
|
||||||
|
---
|
||||||
|
modules.d/95iscsi/iscsiroot | 5 +++++
|
||||||
|
1 files changed, 5 insertions(+), 0 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/modules.d/95iscsi/iscsiroot b/modules.d/95iscsi/iscsiroot
|
||||||
|
index bcdc046..e7bac74 100755
|
||||||
|
--- a/modules.d/95iscsi/iscsiroot
|
||||||
|
+++ b/modules.d/95iscsi/iscsiroot
|
||||||
|
@@ -51,6 +51,11 @@ if getargbool 0 rd.iscsi.firmware -y iscsi_firmware ; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
+unset iscsi_initiator iscsi_target_name iscsi_target_ip iscsi_target_port
|
||||||
|
+unset iscsi_target_group iscsi_protocol iscsirw iscsi_lun
|
||||||
|
+unset iscsi_username iscsi_password
|
||||||
|
+unset iscsi_in_username iscsi_in_password
|
||||||
|
+
|
||||||
|
# override conf settings by command line options
|
||||||
|
arg=$(getargs rd.iscsi.initiator iscsi_initiator=)
|
||||||
|
[ -n "$arg" ] && iscsi_initiator=$arg
|
@ -1,24 +0,0 @@
|
|||||||
From fb216d1a7cc981a50e4cae9179a88406663dda4e Mon Sep 17 00:00:00 2001
|
|
||||||
From: Will Woods <wwoods@redhat.com>
|
|
||||||
Date: Mon, 15 Aug 2011 11:10:59 -0400
|
|
||||||
Subject: [PATCH] fix live crash with livenet installed
|
|
||||||
|
|
||||||
parse-livenet.sh shouldn't mess with $root unless it finds a valid URL.
|
|
||||||
---
|
|
||||||
modules.d/90livenet/parse-livenet.sh | 2 +-
|
|
||||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/90livenet/parse-livenet.sh b/modules.d/90livenet/parse-livenet.sh
|
|
||||||
index 78fc906..323fd4a 100755
|
|
||||||
--- a/modules.d/90livenet/parse-livenet.sh
|
|
||||||
+++ b/modules.d/90livenet/parse-livenet.sh
|
|
||||||
@@ -12,8 +12,8 @@ liveurl="${liveurl#live:}"
|
|
||||||
case "$liveurl" in
|
|
||||||
http://*|https://*|ftp://*)
|
|
||||||
netroot="livenet:$liveurl"
|
|
||||||
+ root="livenet" # quiet complaints from init
|
|
||||||
rootok=1 ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
-root="livenet" # quiet complaints from init
|
|
||||||
echo '[ -e /dev/root ]' > $hookdir/initqueue/finished/livenet.sh
|
|
@ -0,0 +1,36 @@
|
|||||||
|
From 4d63882615543b19b779607563ab2a098d54b403 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Harald Hoyer <harald@redhat.com>
|
||||||
|
Date: Fri, 9 Dec 2011 10:12:05 +0100
|
||||||
|
Subject: [PATCH] 99base/dracut-lib.sh: killproc, prefix local variables
|
||||||
|
|
||||||
|
---
|
||||||
|
modules.d/99base/dracut-lib.sh | 16 ++++++++--------
|
||||||
|
1 files changed, 8 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
|
||||||
|
index e86d209..c881869 100755
|
||||||
|
--- a/modules.d/99base/dracut-lib.sh
|
||||||
|
+++ b/modules.d/99base/dracut-lib.sh
|
||||||
|
@@ -627,14 +627,14 @@ wait_for_dev()
|
||||||
|
}
|
||||||
|
|
||||||
|
killproc() {
|
||||||
|
- local exe="$(command -v $1)"
|
||||||
|
- local sig=$2
|
||||||
|
- local i
|
||||||
|
- [ -x "$exe" ] || return 1
|
||||||
|
- for i in /proc/[0-9]*; do
|
||||||
|
- [ "$i" = "/proc/1" ] && continue
|
||||||
|
- if [ -e "$i"/exe ] && [ "$i/exe" -ef "$exe" ] ; then
|
||||||
|
- kill $sig ${i##*/}
|
||||||
|
+ local _exe="$(command -v $1)"
|
||||||
|
+ local _sig=$2
|
||||||
|
+ local _i
|
||||||
|
+ [ -x "$_exe" ] || return 1
|
||||||
|
+ for _i in /proc/[0-9]*; do
|
||||||
|
+ [ "$_i" = "/proc/1" ] && continue
|
||||||
|
+ if [ -e "$_i"/_exe ] && [ "$_i/_exe" -ef "$_exe" ] ; then
|
||||||
|
+ kill $_sig ${_i##*/}
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
@ -1,75 +0,0 @@
|
|||||||
From e7b8fe03e8b76ec4aa4797759cd849fcf792b33c Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Wed, 17 Aug 2011 10:08:23 +0200
|
|
||||||
Subject: [PATCH] profile.py: parse the output of "dracut --profile" for
|
|
||||||
profiling
|
|
||||||
|
|
||||||
---
|
|
||||||
profile.py | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
||||||
1 files changed, 58 insertions(+), 0 deletions(-)
|
|
||||||
create mode 100644 profile.py
|
|
||||||
|
|
||||||
diff --git a/profile.py b/profile.py
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..e1d0cab
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/profile.py
|
|
||||||
@@ -0,0 +1,58 @@
|
|
||||||
+#
|
|
||||||
+# parse the output of "dracut --profile" and produce profiling information
|
|
||||||
+#
|
|
||||||
+# Copyright 2011 Harald Hoyer <harald@redhat.com>
|
|
||||||
+# Copyright 2011 Red Hat, Inc. 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/>.
|
|
||||||
+#
|
|
||||||
+
|
|
||||||
+import sys
|
|
||||||
+import operator
|
|
||||||
+import re
|
|
||||||
+loglines = sys.stdin
|
|
||||||
+
|
|
||||||
+logpats = r'[+]+[ \t]+([^ \t]+)[ \t]+([^ \t:]+):[ ]+.*'
|
|
||||||
+
|
|
||||||
+logpat = re.compile(logpats)
|
|
||||||
+
|
|
||||||
+groups = (logpat.match(line) for line in loglines)
|
|
||||||
+tuples = (g.groups() for g in groups if g)
|
|
||||||
+
|
|
||||||
+def gen_times(t):
|
|
||||||
+ oldx=None
|
|
||||||
+ for x in t:
|
|
||||||
+ fx=float(x[0])
|
|
||||||
+ if oldx:
|
|
||||||
+ #print fx - float(oldx[0]), x[0], x[1], oldx[0], oldx[1]
|
|
||||||
+ yield (fx - float(oldx[0]), oldx[1])
|
|
||||||
+
|
|
||||||
+ oldx = x
|
|
||||||
+
|
|
||||||
+colnames = ('time','line')
|
|
||||||
+
|
|
||||||
+log = (dict(zip(colnames,t)) for t in gen_times(tuples))
|
|
||||||
+
|
|
||||||
+if __name__ == '__main__':
|
|
||||||
+ e={}
|
|
||||||
+ for x in log:
|
|
||||||
+ if not x['line'] in e:
|
|
||||||
+ e[x['line']] = x['time']
|
|
||||||
+ else:
|
|
||||||
+ e[x['line']] += x['time']
|
|
||||||
+
|
|
||||||
+ sorted_x = sorted(e.iteritems(), key=operator.itemgetter(1), reverse=True)
|
|
||||||
+ for x in sorted_x:
|
|
||||||
+ print x[0], x[1]
|
|
||||||
+
|
|
@ -1,391 +0,0 @@
|
|||||||
From ea8e543bb86660dd6ccc3048ae9916358b58a6b3 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Wed, 17 Aug 2011 13:42:16 +0200
|
|
||||||
Subject: [PATCH] add TEST-16-DMSQUASH
|
|
||||||
|
|
||||||
This is a test for Fedora LiveCDs created via livecd-tools
|
|
||||||
---
|
|
||||||
test/TEST-16-DMSQUASH/99-idesymlinks.rules | 8 +
|
|
||||||
test/TEST-16-DMSQUASH/Makefile | 10 ++
|
|
||||||
test/TEST-16-DMSQUASH/create.py | 186 ++++++++++++++++++++++++
|
|
||||||
test/TEST-16-DMSQUASH/cryptroot-ask | 6 +
|
|
||||||
test/TEST-16-DMSQUASH/hard-off.sh | 3 +
|
|
||||||
test/TEST-16-DMSQUASH/livecd-fedora-minimal.ks | 22 +++
|
|
||||||
test/TEST-16-DMSQUASH/test-init | 17 ++
|
|
||||||
test/TEST-16-DMSQUASH/test.sh | 66 +++++++++
|
|
||||||
8 files changed, 318 insertions(+), 0 deletions(-)
|
|
||||||
create mode 100644 test/TEST-16-DMSQUASH/99-idesymlinks.rules
|
|
||||||
create mode 100644 test/TEST-16-DMSQUASH/Makefile
|
|
||||||
create mode 100644 test/TEST-16-DMSQUASH/create.py
|
|
||||||
create mode 100755 test/TEST-16-DMSQUASH/cryptroot-ask
|
|
||||||
create mode 100755 test/TEST-16-DMSQUASH/hard-off.sh
|
|
||||||
create mode 100644 test/TEST-16-DMSQUASH/livecd-fedora-minimal.ks
|
|
||||||
create mode 100755 test/TEST-16-DMSQUASH/test-init
|
|
||||||
create mode 100755 test/TEST-16-DMSQUASH/test.sh
|
|
||||||
|
|
||||||
diff --git a/test/TEST-16-DMSQUASH/99-idesymlinks.rules b/test/TEST-16-DMSQUASH/99-idesymlinks.rules
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..d557790
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/test/TEST-16-DMSQUASH/99-idesymlinks.rules
|
|
||||||
@@ -0,0 +1,8 @@
|
|
||||||
+ACTION=="add|change", SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="hda", SYMLINK+="sda"
|
|
||||||
+ACTION=="add|change", SUBSYSTEM=="block", ENV{DEVTYPE}=="partition", KERNEL=="hda*", SYMLINK+="sda$env{MINOR}"
|
|
||||||
+ACTION=="add|change", SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="hdb", SYMLINK+="sdb"
|
|
||||||
+ACTION=="add|change", SUBSYSTEM=="block", ENV{DEVTYPE}=="partition", KERNEL=="hdb*", SYMLINK+="sdb$env{MINOR}"
|
|
||||||
+ACTION=="add|change", SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="hdc", SYMLINK+="sdc"
|
|
||||||
+ACTION=="add|change", SUBSYSTEM=="block", ENV{DEVTYPE}=="partition", KERNEL=="hdc*", SYMLINK+="sdc$env{MINOR}"
|
|
||||||
+ACTION=="add|change", SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="hdd", SYMLINK+="sdd"
|
|
||||||
+ACTION=="add|change", SUBSYSTEM=="block", ENV{DEVTYPE}=="partition", KERNEL=="hdd*", SYMLINK+="sdd$env{MINOR}"
|
|
||||||
diff --git a/test/TEST-16-DMSQUASH/Makefile b/test/TEST-16-DMSQUASH/Makefile
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..bc0ddb6
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/test/TEST-16-DMSQUASH/Makefile
|
|
||||||
@@ -0,0 +1,10 @@
|
|
||||||
+all:
|
|
||||||
+ @make -s --no-print-directory -C ../.. all
|
|
||||||
+ @basedir=../.. testdir=../ ./test.sh --all
|
|
||||||
+setup:
|
|
||||||
+ @make --no-print-directory -C ../.. all
|
|
||||||
+ @basedir=../.. testdir=../ ./test.sh --setup
|
|
||||||
+clean:
|
|
||||||
+ @basedir=../.. testdir=../ ./test.sh --clean
|
|
||||||
+run:
|
|
||||||
+ @basedir=../.. testdir=../ ./test.sh --run
|
|
||||||
diff --git a/test/TEST-16-DMSQUASH/create.py b/test/TEST-16-DMSQUASH/create.py
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..15d29ff
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/test/TEST-16-DMSQUASH/create.py
|
|
||||||
@@ -0,0 +1,186 @@
|
|
||||||
+#!/usr/bin/python -tt
|
|
||||||
+#
|
|
||||||
+# livecd-creator : Creates Live CD based for Fedora.
|
|
||||||
+#
|
|
||||||
+# Copyright 2007, Red Hat Inc.
|
|
||||||
+#
|
|
||||||
+# 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; version 2 of the License.
|
|
||||||
+#
|
|
||||||
+# 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 Library General Public License for more details.
|
|
||||||
+#
|
|
||||||
+# You should have received a copy of the GNU General Public License
|
|
||||||
+# along with this program; if not, write to the Free Software
|
|
||||||
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
+
|
|
||||||
+import os
|
|
||||||
+import os.path
|
|
||||||
+import sys
|
|
||||||
+import time
|
|
||||||
+import optparse
|
|
||||||
+import logging
|
|
||||||
+import shutil
|
|
||||||
+from distutils.dir_util import copy_tree
|
|
||||||
+
|
|
||||||
+import imgcreate
|
|
||||||
+from imgcreate.fs import makedirs
|
|
||||||
+
|
|
||||||
+class myLiveImageCreator(imgcreate.x86LiveImageCreator):
|
|
||||||
+ def install(self, repo_urls = {}):
|
|
||||||
+ copy_tree("root-source", self._instroot)
|
|
||||||
+
|
|
||||||
+ def configure(self):
|
|
||||||
+ self._create_bootconfig()
|
|
||||||
+
|
|
||||||
+ def _get_kernel_versions(self):
|
|
||||||
+ ret = {}
|
|
||||||
+ version=os.uname()
|
|
||||||
+ version=version[2]
|
|
||||||
+ ret["kernel-" + version] = [version]
|
|
||||||
+ return ret
|
|
||||||
+
|
|
||||||
+ def __sanity_check(self):
|
|
||||||
+ pass
|
|
||||||
+
|
|
||||||
+class Usage(Exception):
|
|
||||||
+ def __init__(self, msg = None, no_error = False):
|
|
||||||
+ Exception.__init__(self, msg, no_error)
|
|
||||||
+
|
|
||||||
+def parse_options(args):
|
|
||||||
+ parser = optparse.OptionParser()
|
|
||||||
+
|
|
||||||
+ imgopt = optparse.OptionGroup(parser, "Image options",
|
|
||||||
+ "These options define the created image.")
|
|
||||||
+ imgopt.add_option("-c", "--config", type="string", dest="kscfg",
|
|
||||||
+ help="Path or url to kickstart config file")
|
|
||||||
+ imgopt.add_option("-b", "--base-on", type="string", dest="base_on",
|
|
||||||
+ help="Add packages to an existing live CD iso9660 image.")
|
|
||||||
+ imgopt.add_option("-f", "--fslabel", type="string", dest="fslabel",
|
|
||||||
+ help="File system label (default based on config name)")
|
|
||||||
+ # Provided for img-create compatibility
|
|
||||||
+ imgopt.add_option("-n", "--name", type="string", dest="fslabel",
|
|
||||||
+ help=optparse.SUPPRESS_HELP)
|
|
||||||
+ imgopt.add_option("", "--image-type", type="string", dest="image_type",
|
|
||||||
+ help=optparse.SUPPRESS_HELP)
|
|
||||||
+ imgopt.add_option("", "--compression-type", type="string", dest="compress_type",
|
|
||||||
+ help="Compression type recognized by mksquashfs "
|
|
||||||
+ "(default xz needs a 2.6.38+ kernel, gzip works "
|
|
||||||
+ "with all kernels, lzo needs a 2.6.36+ kernel, lzma "
|
|
||||||
+ "needs custom kernel.) Set to 'None' to force read "
|
|
||||||
+ "from base_on.",
|
|
||||||
+ default="xz")
|
|
||||||
+ imgopt.add_option("", "--releasever", type="string", dest="releasever",
|
|
||||||
+ default=None,
|
|
||||||
+ help="Value to substitute for $releasever in kickstart repo urls")
|
|
||||||
+ parser.add_option_group(imgopt)
|
|
||||||
+
|
|
||||||
+ # options related to the config of your system
|
|
||||||
+ sysopt = optparse.OptionGroup(parser, "System directory options",
|
|
||||||
+ "These options define directories used on your system for creating the live image")
|
|
||||||
+ sysopt.add_option("-t", "--tmpdir", type="string",
|
|
||||||
+ dest="tmpdir", default="/var/tmp",
|
|
||||||
+ help="Temporary directory to use (default: /var/tmp)")
|
|
||||||
+ sysopt.add_option("", "--cache", type="string",
|
|
||||||
+ dest="cachedir", default=None,
|
|
||||||
+ help="Cache directory to use (default: private cache")
|
|
||||||
+ parser.add_option_group(sysopt)
|
|
||||||
+
|
|
||||||
+ imgcreate.setup_logging(parser)
|
|
||||||
+
|
|
||||||
+ # debug options not recommended for "production" images
|
|
||||||
+ # Start a shell in the chroot for post-configuration.
|
|
||||||
+ parser.add_option("-l", "--shell", action="store_true", dest="give_shell",
|
|
||||||
+ help=optparse.SUPPRESS_HELP)
|
|
||||||
+ # Don't compress the image.
|
|
||||||
+ parser.add_option("-s", "--skip-compression", action="store_true", dest="skip_compression",
|
|
||||||
+ help=optparse.SUPPRESS_HELP)
|
|
||||||
+ parser.add_option("", "--skip-minimize", action="store_true", dest="skip_minimize",
|
|
||||||
+ help=optparse.SUPPRESS_HELP)
|
|
||||||
+
|
|
||||||
+ (options, args) = parser.parse_args()
|
|
||||||
+
|
|
||||||
+ # Pretend to be a image-creator if called with that name
|
|
||||||
+ options.image_type = 'livecd'
|
|
||||||
+ if options.image_type not in ('livecd', 'image'):
|
|
||||||
+ raise Usage("'%s' is a recognized image type" % options.image_type)
|
|
||||||
+
|
|
||||||
+ # image-create compatibility: Last argument is kickstart file
|
|
||||||
+ if len(args) == 1:
|
|
||||||
+ options.kscfg = args.pop()
|
|
||||||
+ if len(args):
|
|
||||||
+ raise Usage("Extra arguments given")
|
|
||||||
+
|
|
||||||
+ if options.base_on and not os.path.isfile(options.base_on):
|
|
||||||
+ raise Usage("Image file '%s' does not exist" %(options.base_on,))
|
|
||||||
+ if options.image_type == 'livecd':
|
|
||||||
+ if options.fslabel and len(options.fslabel) > imgcreate.FSLABEL_MAXLEN:
|
|
||||||
+ raise Usage("CD labels are limited to 32 characters")
|
|
||||||
+ if options.fslabel and options.fslabel.find(" ") != -1:
|
|
||||||
+ raise Usage("CD labels cannot contain spaces.")
|
|
||||||
+
|
|
||||||
+ return options
|
|
||||||
+
|
|
||||||
+def main():
|
|
||||||
+ try:
|
|
||||||
+ options = parse_options(sys.argv[1:])
|
|
||||||
+ except Usage, (msg, no_error):
|
|
||||||
+ if no_error:
|
|
||||||
+ out = sys.stdout
|
|
||||||
+ ret = 0
|
|
||||||
+ else:
|
|
||||||
+ out = sys.stderr
|
|
||||||
+ ret = 2
|
|
||||||
+ if msg:
|
|
||||||
+ print >> out, msg
|
|
||||||
+ return ret
|
|
||||||
+
|
|
||||||
+ if os.geteuid () != 0:
|
|
||||||
+ print >> sys.stderr, "You must run %s as root" % sys.argv[0]
|
|
||||||
+ return 1
|
|
||||||
+
|
|
||||||
+ if options.fslabel:
|
|
||||||
+ fslabel = options.fslabel
|
|
||||||
+ name = fslabel
|
|
||||||
+ else:
|
|
||||||
+ name = "livecd"
|
|
||||||
+
|
|
||||||
+ fslabel = "LiveCD"
|
|
||||||
+ logging.info("Using label '%s' and name '%s'" % (fslabel, name))
|
|
||||||
+
|
|
||||||
+ ks = imgcreate.read_kickstart(options.kscfg)
|
|
||||||
+
|
|
||||||
+ creator = myLiveImageCreator(ks, name,
|
|
||||||
+ fslabel=fslabel,
|
|
||||||
+ releasever=options.releasever,
|
|
||||||
+ tmpdir=os.path.abspath(options.tmpdir))
|
|
||||||
+
|
|
||||||
+ creator.compress_type = options.compress_type
|
|
||||||
+ creator.skip_compression = options.skip_compression
|
|
||||||
+ creator.skip_minimize = options.skip_minimize
|
|
||||||
+ if options.cachedir:
|
|
||||||
+ options.cachedir = os.path.abspath(options.cachedir)
|
|
||||||
+
|
|
||||||
+ try:
|
|
||||||
+ creator.mount(options.base_on, options.cachedir)
|
|
||||||
+ creator.install()
|
|
||||||
+ creator.configure()
|
|
||||||
+ if options.give_shell:
|
|
||||||
+ print "Launching shell. Exit to continue."
|
|
||||||
+ print "----------------------------------"
|
|
||||||
+ creator.launch_shell()
|
|
||||||
+ creator.unmount()
|
|
||||||
+ creator.package()
|
|
||||||
+ except imgcreate.CreatorError, e:
|
|
||||||
+ logging.error(u"Error creating Live CD : %s" % e)
|
|
||||||
+ return 1
|
|
||||||
+ finally:
|
|
||||||
+ creator.cleanup()
|
|
||||||
+
|
|
||||||
+ return 0
|
|
||||||
+
|
|
||||||
+if __name__ == "__main__":
|
|
||||||
+ sys.exit(main())
|
|
||||||
diff --git a/test/TEST-16-DMSQUASH/cryptroot-ask b/test/TEST-16-DMSQUASH/cryptroot-ask
|
|
||||||
new file mode 100755
|
|
||||||
index 0000000..db27c5b
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/test/TEST-16-DMSQUASH/cryptroot-ask
|
|
||||||
@@ -0,0 +1,6 @@
|
|
||||||
+#!/bin/sh
|
|
||||||
+
|
|
||||||
+[ -b /dev/mapper/$2 ] && exit 0
|
|
||||||
+echo -n test >/keyfile
|
|
||||||
+/sbin/cryptsetup luksOpen $1 $2 </keyfile
|
|
||||||
+
|
|
||||||
diff --git a/test/TEST-16-DMSQUASH/hard-off.sh b/test/TEST-16-DMSQUASH/hard-off.sh
|
|
||||||
new file mode 100755
|
|
||||||
index 0000000..12c3d5a
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/test/TEST-16-DMSQUASH/hard-off.sh
|
|
||||||
@@ -0,0 +1,3 @@
|
|
||||||
+#!/bin/sh
|
|
||||||
+getarg rd.shell || poweroff -f
|
|
||||||
+getarg failme && poweroff -f
|
|
||||||
diff --git a/test/TEST-16-DMSQUASH/livecd-fedora-minimal.ks b/test/TEST-16-DMSQUASH/livecd-fedora-minimal.ks
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..88637ae
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/test/TEST-16-DMSQUASH/livecd-fedora-minimal.ks
|
|
||||||
@@ -0,0 +1,22 @@
|
|
||||||
+lang en_US.UTF-8
|
|
||||||
+keyboard us
|
|
||||||
+timezone US/Eastern
|
|
||||||
+auth --useshadow --enablemd5
|
|
||||||
+selinux --enforcing
|
|
||||||
+firewall --disabled
|
|
||||||
+part / --size 1024
|
|
||||||
+
|
|
||||||
+repo --name=fedora --mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-16&arch=$basearch
|
|
||||||
+
|
|
||||||
+%packages
|
|
||||||
+@core
|
|
||||||
+anaconda-runtime
|
|
||||||
+bash
|
|
||||||
+kernel
|
|
||||||
+passwd
|
|
||||||
+policycoreutils
|
|
||||||
+chkconfig
|
|
||||||
+authconfig
|
|
||||||
+rootfiles
|
|
||||||
+
|
|
||||||
+%end
|
|
||||||
diff --git a/test/TEST-16-DMSQUASH/test-init b/test/TEST-16-DMSQUASH/test-init
|
|
||||||
new file mode 100755
|
|
||||||
index 0000000..616bf68
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/test/TEST-16-DMSQUASH/test-init
|
|
||||||
@@ -0,0 +1,17 @@
|
|
||||||
+#!/bin/sh
|
|
||||||
+export PATH=/sbin:/bin:/usr/sbin:/usr/bin
|
|
||||||
+strstr() { [ "${1#*$2*}" != "$1" ]; }
|
|
||||||
+CMDLINE=$(while read line; do echo $line;done < /proc/cmdline)
|
|
||||||
+plymouth --quit
|
|
||||||
+exec >/dev/console 2>&1
|
|
||||||
+echo "dracut-root-block-success" >/dev/sda
|
|
||||||
+export TERM=linux
|
|
||||||
+export PS1='initramfs-test:\w\$ '
|
|
||||||
+[ -f /etc/mtab ] || ln -sfn /proc/mounts /etc/mtab
|
|
||||||
+[ -f /etc/fstab ] || ln -sfn /proc/mounts /etc/fstab
|
|
||||||
+stty sane
|
|
||||||
+echo "made it to the rootfs!"
|
|
||||||
+strstr "$CMDLINE" "rd.shell" && sh -i
|
|
||||||
+echo "Powering down."
|
|
||||||
+mount -n -o remount,ro /
|
|
||||||
+poweroff -f
|
|
||||||
diff --git a/test/TEST-16-DMSQUASH/test.sh b/test/TEST-16-DMSQUASH/test.sh
|
|
||||||
new file mode 100755
|
|
||||||
index 0000000..5d8075c
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/test/TEST-16-DMSQUASH/test.sh
|
|
||||||
@@ -0,0 +1,66 @@
|
|
||||||
+#!/bin/bash
|
|
||||||
+TEST_DESCRIPTION="root filesystem on a LiveCD dmsquash filesystem"
|
|
||||||
+
|
|
||||||
+KVERSION=${KVERSION-$(uname -r)}
|
|
||||||
+
|
|
||||||
+# Uncomment this to debug failures
|
|
||||||
+#DEBUGFAIL="rd.shell rd.break"
|
|
||||||
+
|
|
||||||
+test_run() {
|
|
||||||
+ $testdir/run-qemu -boot order=d -cdrom livecd.iso -hda root.img -m 256M -nographic \
|
|
||||||
+ -net none -kernel /boot/vmlinuz-$KVERSION \
|
|
||||||
+ -append "root=live:CDLABEL=LiveCD live rw quiet rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.debug $DEBUGFAIL" \
|
|
||||||
+ -initrd initramfs.testing
|
|
||||||
+ grep -m 1 -q dracut-root-block-success root.img || return 1
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+test_setup() {
|
|
||||||
+ mkdir -p overlay
|
|
||||||
+ (
|
|
||||||
+ initdir=overlay
|
|
||||||
+ . $basedir/dracut-functions
|
|
||||||
+ dracut_install poweroff shutdown
|
|
||||||
+ inst_hook emergency 000 ./hard-off.sh
|
|
||||||
+ inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
|
|
||||||
+ )
|
|
||||||
+
|
|
||||||
+ dd if=/dev/null of=root.img seek=100
|
|
||||||
+
|
|
||||||
+ sudo $basedir/dracut -l -i overlay / \
|
|
||||||
+ -a "debug" \
|
|
||||||
+ -d "piix ide-gd_mod ata_piix ext3 sd_mod" \
|
|
||||||
+ -f initramfs.testing $KVERSION || return 1
|
|
||||||
+
|
|
||||||
+ mkdir -p root-source
|
|
||||||
+ kernel=$KVERSION
|
|
||||||
+ # Create what will eventually be our root filesystem onto an overlay
|
|
||||||
+ (
|
|
||||||
+ initdir=root-source
|
|
||||||
+ . $basedir/dracut-functions
|
|
||||||
+ dracut_install sh df free ls shutdown poweroff stty cat ps ln ip route \
|
|
||||||
+ /lib/terminfo/l/linux mount dmesg ifconfig dhclient mkdir cp ping dhclient \
|
|
||||||
+ umount strace less
|
|
||||||
+ inst "$basedir/modules.d/40network/dhclient-script" "/sbin/dhclient-script"
|
|
||||||
+ inst "$basedir/modules.d/40network/ifup" "/sbin/ifup"
|
|
||||||
+ dracut_install grep syslinux isohybrid
|
|
||||||
+ for f in /usr/share/syslinux/*; do
|
|
||||||
+ inst_simple "$f"
|
|
||||||
+ done
|
|
||||||
+ inst ./test-init /sbin/init
|
|
||||||
+ inst ./initramfs.testing "/boot/initramfs-$KVERSION.img"
|
|
||||||
+ inst /boot/vmlinuz-$KVERSION
|
|
||||||
+ find_binary plymouth >/dev/null && dracut_install plymouth
|
|
||||||
+ (cd "$initdir"; mkdir -p dev sys proc etc var/run tmp )
|
|
||||||
+ cp -a /etc/ld.so.conf* $initdir/etc
|
|
||||||
+ sudo ldconfig -r "$initdir"
|
|
||||||
+ )
|
|
||||||
+ python create.py -d -c livecd-fedora-minimal.ks
|
|
||||||
+ exit 0
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+test_cleanup() {
|
|
||||||
+ rm -fr overlay root-source
|
|
||||||
+ rm -f root.img initramfs.makeroot initramfs.testing livecd.iso
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+. $testdir/test-functions
|
|
63
0005-dracut.spec-remove-unnecessary-dependencies.patch
Normal file
63
0005-dracut.spec-remove-unnecessary-dependencies.patch
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
From 828feae4f1814a915b2f7f362a5920322e0d6fcc Mon Sep 17 00:00:00 2001
|
||||||
|
From: Harald Hoyer <harald@redhat.com>
|
||||||
|
Date: Fri, 9 Dec 2011 10:28:40 +0100
|
||||||
|
Subject: [PATCH] dracut.spec: remove unnecessary dependencies
|
||||||
|
|
||||||
|
Since the initramfs generation is done in %postrans of the kernel rpm,
|
||||||
|
we can drop all hard requirements.
|
||||||
|
|
||||||
|
Also make some requirements a conflict to express the version
|
||||||
|
dependency.
|
||||||
|
---
|
||||||
|
dracut.spec | 24 ++----------------------
|
||||||
|
1 files changed, 2 insertions(+), 22 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/dracut.spec b/dracut.spec
|
||||||
|
index 91b62ee..1c50f37 100644
|
||||||
|
--- a/dracut.spec
|
||||||
|
+++ b/dracut.spec
|
||||||
|
@@ -68,17 +68,15 @@ Requires: filesystem >= 2.1.0
|
||||||
|
Requires: findutils
|
||||||
|
Requires: grep
|
||||||
|
Requires: gzip
|
||||||
|
-Requires: kbd
|
||||||
|
Requires: mktemp >= 1.5-5
|
||||||
|
Requires: module-init-tools >= 3.7-9
|
||||||
|
Requires: sed
|
||||||
|
-Requires: tar
|
||||||
|
Requires: udev
|
||||||
|
Requires: util-linux >= 2.20
|
||||||
|
|
||||||
|
%if 0%{?fedora} || 0%{?rhel} > 6
|
||||||
|
-Requires: initscripts >= 8.63-1
|
||||||
|
-Requires: plymouth >= 0.8.0-0.2009.29.09.19.1
|
||||||
|
+Conflicts: initscripts < 8.63-1
|
||||||
|
+Conflicts: plymouth < 0.8.0-0.2009.29.09.19.1
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%description
|
||||||
|
@@ -91,24 +89,6 @@ NFS, iSCSI, NBD, FCoE with the dracut-network package.
|
||||||
|
%package network
|
||||||
|
Summary: Dracut modules to build a dracut initramfs with network support
|
||||||
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
-Requires: rpcbind
|
||||||
|
-%if %{with_nbd}
|
||||||
|
-Requires: nbd
|
||||||
|
-%endif
|
||||||
|
-Requires: iproute
|
||||||
|
-Requires: bridge-utils
|
||||||
|
-
|
||||||
|
-%if 0%{?fedora} || 0%{?rhel} > 6
|
||||||
|
-Requires: iscsi-initiator-utils
|
||||||
|
-Requires: nfs-utils
|
||||||
|
-Requires: dhclient
|
||||||
|
-%endif
|
||||||
|
-
|
||||||
|
-%if 0%{?suse_version}
|
||||||
|
-Requires: dhcp-client
|
||||||
|
-Requires: nfs-client
|
||||||
|
-Requires: vlan
|
||||||
|
-%endif
|
||||||
|
Obsoletes: dracut-generic < 008
|
||||||
|
Provides: dracut-generic = %{version}-%{release}
|
||||||
|
|
21
0006-TEST-12-RAID-DEG-mkdir-run.patch
Normal file
21
0006-TEST-12-RAID-DEG-mkdir-run.patch
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
From 5112bfc8ccd01dee3ef97c6e6ce2e78d709e201f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Harald Hoyer <harald@redhat.com>
|
||||||
|
Date: Thu, 15 Dec 2011 13:42:16 +0100
|
||||||
|
Subject: [PATCH] TEST-12-RAID-DEG: mkdir /run
|
||||||
|
|
||||||
|
---
|
||||||
|
test/TEST-12-RAID-DEG/create-root.sh | 1 +
|
||||||
|
1 files changed, 1 insertions(+), 0 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/test/TEST-12-RAID-DEG/create-root.sh b/test/TEST-12-RAID-DEG/create-root.sh
|
||||||
|
index 47eb961..7be4a32 100755
|
||||||
|
--- a/test/TEST-12-RAID-DEG/create-root.sh
|
||||||
|
+++ b/test/TEST-12-RAID-DEG/create-root.sh
|
||||||
|
@@ -28,6 +28,7 @@ mke2fs -L root /dev/dracut/root && \
|
||||||
|
mkdir -p /sysroot && \
|
||||||
|
mount /dev/dracut/root /sysroot && \
|
||||||
|
cp -a -t /sysroot /source/* && \
|
||||||
|
+mkdir /sysroot/run && \
|
||||||
|
umount /sysroot && \
|
||||||
|
lvm lvchange -a n /dev/dracut/root && \
|
||||||
|
cryptsetup luksClose /dev/mapper/dracut_crypt_test && \
|
@ -1,22 +0,0 @@
|
|||||||
From d670e21998f8b13c6b266e29bcc80db55d19f8c8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Wed, 17 Aug 2011 17:40:59 +0200
|
|
||||||
Subject: [PATCH] dracut-functions: s/emergency-shutdown/shutdown-emergency/g
|
|
||||||
|
|
||||||
---
|
|
||||||
dracut-functions | 2 +-
|
|
||||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut-functions b/dracut-functions
|
|
||||||
index 936d3c3..241d89a 100755
|
|
||||||
--- a/dracut-functions
|
|
||||||
+++ b/dracut-functions
|
|
||||||
@@ -518,7 +518,7 @@ inst() {
|
|
||||||
|
|
||||||
[[ $hookdirs ]] || {
|
|
||||||
hookdirs="cmdline pre-udev pre-trigger netroot initqueue pre-mount"
|
|
||||||
- hookdirs+=" pre-pivot mount emergency emergency-shutdown shutdown"
|
|
||||||
+ hookdirs+=" pre-pivot mount emergency shutdown-emergency shutdown"
|
|
||||||
export hookdirs
|
|
||||||
}
|
|
||||||
|
|
127
0007-99base-dracut-lib.sh-added-inst_mount_hook-add_mount.patch
Normal file
127
0007-99base-dracut-lib.sh-added-inst_mount_hook-add_mount.patch
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
From bb61d657c1ff11c4339a777e1fcf57173783bf7d Mon Sep 17 00:00:00 2001
|
||||||
|
From: Harald Hoyer <harald@redhat.com>
|
||||||
|
Date: Thu, 15 Dec 2011 14:37:34 +0100
|
||||||
|
Subject: [PATCH] 99base/dracut-lib.sh: added inst_mount_hook add_mount_point
|
||||||
|
|
||||||
|
inst_mount_hook <mountpoint> <prio> <name> <script>
|
||||||
|
|
||||||
|
Install a mount hook with priority <prio>,
|
||||||
|
which executes <script> as soon as <mountpoint> is mounted.
|
||||||
|
|
||||||
|
add_mount_point <dev> <mountpoint> <filesystem> <fsopts>
|
||||||
|
|
||||||
|
Mount <dev> on <mountpoint> with <filesystem> and <fsopts>
|
||||||
|
and call any mount hooks, as soon, as it is mounted
|
||||||
|
---
|
||||||
|
modules.d/99base/dracut-lib.sh | 91 ++++++++++++++++++++++++++++++++++++++++
|
||||||
|
1 files changed, 91 insertions(+), 0 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
|
||||||
|
index c881869..9eae4d9 100755
|
||||||
|
--- a/modules.d/99base/dracut-lib.sh
|
||||||
|
+++ b/modules.d/99base/dracut-lib.sh
|
||||||
|
@@ -602,6 +602,92 @@ usable_root() {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
+inst_hook() {
|
||||||
|
+ local _hookname _unique _name _job _exe
|
||||||
|
+ while [ $# -gt 0 ]; do
|
||||||
|
+ case "$1" in
|
||||||
|
+ --hook)
|
||||||
|
+ _hookname="/$2";shift;;
|
||||||
|
+ --unique)
|
||||||
|
+ _unique="yes";;
|
||||||
|
+ --name)
|
||||||
|
+ _name="$2";shift;;
|
||||||
|
+ *)
|
||||||
|
+ break;;
|
||||||
|
+ esac
|
||||||
|
+ shift
|
||||||
|
+ done
|
||||||
|
+
|
||||||
|
+ if [ -z "$_unique" ]; then
|
||||||
|
+ _job="${_name}$$"
|
||||||
|
+ else
|
||||||
|
+ _job="${_name:-$1}"
|
||||||
|
+ _job=${_job##*/}
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ _exe=$1
|
||||||
|
+ shift
|
||||||
|
+
|
||||||
|
+ [ -x "$_exe" ] || _exe=$(command -v $_exe)
|
||||||
|
+
|
||||||
|
+ if [ -n "$onetime" ]; then
|
||||||
|
+ {
|
||||||
|
+ echo '[ -e "$_job" ] && rm "$_job"'
|
||||||
|
+ echo "$_exe $@"
|
||||||
|
+ } > "/tmp/$$-${_job}.sh"
|
||||||
|
+ else
|
||||||
|
+ echo "$_exe $@" > "/tmp/$$-${_job}.sh"
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ mv -f "/tmp/$$-${_job}.sh" "$hookdir/${_hookname}/${_job}.sh"
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+# inst_mount_hook <mountpoint> <prio> <name> <script>
|
||||||
|
+#
|
||||||
|
+# Install a mount hook with priority <prio>,
|
||||||
|
+# which executes <script> as soon as <mountpoint> is mounted.
|
||||||
|
+inst_mount_hook() {
|
||||||
|
+ local _prio="$2" _jobname="$3" _script="$4"
|
||||||
|
+ local _hookname="mount-$(str_replace "$1" '/' '\\x2f')"
|
||||||
|
+ [ -d "$hookdir/${_hookname}" ] || mkdir -p "$hookdir/${_hookname}"
|
||||||
|
+ inst_hook --hook "$_hookname" --unique --name "${_prio}-${_jobname}" "$_script"
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+# add_mount_point <dev> <mountpoint> <filesystem> <fsopts>
|
||||||
|
+#
|
||||||
|
+# Mount <dev> on <mountpoint> with <filesystem> and <fsopts>
|
||||||
|
+# and call any mount hooks, as soon, as it is mounted
|
||||||
|
+add_mount_point() {
|
||||||
|
+ local _dev="$1" _mp="$2" _fs="$3" _fsopts="$4"
|
||||||
|
+ local _hookname="mount-$(str_replace "$2" '/' '\\x2f')"
|
||||||
|
+ local _devname="dev-$(str_replace "$1" '/' '\\x2f')"
|
||||||
|
+ echo "$_dev $_mp $_fs $_fsopts 0 0" >> /etc/fstab
|
||||||
|
+
|
||||||
|
+ exec 7>/etc/udev/rules.d/99-mount-${_devname}.rules
|
||||||
|
+ echo 'SUBSYSTEM!="block", GOTO="mount_end"' >&7
|
||||||
|
+ echo 'ACTION!="add|change", GOTO="mount_end"' >&7
|
||||||
|
+ if [ -n "$_dev" ]; then
|
||||||
|
+ udevmatch "$_dev" >&7 || {
|
||||||
|
+ warn "add_mount_point dev=$_dev incorrect!"
|
||||||
|
+ continue
|
||||||
|
+ }
|
||||||
|
+ printf ', ' >&7
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ {
|
||||||
|
+ printf -- 'RUN+="%s --unique --onetime ' $(command -v initqueue)
|
||||||
|
+ printf -- '--name mount-%%k '
|
||||||
|
+ printf -- '%s %s"\n' "$(command -v mount_hook)" "${_mp}"
|
||||||
|
+ } >&7
|
||||||
|
+ echo 'LABEL="mount_end"' >&7
|
||||||
|
+ exec 7>&-
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+# wait_for_mount <mountpoint>
|
||||||
|
+#
|
||||||
|
+# Installs a initqueue-finished script,
|
||||||
|
+# which will cause the main loop only to exit,
|
||||||
|
+# if <mountpoint> is mounted.
|
||||||
|
wait_for_mount()
|
||||||
|
{
|
||||||
|
local _name
|
||||||
|
@@ -614,6 +700,11 @@ wait_for_mount()
|
||||||
|
} >> "$hookdir/emergency/90-${_name}.sh"
|
||||||
|
}
|
||||||
|
|
||||||
|
+# wait_for_dev <dev>
|
||||||
|
+#
|
||||||
|
+# Installs a initqueue-finished script,
|
||||||
|
+# which will cause the main loop only to exit,
|
||||||
|
+# if the device <dev> is recognized by the system.
|
||||||
|
wait_for_dev()
|
||||||
|
{
|
||||||
|
local _name
|
@ -1,23 +0,0 @@
|
|||||||
From d619fb5e1c07f15eb6b9156a389fad85e2924e57 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Fri, 19 Aug 2011 08:08:18 +0200
|
|
||||||
Subject: [PATCH] dracut: unset LD_LIBRARY_PATH
|
|
||||||
|
|
||||||
LD_LIBRARY_PATH is not set in the initramfs, so it should not be set
|
|
||||||
while finding our libraries.
|
|
||||||
---
|
|
||||||
dracut | 1 +
|
|
||||||
1 files changed, 1 insertions(+), 0 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut b/dracut
|
|
||||||
index cf27b23..dfa71a1 100755
|
|
||||||
--- a/dracut
|
|
||||||
+++ b/dracut
|
|
||||||
@@ -265,6 +265,7 @@ fi
|
|
||||||
|
|
||||||
PATH=/sbin:/bin:/usr/sbin:/usr/bin
|
|
||||||
export PATH
|
|
||||||
+unset LD_LIBRARY_PATH
|
|
||||||
|
|
||||||
[[ $debug ]] && {
|
|
||||||
export PS4='${BASH_SOURCE}@${LINENO}(${FUNCNAME[0]}): ';
|
|
@ -1,25 +0,0 @@
|
|||||||
From bc313467bdb49605aaddfec67823cab72396c29b Mon Sep 17 00:00:00 2001
|
|
||||||
From: John Reiser <jreiser@bitwagon.com>
|
|
||||||
Date: Thu, 18 Aug 2011 20:55:35 -0700
|
|
||||||
Subject: [PATCH] build initramfs: prelink --undo /sbin/*
|
|
||||||
|
|
||||||
Fix a typo (omitting the 's' in "sbin") which caused
|
|
||||||
"prelink --undo" twice on /bin/*, and
|
|
||||||
"prelink --undo" omitted for /sbin/*.
|
|
||||||
---
|
|
||||||
dracut | 2 +-
|
|
||||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut b/dracut
|
|
||||||
index dfa71a1..fd36805 100755
|
|
||||||
--- a/dracut
|
|
||||||
+++ b/dracut
|
|
||||||
@@ -643,7 +643,7 @@ type hardlink &>/dev/null && {
|
|
||||||
|
|
||||||
if strstr "$modules_loaded" " fips " && command -v prelink >/dev/null; then
|
|
||||||
for i in $initdir/bin/* \
|
|
||||||
- $initdir/bin/* \
|
|
||||||
+ $initdir/sbin/* \
|
|
||||||
$initdir/usr/bin/* \
|
|
||||||
$initdir/usr/sbin/*; do
|
|
||||||
[ -x $i ] && prelink -u $i &>/dev/null
|
|
106
0008-dracut-add-add-fstab-and-mount-option.patch
Normal file
106
0008-dracut-add-add-fstab-and-mount-option.patch
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
From 70cb8a686f710b237c6f7c7524b47d2649f6751a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Harald Hoyer <harald@redhat.com>
|
||||||
|
Date: Thu, 15 Dec 2011 14:36:37 +0100
|
||||||
|
Subject: [PATCH] dracut: add --add-fstab and --mount option
|
||||||
|
|
||||||
|
--add-fstab [FILE] Add file to the initramfs fstab
|
||||||
|
--mount "[DEV] [MP] [FSTYPE] [FSOPTS]"
|
||||||
|
Mount device [DEV] on mountpoint [MP] with filesystem
|
||||||
|
[FSTYPE] and options [FSOPTS] in the initramfs
|
||||||
|
---
|
||||||
|
dracut | 40 ++++++++++++++++++++++++++++++++++++
|
||||||
|
modules.d/95fstab-sys/mount-sys.sh | 4 +-
|
||||||
|
2 files changed, 42 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/dracut b/dracut
|
||||||
|
index 46694f8..8449fc1 100755
|
||||||
|
--- a/dracut
|
||||||
|
+++ b/dracut
|
||||||
|
@@ -85,6 +85,10 @@ 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.
|
||||||
|
--fstab Use /etc/fstab to determine the root device.
|
||||||
|
+ --add-fstab [FILE] Add file to the initramfs fstab
|
||||||
|
+ --mount "[DEV] [MP] [FSTYPE] [FSOPTS]"
|
||||||
|
+ Mount device [DEV] on mountpoint [MP] with filesystem
|
||||||
|
+ [FSTYPE] and options [FSOPTS] in the initramfs
|
||||||
|
-i, --include [SOURCE] [TARGET]
|
||||||
|
Include the files in the SOURCE directory into the
|
||||||
|
Target directory in the final initramfs.
|
||||||
|
@@ -207,6 +211,8 @@ while (($# > 0)); do
|
||||||
|
-I|--install) push_arg install_items_l "$@" || shift;;
|
||||||
|
--fwdir) push_arg fw_dir_l "$@" || shift;;
|
||||||
|
--fscks) push_arg fscks_l "$@" || shift;;
|
||||||
|
+ --add-fstab) push_arg add_fstab_l "$@" || shift;;
|
||||||
|
+ --mount) push_arg fstab_lines "$@" || shift;;
|
||||||
|
--nofscks) nofscks_l="yes";;
|
||||||
|
-k|--kmoddir) read_arg drivers_dir_l "$@" || shift;;
|
||||||
|
-c|--conf) read_arg conffile "$@" || shift;;
|
||||||
|
@@ -332,6 +338,18 @@ if (( ${#fscks_l[@]} )); then
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
+if (( ${#add_fstab_l[@]} )); then
|
||||||
|
+ while pop add_fstab_l val; do
|
||||||
|
+ add_fstab+=" $val "
|
||||||
|
+ done
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
+if (( ${#fstab_lines_l[@]} )); then
|
||||||
|
+ while pop fstab_lines_l val; do
|
||||||
|
+ push fstab_lines $val
|
||||||
|
+ done
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
if (( ${#install_items_l[@]} )); then
|
||||||
|
while pop install_items_l val; do
|
||||||
|
push install_items $val
|
||||||
|
@@ -526,6 +544,21 @@ if [[ $hostonly ]]; then
|
||||||
|
return 1
|
||||||
|
)
|
||||||
|
|
||||||
|
+ for line in "${fstab_lines[@]}"; do
|
||||||
|
+ set -- $line
|
||||||
|
+ #dev mp fs fsopts
|
||||||
|
+ dev="$(get_maj_min $1)"
|
||||||
|
+ push host_devs "${dev:-$1}"
|
||||||
|
+ push host_fs_types "$dev|$3"
|
||||||
|
+ done
|
||||||
|
+
|
||||||
|
+ for f in $add_fstab; do
|
||||||
|
+ [ -e $f ] || continue
|
||||||
|
+ while read dev rest; do
|
||||||
|
+ push host_devs $dev
|
||||||
|
+ done < $f
|
||||||
|
+ done
|
||||||
|
+
|
||||||
|
push host_mp \
|
||||||
|
"/" \
|
||||||
|
"/etc" \
|
||||||
|
@@ -668,6 +701,13 @@ while pop install_items items; do
|
||||||
|
done
|
||||||
|
unset item
|
||||||
|
|
||||||
|
+while pop fstab_lines line; do
|
||||||
|
+ echo "$line 0 0" >> "${initdir}/etc/fstab"
|
||||||
|
+done
|
||||||
|
+
|
||||||
|
+for f in $add_fstab; do
|
||||||
|
+ cat $f >> "${initdir}/etc/fstab"
|
||||||
|
+done
|
||||||
|
|
||||||
|
if [[ $kernel_only != yes ]]; then
|
||||||
|
# make sure that library links are correct and up to date
|
||||||
|
diff --git a/modules.d/95fstab-sys/mount-sys.sh b/modules.d/95fstab-sys/mount-sys.sh
|
||||||
|
index f44351d..a8fbd50 100755
|
||||||
|
--- a/modules.d/95fstab-sys/mount-sys.sh
|
||||||
|
+++ b/modules.d/95fstab-sys/mount-sys.sh
|
||||||
|
@@ -25,6 +25,6 @@ fstab_mount() {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
-for r in $NEWROOT /; do
|
||||||
|
- fstab_mount "$r/etc/fstab.sys" && break
|
||||||
|
+for r in $NEWROOT/etc/fstab.sys /etc/fstab; do
|
||||||
|
+ fstab_mount $r && break
|
||||||
|
done
|
@ -1,41 +0,0 @@
|
|||||||
From a76dc2780143a4b04eb33a6699ec2ca7a7898b65 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Fri, 19 Aug 2011 10:24:49 +0200
|
|
||||||
Subject: [PATCH] dracut-functions: speed up inst_dir()
|
|
||||||
|
|
||||||
---
|
|
||||||
dracut-functions | 18 +++++++++---------
|
|
||||||
1 files changed, 9 insertions(+), 9 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut-functions b/dracut-functions
|
|
||||||
index 241d89a..d7f2e5f 100755
|
|
||||||
--- a/dracut-functions
|
|
||||||
+++ b/dracut-functions
|
|
||||||
@@ -274,18 +274,18 @@ inst_dir() {
|
|
||||||
local _oldifs="$IFS"
|
|
||||||
local _part
|
|
||||||
local _dir="$1"
|
|
||||||
- IFS="/"
|
|
||||||
- set -- $_dir
|
|
||||||
- IFS=$_oldifs
|
|
||||||
- _dir="$@"
|
|
||||||
+
|
|
||||||
+ # fast out
|
|
||||||
[[ -e ${initdir}$_dir ]] && return 0
|
|
||||||
|
|
||||||
- # iterate over parent directories
|
|
||||||
- for _part in $_dir; do
|
|
||||||
- [[ $_part ]] || continue
|
|
||||||
- _file="$_file/$_part"
|
|
||||||
- [[ -e ${initdir}$_file ]] && continue
|
|
||||||
+ _part=${_dir%/*}
|
|
||||||
+ while ! [[ -e "${initdir}${_part}" ]]; do
|
|
||||||
+ _dir="$_part $_dir"
|
|
||||||
+ _part=${_part%/*}
|
|
||||||
+ done
|
|
||||||
|
|
||||||
+ # iterate over parent directories
|
|
||||||
+ for _file in $_dir; do
|
|
||||||
if [[ -L $_file ]]; then
|
|
||||||
# create link as the original
|
|
||||||
local target=$(readlink -f "$_file")
|
|
@ -1,24 +0,0 @@
|
|||||||
From 581dd40e73fb93002202e15186a9e65e0b449eb2 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name>
|
|
||||||
Date: Thu, 18 Aug 2011 15:55:57 +0200
|
|
||||||
Subject: [PATCH] 90crypt: ask_for_password pings plymouthd
|
|
||||||
|
|
||||||
If plymouthd is not started, ask_for_password shouldn't try to prompt
|
|
||||||
for password with GUI and should use text prompt instead.
|
|
||||||
---
|
|
||||||
modules.d/90crypt/crypt-lib.sh | 2 +-
|
|
||||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/90crypt/crypt-lib.sh b/modules.d/90crypt/crypt-lib.sh
|
|
||||||
index 2797a7a..69f14d0 100755
|
|
||||||
--- a/modules.d/90crypt/crypt-lib.sh
|
|
||||||
+++ b/modules.d/90crypt/crypt-lib.sh
|
|
||||||
@@ -47,7 +47,7 @@ ask_for_password() {
|
|
||||||
|
|
||||||
{ flock -s 9;
|
|
||||||
# Prompt for password with plymouth, if installed and running.
|
|
||||||
- if [ -x /bin/plymouth ]; then
|
|
||||||
+ if [ -x /bin/plymouth ] && /bin/plymouth --ping; then
|
|
||||||
/bin/plymouth ask-for-password \
|
|
||||||
--prompt "$ply_prompt" --number-of-tries=$ply_tries \
|
|
||||||
--command="$ply_cmd"
|
|
@ -1,24 +0,0 @@
|
|||||||
From 641d84a4ec742feb7f2851bdebe6f376e15a68b6 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Leho Kraav <leho@kraav.com>
|
|
||||||
Date: Mon, 22 Aug 2011 11:54:47 +0300
|
|
||||||
Subject: [PATCH] 99base: whitespace fix
|
|
||||||
|
|
||||||
---
|
|
||||||
modules.d/99base/initqueue | 4 ++--
|
|
||||||
1 files changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/99base/initqueue b/modules.d/99base/initqueue
|
|
||||||
index 21b1c61..2c06a0b 100755
|
|
||||||
--- a/modules.d/99base/initqueue
|
|
||||||
+++ b/modules.d/99base/initqueue
|
|
||||||
@@ -19,8 +19,8 @@ while [ $# -gt 0 ]; do
|
|
||||||
qname="/settled";;
|
|
||||||
--finished)
|
|
||||||
qname="/finished";;
|
|
||||||
- --timeout)
|
|
||||||
- qname="/timeout";;
|
|
||||||
+ --timeout)
|
|
||||||
+ qname="/timeout";;
|
|
||||||
--unique)
|
|
||||||
unique="yes";;
|
|
||||||
--name)
|
|
@ -1,49 +0,0 @@
|
|||||||
From 3378a54f15016c86e4c8c2ecafcaa45f0119fc00 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name>
|
|
||||||
Date: Sun, 21 Aug 2011 12:47:13 +0200
|
|
||||||
Subject: [PATCH] dracut-functions: new function: inst_any [-d dest] f1 [f2
|
|
||||||
[f3 ...]]
|
|
||||||
|
|
||||||
---
|
|
||||||
dracut-functions | 28 ++++++++++++++++++++++++++++
|
|
||||||
1 files changed, 28 insertions(+), 0 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut-functions b/dracut-functions
|
|
||||||
index d7f2e5f..43a6843 100755
|
|
||||||
--- a/dracut-functions
|
|
||||||
+++ b/dracut-functions
|
|
||||||
@@ -537,6 +537,34 @@ inst_hook() {
|
|
||||||
inst_simple "$3" "/lib/dracut/hooks/${1}/${2}${3##*/}"
|
|
||||||
}
|
|
||||||
|
|
||||||
+# install any of listed files
|
|
||||||
+#
|
|
||||||
+# If first argument is '-d' and second some destination path, first accessible
|
|
||||||
+# source is installed into this path, otherwise it will installed in the same
|
|
||||||
+# path as source. If none of listed files was installed, function return 1.
|
|
||||||
+# On first successful installation it returns with 0 status.
|
|
||||||
+#
|
|
||||||
+# Example:
|
|
||||||
+#
|
|
||||||
+# inst_any -d /bin/foo /bin/bar /bin/baz
|
|
||||||
+#
|
|
||||||
+# Lets assume that /bin/baz exists, so it will be installed as /bin/foo in
|
|
||||||
+# initramfs.
|
|
||||||
+inst_any() {
|
|
||||||
+ local to f
|
|
||||||
+
|
|
||||||
+ [[ $1 = '-d' ]] && to="$2" && shift 2
|
|
||||||
+
|
|
||||||
+ for f in "$@"; do
|
|
||||||
+ if [[ -e $f ]]; then
|
|
||||||
+ [[ $to ]] && inst "$f" "$to" && return 0
|
|
||||||
+ inst "$f" && return 0
|
|
||||||
+ fi
|
|
||||||
+ done
|
|
||||||
+
|
|
||||||
+ return 1
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
dracut_install() {
|
|
||||||
local _optional=no
|
|
||||||
if [[ $1 = '-o' ]]; then
|
|
@ -1,25 +0,0 @@
|
|||||||
From 07aeaae356cf001ebe527a5e106e04b5df6aca4c Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name>
|
|
||||||
Date: Sun, 21 Aug 2011 12:47:14 +0200
|
|
||||||
Subject: [PATCH] livenet: take into account other ca-bundle paths; use
|
|
||||||
inst_any for that
|
|
||||||
|
|
||||||
---
|
|
||||||
modules.d/90livenet/module-setup.sh | 4 +++-
|
|
||||||
1 files changed, 3 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/90livenet/module-setup.sh b/modules.d/90livenet/module-setup.sh
|
|
||||||
index 3ae72de..b166859 100755
|
|
||||||
--- a/modules.d/90livenet/module-setup.sh
|
|
||||||
+++ b/modules.d/90livenet/module-setup.sh
|
|
||||||
@@ -15,7 +15,9 @@ depends() {
|
|
||||||
install() {
|
|
||||||
dracut_install wget
|
|
||||||
mkdir -m 0755 -p "$initdir/etc/ssl/certs"
|
|
||||||
- if ! inst_simple /etc/ssl/certs/ca-bundle.crt; then
|
|
||||||
+ if ! inst_any -t /etc/ssl/certs/ca-bundle.crt \
|
|
||||||
+ /etc/ssl/certs/ca-bundle.crt \
|
|
||||||
+ /etc/ssl/certs/ca-certificates.crt; then
|
|
||||||
dwarn "Couldn't find SSL CA cert bundle; HTTPS won't work."
|
|
||||||
fi
|
|
||||||
|
|
@ -1,95 +0,0 @@
|
|||||||
From c70f6415f8df27565540a1ec1b3a65c09ce3253b Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Przemys=C5=82aw=20Rudy?= <prudy1@o2.pl>
|
|
||||||
Date: Tue, 7 Jun 2011 20:22:51 +0200
|
|
||||||
Subject: [PATCH] luks key on ext dev - wait for luks
|
|
||||||
|
|
||||||
This asks for the luks passphrase if key is not found for defined time (if defined with rd.luks.tout cmd line):
|
|
||||||
|
|
||||||
modules.d/90crypt/cryptroot-ask.sh | 21 ++++++++++++++++++---
|
|
||||||
modules.d/90crypt/parse-crypt.sh | 5 +++--
|
|
||||||
2 files changed, 21 insertions(+), 5 deletions(-)
|
|
||||||
---
|
|
||||||
modules.d/90crypt/cryptroot-ask.sh | 21 ++++++++++++++++++---
|
|
||||||
modules.d/90crypt/parse-crypt.sh | 5 +++--
|
|
||||||
2 files changed, 21 insertions(+), 5 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/90crypt/cryptroot-ask.sh b/modules.d/90crypt/cryptroot-ask.sh
|
|
||||||
index f8e1bd8..9b8f8c2 100755
|
|
||||||
--- a/modules.d/90crypt/cryptroot-ask.sh
|
|
||||||
+++ b/modules.d/90crypt/cryptroot-ask.sh
|
|
||||||
@@ -22,6 +22,9 @@ NEWROOT=${NEWROOT:-"/sysroot"}
|
|
||||||
# default luksname - luks-UUID
|
|
||||||
luksname=$2
|
|
||||||
|
|
||||||
+# fallback to passphrase
|
|
||||||
+ask_passphrase=1
|
|
||||||
+
|
|
||||||
# if device name is /dev/dm-X, convert to /dev/mapper/name
|
|
||||||
if [ "${1##/dev/dm-}" != "$1" ]; then
|
|
||||||
device="/dev/mapper/$(dmsetup info -c --noheadings -o name "$1")"
|
|
||||||
@@ -63,12 +66,21 @@ fi
|
|
||||||
|
|
||||||
info "luksOpen $device $luksname"
|
|
||||||
|
|
||||||
-if [ -n "$(getarg rd.luks.key)" ]; then
|
|
||||||
+while [ -n "$(getarg rd.luks.key)" ]; do
|
|
||||||
if tmp=$(getkey /tmp/luks.keys $device); then
|
|
||||||
keydev="${tmp%%:*}"
|
|
||||||
keypath="${tmp#*:}"
|
|
||||||
else
|
|
||||||
- info "No key found for $device. Will try later."
|
|
||||||
+ if [ $# -eq 3 ]; then
|
|
||||||
+ if [ $3 -eq 0 ]; then
|
|
||||||
+ info "No key found for $device. Fallback to passphrase mode."
|
|
||||||
+ break
|
|
||||||
+ fi
|
|
||||||
+ info "No key found for $device. Will try $3 time(s) more later."
|
|
||||||
+ set -- "$1" "$2" "$(($3 - 1))"
|
|
||||||
+ else
|
|
||||||
+ info "No key found for $device. Will try later."
|
|
||||||
+ fi
|
|
||||||
initqueue --unique --onetime --settled \
|
|
||||||
--name cryptroot-ask-$luksname \
|
|
||||||
$(command -v cryptroot-ask) "$@"
|
|
||||||
@@ -80,7 +92,10 @@ if [ -n "$(getarg rd.luks.key)" ]; then
|
|
||||||
readkey "$keypath" "$keydev" "$device" \
|
|
||||||
| cryptsetup -d - luksOpen "$device" "$luksname"
|
|
||||||
unset keypath keydev
|
|
||||||
-else
|
|
||||||
+ ask_passphrase=0
|
|
||||||
+ break
|
|
||||||
+done
|
|
||||||
+if [ $ask_passphrase -ne 0 ]; then
|
|
||||||
luks_open="$(command -v cryptsetup) luksOpen"
|
|
||||||
ask_for_password --ply-tries 5 \
|
|
||||||
--ply-cmd "$luks_open -T1 $device $luksname" \
|
|
||||||
diff --git a/modules.d/90crypt/parse-crypt.sh b/modules.d/90crypt/parse-crypt.sh
|
|
||||||
index 7ec232a..c76fb23 100755
|
|
||||||
--- a/modules.d/90crypt/parse-crypt.sh
|
|
||||||
+++ b/modules.d/90crypt/parse-crypt.sh
|
|
||||||
@@ -11,6 +11,7 @@ else
|
|
||||||
} > /etc/udev/rules.d/70-luks.rules.new
|
|
||||||
|
|
||||||
LUKS=$(getargs rd.luks.uuid rd_LUKS_UUID)
|
|
||||||
+ tout=$(getarg rd.luks.tout)
|
|
||||||
|
|
||||||
if [ -n "$LUKS" ]; then
|
|
||||||
for luksid in $LUKS; do
|
|
||||||
@@ -20,7 +21,7 @@ else
|
|
||||||
printf -- 'ENV{ID_FS_UUID}=="*%s*", ' $luksid
|
|
||||||
printf -- 'RUN+="%s --unique --onetime ' $(command -v initqueue)
|
|
||||||
printf -- '--name cryptroot-ask-%%k %s ' $(command -v cryptroot-ask)
|
|
||||||
- printf -- '$env{DEVNAME} luks-$env{ID_FS_UUID}"\n'
|
|
||||||
+ printf -- '$env{DEVNAME} luks-$env{ID_FS_UUID} %s"\n' $tout
|
|
||||||
} >> /etc/udev/rules.d/70-luks.rules.new
|
|
||||||
|
|
||||||
printf -- '[ -e /dev/disk/by-uuid/*%s* ]\n' $luksid \
|
|
||||||
@@ -34,7 +35,7 @@ else
|
|
||||||
{
|
|
||||||
printf -- 'ENV{ID_FS_TYPE}=="crypto_LUKS", RUN+="%s ' $(command -v initqueue)
|
|
||||||
printf -- '--unique --onetime --name cryptroot-ask-%%k '
|
|
||||||
- printf -- '%s $env{DEVNAME} luks-$env{ID_FS_UUID}"\n' $(command -v cryptroot-ask)
|
|
||||||
+ printf -- '%s $env{DEVNAME} luks-$env{ID_FS_UUID} %s"\n' $(command -v cryptroot-ask) $tout
|
|
||||||
} >> /etc/udev/rules.d/70-luks.rules.new
|
|
||||||
fi
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
|||||||
From 1f735f82cc55273d6d84ae129c482dc180c0e944 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name>
|
|
||||||
Date: Sun, 21 Aug 2011 10:26:40 +0200
|
|
||||||
Subject: [PATCH] crypt: changed cmdline arg name from rd.luks.tout to
|
|
||||||
rd.luks.key.tout
|
|
||||||
|
|
||||||
---
|
|
||||||
modules.d/90crypt/parse-crypt.sh | 2 +-
|
|
||||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/90crypt/parse-crypt.sh b/modules.d/90crypt/parse-crypt.sh
|
|
||||||
index c76fb23..ff86700 100755
|
|
||||||
--- a/modules.d/90crypt/parse-crypt.sh
|
|
||||||
+++ b/modules.d/90crypt/parse-crypt.sh
|
|
||||||
@@ -11,7 +11,7 @@ else
|
|
||||||
} > /etc/udev/rules.d/70-luks.rules.new
|
|
||||||
|
|
||||||
LUKS=$(getargs rd.luks.uuid rd_LUKS_UUID)
|
|
||||||
- tout=$(getarg rd.luks.tout)
|
|
||||||
+ tout=$(getarg rd.luks.key.tout)
|
|
||||||
|
|
||||||
if [ -n "$LUKS" ]; then
|
|
||||||
for luksid in $LUKS; do
|
|
@ -1,39 +0,0 @@
|
|||||||
From 2e0c003435bbc0751cdf7466c0faebe7bfc7445b Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Przemys=C5=82aw=20Rudy?= <prudy1@o2.pl>
|
|
||||||
Date: Mon, 22 Aug 2011 11:27:00 +0200
|
|
||||||
Subject: [PATCH] luks key on ext dev - wait for luks
|
|
||||||
|
|
||||||
This really waits for the luks mapper device, so luksOpen can do it job
|
|
||||||
---
|
|
||||||
modules.d/90crypt/parse-crypt.sh | 18 ++++++++++++++++--
|
|
||||||
1 files changed, 16 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/90crypt/parse-crypt.sh b/modules.d/90crypt/parse-crypt.sh
|
|
||||||
index ff86700..1e78aa9 100755
|
|
||||||
--- a/modules.d/90crypt/parse-crypt.sh
|
|
||||||
+++ b/modules.d/90crypt/parse-crypt.sh
|
|
||||||
@@ -24,8 +24,22 @@ else
|
|
||||||
printf -- '$env{DEVNAME} luks-$env{ID_FS_UUID} %s"\n' $tout
|
|
||||||
} >> /etc/udev/rules.d/70-luks.rules.new
|
|
||||||
|
|
||||||
- printf -- '[ -e /dev/disk/by-uuid/*%s* ]\n' $luksid \
|
|
||||||
- >> $hookdir/initqueue/finished/90-crypt.sh
|
|
||||||
+
|
|
||||||
+ [ -e $hookdir/initqueue/finished/90-crypt.sh ] || \
|
|
||||||
+ {
|
|
||||||
+ printf -- 'UUIDS=:\n'
|
|
||||||
+ printf -- 'for dm in /dev/dm-*; do\n'
|
|
||||||
+ printf -- '[ -e "$dm" ] || exit 1\n'
|
|
||||||
+ printf -- 'dmid=`/sbin/dmsetup info -c -o uuid --noheadings "$dm"`\n'
|
|
||||||
+ printf -- 'uuid=${dmid#CRYPT-LUKS*-}\n'
|
|
||||||
+ printf -- '[ "x$uuid" = "x$dmid" ] && continue\n'
|
|
||||||
+ printf -- 'UUIDS="${UUIDS}${uuid%%%%-*}:"\n'
|
|
||||||
+ printf -- 'done\n'
|
|
||||||
+ } > $hookdir/initqueue/finished/90-crypt.sh
|
|
||||||
+ uuid=$luksid
|
|
||||||
+ while [ "$uuid" != "${uuid#*-}" ]; do uuid=${uuid%%-*}${uuid#*-}; done
|
|
||||||
+ printf -- '[ "x${UUIDS#*:%s:}" != "x$UUIDS" ] || exit 1\n' $uuid >> $hookdir/initqueue/finished/90-crypt.sh
|
|
||||||
+
|
|
||||||
{
|
|
||||||
printf -- '[ -e /dev/disk/by-uuid/*%s* ] || ' $luksid
|
|
||||||
printf -- 'warn "crypto LUKS UUID "%s" not found"\n' $luksid
|
|
@ -1,22 +0,0 @@
|
|||||||
From 8cf621ffd98984f44e2861969d9ed58be7233d4e Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Tue, 23 Aug 2011 12:50:03 +0200
|
|
||||||
Subject: [PATCH] dracut-functions: fix inst_dir() for non-absolute dirs
|
|
||||||
|
|
||||||
---
|
|
||||||
dracut-functions | 2 +-
|
|
||||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut-functions b/dracut-functions
|
|
||||||
index 43a6843..a3340e4 100755
|
|
||||||
--- a/dracut-functions
|
|
||||||
+++ b/dracut-functions
|
|
||||||
@@ -279,7 +279,7 @@ inst_dir() {
|
|
||||||
[[ -e ${initdir}$_dir ]] && return 0
|
|
||||||
|
|
||||||
_part=${_dir%/*}
|
|
||||||
- while ! [[ -e "${initdir}${_part}" ]]; do
|
|
||||||
+ while [[ "$_part" != "${_part%/*}" ]] && ! [[ -e "${initdir}${_part}" ]]; do
|
|
||||||
_dir="$_part $_dir"
|
|
||||||
_part=${_part%/*}
|
|
||||||
done
|
|
@ -1,26 +0,0 @@
|
|||||||
From 1073b9f93acb76993b4cc41b896325d1041841d1 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Wed, 24 Aug 2011 16:35:33 +0200
|
|
||||||
Subject: [PATCH] 90mdraid/65-md-incremental-imsm.rules: incremental run to
|
|
||||||
settled
|
|
||||||
|
|
||||||
move incremental run to settled queue again
|
|
||||||
|
|
||||||
https://bugzilla.redhat.com/show_bug.cgi?id=732967
|
|
||||||
---
|
|
||||||
modules.d/90mdraid/65-md-incremental-imsm.rules | 2 +-
|
|
||||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/90mdraid/65-md-incremental-imsm.rules b/modules.d/90mdraid/65-md-incremental-imsm.rules
|
|
||||||
index 4fc8428..7c1d503 100644
|
|
||||||
--- a/modules.d/90mdraid/65-md-incremental-imsm.rules
|
|
||||||
+++ b/modules.d/90mdraid/65-md-incremental-imsm.rules
|
|
||||||
@@ -29,7 +29,7 @@ LABEL="do_md_inc"
|
|
||||||
ENV{rd_MDADMCONF}!="?*", GOTO="md_auto_end"
|
|
||||||
|
|
||||||
RUN+="/sbin/initqueue --finished --unique --name md_finished /sbin/md_finished.sh"
|
|
||||||
-RUN+="/sbin/initqueue --timeout --onetime --unique /sbin/mdadm_auto"
|
|
||||||
+RUN+="/sbin/initqueue --settled --onetime --unique /sbin/mdadm_auto"
|
|
||||||
|
|
||||||
GOTO="md_inc_end"
|
|
||||||
|
|
@ -1,111 +0,0 @@
|
|||||||
From 82dfee9960e6285bd2811c406f4b9347dcf4e733 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Mon, 29 Aug 2011 13:11:49 +0200
|
|
||||||
Subject: [PATCH] dracut.spec: fixed rhel/fedora version checks
|
|
||||||
|
|
||||||
---
|
|
||||||
dracut.spec | 22 +++++++++++-----------
|
|
||||||
1 files changed, 11 insertions(+), 11 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut.spec b/dracut.spec
|
|
||||||
index 4a71942..76f4fe1 100644
|
|
||||||
--- a/dracut.spec
|
|
||||||
+++ b/dracut.spec
|
|
||||||
@@ -11,7 +11,7 @@ Version: xxx
|
|
||||||
Release: xxx
|
|
||||||
|
|
||||||
Summary: Initramfs generator using udev
|
|
||||||
-%if 0%{?fedora}
|
|
||||||
+%if 0%{?fedora} || 0%{?rhel} > 6
|
|
||||||
Group: System Environment/Base
|
|
||||||
%endif
|
|
||||||
%if 0%{?suse_version}
|
|
||||||
@@ -25,14 +25,14 @@ Source0: http://www.kernel.org/pub/linux/utils/boot/dracut/dracut-%{version}.tar
|
|
||||||
|
|
||||||
BuildArch: noarch
|
|
||||||
BuildRequires: dash bash
|
|
||||||
-%if 0%{?fedora}
|
|
||||||
+%if 0%{?fedora} || 0%{?rhel} > 6
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
|
||||||
%endif
|
|
||||||
%if 0%{?suse_version}
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
|
||||||
%endif
|
|
||||||
|
|
||||||
-%if 0%{?fedora}
|
|
||||||
+%if 0%{?fedora} || 0%{?rhel} > 6
|
|
||||||
BuildRequires: docbook-style-xsl docbook-dtds libxslt
|
|
||||||
%endif
|
|
||||||
|
|
||||||
@@ -73,7 +73,7 @@ Requires: sed
|
|
||||||
Requires: tar
|
|
||||||
Requires: udev
|
|
||||||
|
|
||||||
-%if 0%{?fedora}
|
|
||||||
+%if 0%{?fedora} || 0%{?rhel} > 6
|
|
||||||
Requires: util-linux >= 2.16
|
|
||||||
Requires: initscripts >= 8.63-1
|
|
||||||
Requires: plymouth >= 0.8.0-0.2009.29.09.19.1
|
|
||||||
@@ -101,7 +101,7 @@ Requires: nbd
|
|
||||||
Requires: iproute
|
|
||||||
Requires: bridge-utils
|
|
||||||
|
|
||||||
-%if 0%{?fedora}
|
|
||||||
+%if 0%{?fedora} || 0%{?rhel} > 6
|
|
||||||
Requires: iscsi-initiator-utils
|
|
||||||
Requires: nfs-utils
|
|
||||||
Requires: dhclient
|
|
||||||
@@ -119,7 +119,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}
|
|
||||||
+%if 0%{?fedora} || 0%{?rhel} > 6
|
|
||||||
%package fips
|
|
||||||
Summary: Dracut modules to build a dracut initramfs with an integrity check
|
|
||||||
Requires: %{name} = %{version}-%{release}
|
|
||||||
@@ -160,7 +160,7 @@ This package contains tools to assemble the local initrd and host configuration.
|
|
||||||
make
|
|
||||||
|
|
||||||
%install
|
|
||||||
-%if 0%{?fedora}
|
|
||||||
+%if 0%{?fedora} || 0%{?rhel} > 6
|
|
||||||
rm -rf $RPM_BUILD_ROOT
|
|
||||||
%endif
|
|
||||||
make install DESTDIR=$RPM_BUILD_ROOT sbindir=/sbin \
|
|
||||||
@@ -168,7 +168,7 @@ make install DESTDIR=$RPM_BUILD_ROOT sbindir=/sbin \
|
|
||||||
|
|
||||||
echo %{name}-%{version}-%{release} > $RPM_BUILD_ROOT/%{_datadir}/dracut/modules.d/10rpmversion/dracut-version
|
|
||||||
|
|
||||||
-%if 0%{?fedora} == 0
|
|
||||||
+%if 0%{?fedora} == 0 && 0%{?rhel} == 0
|
|
||||||
rm -fr $RPM_BUILD_ROOT/%{_datadir}/dracut/modules.d/01fips
|
|
||||||
%endif
|
|
||||||
|
|
||||||
@@ -181,7 +181,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}
|
|
||||||
+%if 0%{?fedora} || 0%{?rhel} > 6
|
|
||||||
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
|
|
||||||
@@ -214,7 +214,7 @@ rm -rf $RPM_BUILD_ROOT
|
|
||||||
%{_datadir}/dracut/dracut-functions
|
|
||||||
%{_datadir}/dracut/dracut-logger
|
|
||||||
%config(noreplace) /etc/dracut.conf
|
|
||||||
-%if 0%{?fedora} || 0%{?suse_version}
|
|
||||||
+%if 0%{?fedora} || 0%{?suse_version} || 0%{?rhel} > 6
|
|
||||||
%config /etc/dracut.conf.d/01-dist.conf
|
|
||||||
%endif
|
|
||||||
%dir /etc/dracut.conf.d
|
|
||||||
@@ -271,7 +271,7 @@ rm -rf $RPM_BUILD_ROOT
|
|
||||||
%{_datadir}/dracut/modules.d/45ifcfg
|
|
||||||
%{_datadir}/dracut/modules.d/95znet
|
|
||||||
|
|
||||||
-%if 0%{?fedora}
|
|
||||||
+%if 0%{?fedora} || 0%{?rhel} > 6
|
|
||||||
%files fips
|
|
||||||
%defattr(-,root,root,0755)
|
|
||||||
%{_datadir}/dracut/modules.d/01fips
|
|
@ -1,46 +0,0 @@
|
|||||||
From a3381af1dedf5325197dba00fb24ca36376f4c23 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Mon, 29 Aug 2011 18:30:26 +0200
|
|
||||||
Subject: [PATCH] 50plymouth: add plymouth.enable kernel command line option
|
|
||||||
|
|
||||||
---
|
|
||||||
dracut.kernel.7.xml | 8 +++++++-
|
|
||||||
modules.d/50plymouth/plymouth-pretrigger.sh | 2 +-
|
|
||||||
2 files changed, 8 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut.kernel.7.xml b/dracut.kernel.7.xml
|
|
||||||
index 894b640..b6e59e6 100644
|
|
||||||
--- a/dracut.kernel.7.xml
|
|
||||||
+++ b/dracut.kernel.7.xml
|
|
||||||
@@ -696,11 +696,17 @@ rd.znet=ctc,0.0.0600,0.0.0601,0.0.0602,protocol=bar</programlisting></para>
|
|
||||||
<title>Plymouth Boot Splash</title>
|
|
||||||
<variablelist>
|
|
||||||
<varlistentry>
|
|
||||||
- <term><envar>rd.plymouth</envar>=0</term>
|
|
||||||
+ <term><envar>plymouth.enable</envar>=0</term>
|
|
||||||
<listitem>
|
|
||||||
<para>disable the plymouth bootsplash.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
+ <varlistentry>
|
|
||||||
+ <term><envar>rd.plymouth</envar>=0</term>
|
|
||||||
+ <listitem>
|
|
||||||
+ <para>disable the plymouth bootsplash only for the initramfs.</para>
|
|
||||||
+ </listitem>
|
|
||||||
+ </varlistentry>
|
|
||||||
</variablelist>
|
|
||||||
</refsect2>
|
|
||||||
<refsect2>
|
|
||||||
diff --git a/modules.d/50plymouth/plymouth-pretrigger.sh b/modules.d/50plymouth/plymouth-pretrigger.sh
|
|
||||||
index 25ed06f..534948e 100755
|
|
||||||
--- a/modules.d/50plymouth/plymouth-pretrigger.sh
|
|
||||||
+++ b/modules.d/50plymouth/plymouth-pretrigger.sh
|
|
||||||
@@ -2,7 +2,7 @@
|
|
||||||
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
|
|
||||||
# ex: ts=8 sw=4 sts=4 et filetype=sh
|
|
||||||
|
|
||||||
-if getargbool 1 rd.plymouth -n rd_NO_PLYMOUTH; then
|
|
||||||
+if getargbool 1 plymouth.enable && getargbool 1 rd.plymouth -n rd_NO_PLYMOUTH; then
|
|
||||||
[ -c /dev/null ] || mknod -m 0666 /dev/null c 1 3
|
|
||||||
# first trigger graphics subsystem
|
|
||||||
udevadm trigger --action=add --attr-match=class=0x030000 >/dev/null 2>&1
|
|
@ -1,63 +0,0 @@
|
|||||||
From ab55a117e20d0af861e78e1e0b492775f306280d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Mon, 29 Aug 2011 19:12:12 +0200
|
|
||||||
Subject: [PATCH] 99base/init: only poll cdroms, if the kernel does support
|
|
||||||
autopolling
|
|
||||||
|
|
||||||
---
|
|
||||||
modules.d/99base/init | 34 +++++++++++++++-------------------
|
|
||||||
1 files changed, 15 insertions(+), 19 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/99base/init b/modules.d/99base/init
|
|
||||||
index 90128c7..0328903 100755
|
|
||||||
--- a/modules.d/99base/init
|
|
||||||
+++ b/modules.d/99base/init
|
|
||||||
@@ -205,7 +205,8 @@ getarg 'rd.break=pre-trigger' 'rdbreak=pre-trigger' && emergency_shell -n pre-tr
|
|
||||||
source_hook pre-trigger
|
|
||||||
|
|
||||||
# then the rest
|
|
||||||
-udevadm trigger --action=add $udevtriggeropts >/dev/null 2>&1
|
|
||||||
+udevadm trigger --type=subsystems --action=add >/dev/null 2>&1
|
|
||||||
+udevadm trigger --type=devices --action=add >/dev/null 2>&1
|
|
||||||
|
|
||||||
getarg 'rd.break=initqueue' 'rdbreak=initqueue' && emergency_shell -n initqueue "Break before initqueue"
|
|
||||||
|
|
||||||
@@ -246,25 +247,20 @@ while :; do
|
|
||||||
# no more udev jobs and queues empty.
|
|
||||||
sleep 0.5
|
|
||||||
|
|
||||||
- # dirty hack for some cdrom drives,
|
|
||||||
- # which report no medium for quiet
|
|
||||||
- # some time.
|
|
||||||
- for cdrom in /sys/block/sr*; do
|
|
||||||
- [ -e "$cdrom" ] || continue
|
|
||||||
- # skip, if cdrom medium was already found
|
|
||||||
- strstr "$(udevadm info --query=env --path=${cdrom##/sys})" \
|
|
||||||
- ID_CDROM_MEDIA && continue
|
|
||||||
-
|
|
||||||
- if [ -e "$cdrom"/events_poll_msecs -a ! -e "/tmp/.poll_${cdrom##*/}" ]; then
|
|
||||||
- msecs=$(while read a; do echo $a;done < "$cdrom"/events_poll_msecs)
|
|
||||||
- if [ "$msecs" = "-1" ]; then
|
|
||||||
- echo 250 > "$cdrom"/events_poll_msecs
|
|
||||||
- > "/tmp/.poll_${cdrom##*/}"
|
|
||||||
- fi
|
|
||||||
- else
|
|
||||||
+ if [ ! -e /sys/module/block/parameters/uevent ]; then
|
|
||||||
+ # if the kernel does not support autopolling
|
|
||||||
+ # then we have to do a
|
|
||||||
+ # dirty hack for some cdrom drives,
|
|
||||||
+ # which report no medium for quiet
|
|
||||||
+ # some time.
|
|
||||||
+ for cdrom in /sys/block/sr*; do
|
|
||||||
+ [ -e "$cdrom" ] || continue
|
|
||||||
+ # skip, if cdrom medium was already found
|
|
||||||
+ strstr "$(udevadm info --query=env --path=${cdrom##/sys})" \
|
|
||||||
+ ID_CDROM_MEDIA && continue
|
|
||||||
echo change > "$cdrom/uevent"
|
|
||||||
- fi
|
|
||||||
- done
|
|
||||||
+ done
|
|
||||||
+ fi
|
|
||||||
|
|
||||||
if [ $main_loop -gt $(($RDRETRY/2)) ]; then
|
|
||||||
for job in $hookdir/initqueue/timeout/*.sh; do
|
|
@ -1,43 +0,0 @@
|
|||||||
From f4ca564ba67d5821b756727689664604e76d1cdf Mon Sep 17 00:00:00 2001
|
|
||||||
From: John Reiser <jreiser@bitwagon.com>
|
|
||||||
Date: Mon, 29 Aug 2011 14:42:15 -0700
|
|
||||||
Subject: [PATCH] build initramfs: unclear _mpargs in instmods()
|
|
||||||
|
|
||||||
The local variable _mpargs in function instmods() in file dracut-functions
|
|
||||||
looks peculiar. The documentation is non-existent, but still ...
|
|
||||||
|
|
||||||
First, $_mpargs is not passed to modprobe via for_each_kmod_dep.
|
|
||||||
This is strange because my guess is that "_mpargs" means
|
|
||||||
"extra arguments for modprobe".
|
|
||||||
|
|
||||||
Second, the leading "--" will be lopped when a leading pathname
|
|
||||||
is stripped via
|
|
||||||
_mod=${_mod##*/}
|
|
||||||
It seems to me that a leading "--" should inhibit modification.
|
|
||||||
|
|
||||||
Here's the corresponding patch to current HEAD (from dracut-013.)
|
|
||||||
---
|
|
||||||
dracut-functions | 3 +--
|
|
||||||
1 files changed, 1 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut-functions b/dracut-functions
|
|
||||||
index a3340e4..c28766e 100755
|
|
||||||
--- a/dracut-functions
|
|
||||||
+++ b/dracut-functions
|
|
||||||
@@ -919,7 +919,6 @@ instmods() {
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
--*)
|
|
||||||
- _mod=${_mod##*/}
|
|
||||||
_mpargs+=" $_mod";;
|
|
||||||
i2o_scsi) shift; continue;; # Do not load this diagnostic-only module
|
|
||||||
*) _mod=${_mod##*/}
|
|
||||||
@@ -942,7 +941,7 @@ instmods() {
|
|
||||||
# ok, load the module, all its dependencies, and any firmware
|
|
||||||
# it may require
|
|
||||||
for_each_kmod_dep install_kmod_with_fw $_mod \
|
|
||||||
- --set-version $kernel ${_moddirname}
|
|
||||||
+ --set-version $kernel ${_moddirname} $_mpargs
|
|
||||||
((_ret+=$?))
|
|
||||||
;;
|
|
||||||
esac
|
|
@ -1,25 +0,0 @@
|
|||||||
From 2c0b5281f558276a6bd31d7acd104196139dbc16 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Tue, 30 Aug 2011 14:43:57 +0200
|
|
||||||
Subject: [PATCH] 90crypt/parse-crypt.sh: also accept the beginning of the
|
|
||||||
LUKS UUID
|
|
||||||
|
|
||||||
2e0c003435bbc0751cdf7466c0faebe7bfc7445b introduced a too strict test
|
|
||||||
for LUKS UUIDs
|
|
||||||
---
|
|
||||||
modules.d/90crypt/parse-crypt.sh | 2 +-
|
|
||||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/90crypt/parse-crypt.sh b/modules.d/90crypt/parse-crypt.sh
|
|
||||||
index 1e78aa9..2ab3a9f 100755
|
|
||||||
--- a/modules.d/90crypt/parse-crypt.sh
|
|
||||||
+++ b/modules.d/90crypt/parse-crypt.sh
|
|
||||||
@@ -38,7 +38,7 @@ else
|
|
||||||
} > $hookdir/initqueue/finished/90-crypt.sh
|
|
||||||
uuid=$luksid
|
|
||||||
while [ "$uuid" != "${uuid#*-}" ]; do uuid=${uuid%%-*}${uuid#*-}; done
|
|
||||||
- printf -- '[ "x${UUIDS#*:%s:}" != "x$UUIDS" ] || exit 1\n' $uuid >> $hookdir/initqueue/finished/90-crypt.sh
|
|
||||||
+ printf -- '[ "x${UUIDS#*:%s*:}" != "x$UUIDS" ] || exit 1\n' $uuid >> $hookdir/initqueue/finished/90-crypt.sh
|
|
||||||
|
|
||||||
{
|
|
||||||
printf -- '[ -e /dev/disk/by-uuid/*%s* ] || ' $luksid
|
|
@ -1,32 +0,0 @@
|
|||||||
From ed42e64cfc2c3d36436ef0d0634332219dcce1a2 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Tue, 30 Aug 2011 16:22:46 +0200
|
|
||||||
Subject: [PATCH] 99base/init: save and restore environment given from the
|
|
||||||
kernel
|
|
||||||
|
|
||||||
---
|
|
||||||
modules.d/99base/init | 4 ++++
|
|
||||||
1 files changed, 4 insertions(+), 0 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/99base/init b/modules.d/99base/init
|
|
||||||
index 0328903..21b9468 100755
|
|
||||||
--- a/modules.d/99base/init
|
|
||||||
+++ b/modules.d/99base/init
|
|
||||||
@@ -8,6 +8,8 @@
|
|
||||||
# Harald Hoyer <harald@redhat.com>
|
|
||||||
# Jeremy Katz <katzj@redhat.com>
|
|
||||||
|
|
||||||
+export -p > /tmp/export.orig
|
|
||||||
+
|
|
||||||
wait_for_loginit()
|
|
||||||
{
|
|
||||||
set +x
|
|
||||||
@@ -391,6 +393,8 @@ for i in $(export -p); do
|
|
||||||
unset "$i";;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
+. /tmp/export.orig
|
|
||||||
+rm -f /tmp/export.orig
|
|
||||||
|
|
||||||
initargs=""
|
|
||||||
read CLINE </proc/cmdline
|
|
@ -1,30 +0,0 @@
|
|||||||
From 1e2f60993fa3e4638ab03db1701e0b0d3f100ca0 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Tue, 30 Aug 2011 16:23:17 +0200
|
|
||||||
Subject: [PATCH] 99base/init: move switch_root breakpoint to a later point in
|
|
||||||
the script
|
|
||||||
|
|
||||||
---
|
|
||||||
modules.d/99base/init | 2 +-
|
|
||||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/99base/init b/modules.d/99base/init
|
|
||||||
index 21b9468..b666d3e 100755
|
|
||||||
--- a/modules.d/99base/init
|
|
||||||
+++ b/modules.d/99base/init
|
|
||||||
@@ -359,7 +359,6 @@ done
|
|
||||||
emergency_shell
|
|
||||||
}
|
|
||||||
|
|
||||||
-getarg rd.break rdbreak && emergency_shell -n switch_root "Break before switch_root"
|
|
||||||
|
|
||||||
if [ $UDEVVERSION -lt 168 ]; then
|
|
||||||
# stop udev queue before killing it
|
|
||||||
@@ -443,6 +442,7 @@ fi
|
|
||||||
|
|
||||||
wait_for_loginit
|
|
||||||
|
|
||||||
+getarg rd.break rdbreak && emergency_shell -n switch_root "Break before switch_root"
|
|
||||||
info "Switching root"
|
|
||||||
|
|
||||||
unset PS4
|
|
@ -1,32 +0,0 @@
|
|||||||
From 5f06f0c36701a3e3eb1c6e92ec173285dca3c922 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Wed, 31 Aug 2011 15:22:09 +0200
|
|
||||||
Subject: [PATCH] dracut-functions: hmac checksum files can be symlinks, too
|
|
||||||
|
|
||||||
use inst() instead of inst_simple() to install the hmac files
|
|
||||||
---
|
|
||||||
dracut-functions | 4 ++--
|
|
||||||
1 files changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut-functions b/dracut-functions
|
|
||||||
index c28766e..3edd4c7 100755
|
|
||||||
--- a/dracut-functions
|
|
||||||
+++ b/dracut-functions
|
|
||||||
@@ -320,7 +320,7 @@ inst_simple() {
|
|
||||||
fi
|
|
||||||
# install checksum files also
|
|
||||||
if [[ -e "${_src%/*}/.${_src##*/}.hmac" ]]; then
|
|
||||||
- inst_simple "${_src%/*}/.${_src##*/}.hmac" "${target%/*}/.${target##*/}.hmac"
|
|
||||||
+ inst "${_src%/*}/.${_src##*/}.hmac" "${target%/*}/.${target##*/}.hmac"
|
|
||||||
fi
|
|
||||||
ddebug "Installing $_src"
|
|
||||||
cp -pfL "$_src" "${initdir}$target"
|
|
||||||
@@ -360,7 +360,7 @@ inst_library() {
|
|
||||||
if [[ -L $_src ]]; then
|
|
||||||
# install checksum files also
|
|
||||||
if [[ -e "${_src%/*}/.${_src##*/}.hmac" ]]; then
|
|
||||||
- inst_simple "${_src%/*}/.${_src##*/}.hmac" "${_dest%/*}/.${_dest##*/}.hmac"
|
|
||||||
+ inst "${_src%/*}/.${_src##*/}.hmac" "${_dest%/*}/.${_dest##*/}.hmac"
|
|
||||||
fi
|
|
||||||
_reallib=$(readlink -f "$_src")
|
|
||||||
inst_simple "$_reallib" "$_reallib"
|
|
@ -1,21 +0,0 @@
|
|||||||
From f063d0e89fdededa1cf0a0f5ab62e05dfb00b2a7 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Wed, 31 Aug 2011 16:48:20 +0200
|
|
||||||
Subject: [PATCH] 95udev-rules: add input_id
|
|
||||||
|
|
||||||
---
|
|
||||||
modules.d/95udev-rules/module-setup.sh | 1 +
|
|
||||||
1 files changed, 1 insertions(+), 0 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/95udev-rules/module-setup.sh b/modules.d/95udev-rules/module-setup.sh
|
|
||||||
index 5bd5d59..876f7a3 100755
|
|
||||||
--- a/modules.d/95udev-rules/module-setup.sh
|
|
||||||
+++ b/modules.d/95udev-rules/module-setup.sh
|
|
||||||
@@ -49,6 +49,7 @@ install() {
|
|
||||||
fw_unit_symlinks.sh \
|
|
||||||
hid2hci \
|
|
||||||
path_id \
|
|
||||||
+ input_id \
|
|
||||||
scsi_id \
|
|
||||||
usb_id \
|
|
||||||
vol_id \
|
|
@ -1,50 +0,0 @@
|
|||||||
From 3f590c7840bb0897154f66a277be6bfaa63677bd Mon Sep 17 00:00:00 2001
|
|
||||||
From: John Reiser <jreiser@BitWagon.com>
|
|
||||||
Date: Fri, 26 Aug 2011 13:01:33 -0700
|
|
||||||
Subject: [PATCH] inst_simple, inst_dir: make fast case faster
|
|
||||||
|
|
||||||
This small stuff saves 1.7% per dropped statement during "dracut --profile".
|
|
||||||
Fixing the comment about /lib -> lib64 is REQUIRED!
|
|
||||||
---
|
|
||||||
dracut-functions | 16 +++++-----------
|
|
||||||
1 files changed, 5 insertions(+), 11 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut-functions b/dracut-functions
|
|
||||||
index 3edd4c7..f41fc7d 100755
|
|
||||||
--- a/dracut-functions
|
|
||||||
+++ b/dracut-functions
|
|
||||||
@@ -266,19 +266,13 @@ check_vol_slaves() {
|
|
||||||
}
|
|
||||||
|
|
||||||
# Install a directory, keeping symlinks as on the original system.
|
|
||||||
-# Example: if /lib64 points to /lib on the host, "inst_dir /lib/file"
|
|
||||||
+# Example: if /lib points to /lib64 on the host, "inst_dir /lib/file"
|
|
||||||
# will create ${initdir}/lib64, ${initdir}/lib64/file,
|
|
||||||
# and a symlink ${initdir}/lib -> lib64.
|
|
||||||
inst_dir() {
|
|
||||||
- local _file=""
|
|
||||||
- local _oldifs="$IFS"
|
|
||||||
- local _part
|
|
||||||
- local _dir="$1"
|
|
||||||
+ [[ -e ${initdir}"$1" ]] && return 0 # already there
|
|
||||||
|
|
||||||
- # fast out
|
|
||||||
- [[ -e ${initdir}$_dir ]] && return 0
|
|
||||||
-
|
|
||||||
- _part=${_dir%/*}
|
|
||||||
+ local _dir="$1" _part=${_dir%/*} _file
|
|
||||||
while [[ "$_part" != "${_part%/*}" ]] && ! [[ -e "${initdir}${_part}" ]]; do
|
|
||||||
_dir="$_part $_dir"
|
|
||||||
_part=${_part%/*}
|
|
||||||
@@ -310,9 +304,9 @@ inst_dir() {
|
|
||||||
# Location of the image dir is assumed to be $initdir
|
|
||||||
# We never overwrite the target if it exists.
|
|
||||||
inst_simple() {
|
|
||||||
- local _src target
|
|
||||||
[[ -f $1 ]] || return 1
|
|
||||||
- _src=$1 target="${2:-$1}"
|
|
||||||
+
|
|
||||||
+ local _src=$1 target="${2:-$1}"
|
|
||||||
if ! [[ -d ${initdir}$target ]]; then
|
|
||||||
[[ -e ${initdir}$target ]] && return 0
|
|
||||||
[[ -h ${initdir}$target ]] && return 0
|
|
@ -1,52 +0,0 @@
|
|||||||
From ceebd9ac769dcb869529d57fdb155cf7199251f8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: John Reiser <jreiser@BitWagon.com>
|
|
||||||
Date: Sat, 27 Aug 2011 14:43:49 -0700
|
|
||||||
Subject: [PATCH] filter_kernel_modules is a specialized
|
|
||||||
filter_kernel_modules_by_path
|
|
||||||
|
|
||||||
---
|
|
||||||
dracut-functions | 31 +++----------------------------
|
|
||||||
1 files changed, 3 insertions(+), 28 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut-functions b/dracut-functions
|
|
||||||
index f41fc7d..a72aa53 100755
|
|
||||||
--- a/dracut-functions
|
|
||||||
+++ b/dracut-functions
|
|
||||||
@@ -863,34 +863,9 @@ filter_kernel_modules_by_path () (
|
|
||||||
done
|
|
||||||
)
|
|
||||||
|
|
||||||
-# filter kernel modules to install certain modules that meet specific
|
|
||||||
-# requirements.
|
|
||||||
-# $1 = function to call with module name to filter.
|
|
||||||
-# This function will be passed the full path to the module to test.
|
|
||||||
-# The behaviour of this function can vary depending on whether $hostonly is set.
|
|
||||||
-# If it is, we will only look at modules that are already in memory.
|
|
||||||
-# If it is not, we will look at all kernel modules
|
|
||||||
-# This function returns the full filenames of modules that match $1
|
|
||||||
-filter_kernel_modules () (
|
|
||||||
- local _modname _filtercmd
|
|
||||||
- if ! [[ $hostonly ]]; then
|
|
||||||
- _filtercmd='find "$srcmods/kernel/drivers" "$srcmods/extra"'
|
|
||||||
- _filtercmd+=' "$srcmods/weak-updates" -name "*.ko" -o -name "*.ko.gz"'
|
|
||||||
- _filtercmd+=' 2>/dev/null'
|
|
||||||
- else
|
|
||||||
- _filtercmd='cut -d " " -f 1 </proc/modules|xargs modinfo -F filename '
|
|
||||||
- _filtercmd+='-k $kernel 2>/dev/null'
|
|
||||||
- fi
|
|
||||||
- for _modname in $(eval $_filtercmd); do
|
|
||||||
- case $_modname in
|
|
||||||
- *.ko) "$1" "$_modname" && echo "$_modname";;
|
|
||||||
- *.ko.gz) gzip -dc "$_modname" > $initdir/$$.ko
|
|
||||||
- $1 $initdir/$$.ko && echo "$_modname"
|
|
||||||
- rm -f $initdir/$$.ko
|
|
||||||
- ;;
|
|
||||||
- esac
|
|
||||||
- done
|
|
||||||
-)
|
|
||||||
+filter_kernel_modules () {
|
|
||||||
+ filter_kernel_modules_by_path drivers "$1"
|
|
||||||
+}
|
|
||||||
|
|
||||||
# install kernel modules along with all their dependencies.
|
|
||||||
instmods() {
|
|
@ -1,30 +0,0 @@
|
|||||||
From e6024e0030bcf35b0f0c97cdc6f259711536459b Mon Sep 17 00:00:00 2001
|
|
||||||
From: John Reiser <jreiser@BitWagon.com>
|
|
||||||
Date: Sun, 28 Aug 2011 13:24:58 -0700
|
|
||||||
Subject: [PATCH] install_kmod_with_fw: make fast case faster
|
|
||||||
|
|
||||||
---
|
|
||||||
dracut-functions | 5 +++--
|
|
||||||
1 files changed, 3 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut-functions b/dracut-functions
|
|
||||||
index a72aa53..4d3317c 100755
|
|
||||||
--- a/dracut-functions
|
|
||||||
+++ b/dracut-functions
|
|
||||||
@@ -782,13 +782,14 @@ check_module_dir() {
|
|
||||||
# Install a single kernel module along with any firmware it may require.
|
|
||||||
# $1 = full path to kernel module to install
|
|
||||||
install_kmod_with_fw() {
|
|
||||||
- local _modname=${1##*/} _fwdir _found _fw
|
|
||||||
- _modname=${_modname%.ko*}
|
|
||||||
# no need to go further if the module is already installed
|
|
||||||
[[ -e "${initdir}/lib/modules/$kernel/${1##*/lib/modules/$kernel/}" ]] \
|
|
||||||
&& return 0
|
|
||||||
inst_simple "$1" "/lib/modules/$kernel/${1##*/lib/modules/$kernel/}" \
|
|
||||||
|| return $?
|
|
||||||
+
|
|
||||||
+ local _modname=${1##*/} _fwdir _found _fw
|
|
||||||
+ _modname=${_modname%.ko*}
|
|
||||||
for _fw in $(modinfo -k $kernel -F firmware $1 2>/dev/null); do
|
|
||||||
_found=''
|
|
||||||
for _fwdir in $fw_dir; do
|
|
@ -1,239 +0,0 @@
|
|||||||
From 881eda695ed552474b9d1e5befe084d7bfab3d50 Mon Sep 17 00:00:00 2001
|
|
||||||
From: John Reiser <jreiser@BitWagon.com>
|
|
||||||
Date: Mon, 29 Aug 2011 13:40:21 -0700
|
|
||||||
Subject: [PATCH] instmods: get filenames from stdin if no args; use it
|
|
||||||
|
|
||||||
Use bash "[[ string =~ pattern ]]" instead of "egrep -q".
|
|
||||||
Replace control-dominated serial fondling
|
|
||||||
for var in $(proc1); do proc2 var; done
|
|
||||||
with data-dominated parallel pipeline
|
|
||||||
proc1 | while read var; do proc2 var; done
|
|
||||||
Together this is a large savings.
|
|
||||||
|
|
||||||
[harald@redhat.com: fixed network kernel module filter]
|
|
||||||
---
|
|
||||||
dracut-functions | 57 ++++++++++++++++++++--------
|
|
||||||
modules.d/40network/module-setup.sh | 19 +++++++--
|
|
||||||
modules.d/90kernel-modules/module-setup.sh | 11 +++++-
|
|
||||||
modules.d/90multipath/module-setup.sh | 15 +++++--
|
|
||||||
modules.d/95iscsi/module-setup.sh | 12 ++++-
|
|
||||||
5 files changed, 84 insertions(+), 30 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut-functions b/dracut-functions
|
|
||||||
index 4d3317c..556d309 100755
|
|
||||||
--- a/dracut-functions
|
|
||||||
+++ b/dracut-functions
|
|
||||||
@@ -863,49 +863,63 @@ filter_kernel_modules_by_path () (
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
)
|
|
||||||
+find_kernel_modules_by_path () (
|
|
||||||
+ if ! [[ $hostonly ]]; then
|
|
||||||
+ find "$srcmods/kernel/$1" "$srcmods/extra" "$srcmods/weak-updates" \
|
|
||||||
+ -name "*.ko" -o -name "*.ko.gz" 2>/dev/null
|
|
||||||
+ else
|
|
||||||
+ cut -d " " -f 1 </proc/modules \
|
|
||||||
+ | xargs modinfo -F filename -k $kernel 2>/dev/null
|
|
||||||
+ fi
|
|
||||||
+)
|
|
||||||
|
|
||||||
filter_kernel_modules () {
|
|
||||||
filter_kernel_modules_by_path drivers "$1"
|
|
||||||
}
|
|
||||||
|
|
||||||
+find_kernel_modules () {
|
|
||||||
+ find_kernel_modules_by_path drivers
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
# install kernel modules along with all their dependencies.
|
|
||||||
instmods() {
|
|
||||||
[[ $no_kernel = yes ]] && return
|
|
||||||
- local _mod _mpargs _moddirname
|
|
||||||
- local _ret=0
|
|
||||||
- while (($# > 0)); do
|
|
||||||
- _mod=${1%.ko*}
|
|
||||||
+
|
|
||||||
+ function inst1mod() {
|
|
||||||
+ local _mod="$1"
|
|
||||||
case $_mod in
|
|
||||||
=*)
|
|
||||||
# This introduces 2 incompatible meanings for =* arguments
|
|
||||||
# to instmods. We need to decide which one to keep.
|
|
||||||
if [[ $_mod = =ata && -f $srcmods/modules.block ]]; then
|
|
||||||
- instmods $_mpargs \
|
|
||||||
- $(egrep 'ata|ahci' "${srcmods}/modules.block")
|
|
||||||
+ ( echo -n "$_mpargs"; egrep 'ata|ahci' "${srcmods}/modules.block" ) \
|
|
||||||
+ | instmods
|
|
||||||
elif [ -f $srcmods/modules.${_mod#=} ]; then
|
|
||||||
- instmods $_mpargs $(cat ${srcmods}/modules.${_mod#=} )
|
|
||||||
+ ( echo -n "$_mpargs"; cat "${srcmods}/modules.${_mod#=}" ) \
|
|
||||||
+ | instmods
|
|
||||||
else
|
|
||||||
- instmods $_mpargs $(find "$srcmods" -path "*/${_mod#=}/*")
|
|
||||||
+ ( echo -n "$_mpargs"; find "$srcmods" -path "*/${_mod#=}/*" ) \
|
|
||||||
+ | instmods
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
- --*)
|
|
||||||
- _mpargs+=" $_mod";;
|
|
||||||
- i2o_scsi) shift; continue;; # Do not load this diagnostic-only module
|
|
||||||
+ --*) _mpargs+="${_mod##*/}"$'\n' ;; # one _mod per line; lops '--'
|
|
||||||
+ i2o_scsi) return ;; # Do not load this diagnostic-only module
|
|
||||||
*) _mod=${_mod##*/}
|
|
||||||
+
|
|
||||||
# if we are already installed, skip this module and go on
|
|
||||||
# to the next one.
|
|
||||||
- [[ -f $initdir/$1 ]] && { shift; continue; }
|
|
||||||
+ [[ -f $initdir/$1 ]] && return
|
|
||||||
+
|
|
||||||
# If we are building a host-specific initramfs and this
|
|
||||||
# module is not already loaded, move on to the next one.
|
|
||||||
[[ $hostonly ]] && ! grep -qe "\<${_mod//-/_}\>" /proc/modules \
|
|
||||||
- && ! echo $add_drivers | grep -qe "\<${_mod}\>" && {
|
|
||||||
- shift; continue
|
|
||||||
- }
|
|
||||||
+ && ! echo $add_drivers | grep -qe "\<${_mod}\>" \
|
|
||||||
+ && return
|
|
||||||
|
|
||||||
# We use '-d' option in modprobe only if modules prefix path
|
|
||||||
# differs from default '/'. This allows us to use Dracut with
|
|
||||||
# old version of modprobe which doesn't have '-d' option.
|
|
||||||
- _moddirname=${srcmods%%/lib/modules/*}
|
|
||||||
+ local _moddirname=${srcmods%%/lib/modules/*}
|
|
||||||
[[ -n ${_moddirname} ]] && _moddirname="-d ${_moddirname}/"
|
|
||||||
|
|
||||||
# ok, load the module, all its dependencies, and any firmware
|
|
||||||
@@ -915,6 +929,17 @@ instmods() {
|
|
||||||
((_ret+=$?))
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ local _mpargs _ret=0
|
|
||||||
+ if (($# == 0)); then # filenames from stdin
|
|
||||||
+ local _mod
|
|
||||||
+ while read _mod; do
|
|
||||||
+ inst1mod "${_mod%.ko*}"
|
|
||||||
+ done
|
|
||||||
+ fi
|
|
||||||
+ while (($# > 0)); do # filenames as args
|
|
||||||
+ inst1mod ${1%.ko*}
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
return $_ret
|
|
||||||
diff --git a/modules.d/40network/module-setup.sh b/modules.d/40network/module-setup.sh
|
|
||||||
index 39366b6..cb81269 100755
|
|
||||||
--- a/modules.d/40network/module-setup.sh
|
|
||||||
+++ b/modules.d/40network/module-setup.sh
|
|
||||||
@@ -24,15 +24,24 @@ depends() {
|
|
||||||
installkernel() {
|
|
||||||
# Include wired net drivers, excluding wireless
|
|
||||||
|
|
||||||
- net_module_test() {
|
|
||||||
+ net_module_filter() {
|
|
||||||
local _net_drivers='eth_type_trans|register_virtio_device'
|
|
||||||
local _unwanted_drivers='/(wireless|isdn|uwb)/'
|
|
||||||
- egrep -q $_net_drivers "$1" && \
|
|
||||||
- egrep -qv 'iw_handler_get_spy' "$1" && \
|
|
||||||
- [[ ! $1 =~ $_unwanted_drivers ]]
|
|
||||||
+ local _fname
|
|
||||||
+ while read _fname; do
|
|
||||||
+ local _fcont
|
|
||||||
+ case "$_fname" in
|
|
||||||
+ *.ko) _fcont="$(< $_fname)" ;;
|
|
||||||
+ *.ko.gz) _fcont="$(gzip -dc $_fname)" ;;
|
|
||||||
+ esac
|
|
||||||
+ [[ $_fcont =~ $_net_drivers
|
|
||||||
+ && ! $_fcont =~ iw_handler_get_spy \
|
|
||||||
+ && ! $_fname =~ $_unwanted_drivers ]] \
|
|
||||||
+ && echo "$_fname"
|
|
||||||
+ done
|
|
||||||
}
|
|
||||||
|
|
||||||
- instmods $(filter_kernel_modules_by_path drivers/net net_module_test)
|
|
||||||
+ find_kernel_modules_by_path drivers/net | net_module_filter | instmods
|
|
||||||
|
|
||||||
instmods ecb arc4
|
|
||||||
# bridge modules
|
|
||||||
diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh
|
|
||||||
index 245ec0b..9fc4248 100755
|
|
||||||
--- a/modules.d/90kernel-modules/module-setup.sh
|
|
||||||
+++ b/modules.d/90kernel-modules/module-setup.sh
|
|
||||||
@@ -9,6 +9,15 @@ installkernel() {
|
|
||||||
|
|
||||||
egrep -q "$blockfuncs" "$1"
|
|
||||||
}
|
|
||||||
+ block_module_filter() {
|
|
||||||
+ local _blockfuncs='ahci_init_controller|ata_scsi_ioctl|scsi_add_host|blk_init_queue|register_mtd_blktrans|scsi_esp_register|register_virtio_device'
|
|
||||||
+ local _f
|
|
||||||
+ while read _f; do case "$_f" in
|
|
||||||
+ *.ko) [[ $(< $_f) =~ $_blockfuncs ]] && echo "$_f" ;;
|
|
||||||
+ *.ko.gz) [[ $(gzip -dc <$_f) =~ $_blockfuncs ]] && echo "$_f" ;;
|
|
||||||
+ esac
|
|
||||||
+ done
|
|
||||||
+ }
|
|
||||||
hostonly='' instmods sr_mod sd_mod scsi_dh scsi_dh_rdac scsi_dh_emc
|
|
||||||
hostonly='' instmods pcmcia firewire-ohci
|
|
||||||
hostonly='' instmods usb_storage sdhci sdhci-pci
|
|
||||||
@@ -18,7 +27,7 @@ installkernel() {
|
|
||||||
# install unix socket support
|
|
||||||
hostonly='' instmods unix
|
|
||||||
instmods "=drivers/pcmcia" =ide "=drivers/usb/storage"
|
|
||||||
- instmods $(filter_kernel_modules block_module_test)
|
|
||||||
+ find_kernel_modules | block_module_filter | instmods
|
|
||||||
# if not on hostonly mode, install all known filesystems,
|
|
||||||
# if the required list is not set via the filesystems variable
|
|
||||||
if ! [[ $hostonly ]]; then
|
|
||||||
diff --git a/modules.d/90multipath/module-setup.sh b/modules.d/90multipath/module-setup.sh
|
|
||||||
index e9a47fc..f68b58d 100755
|
|
||||||
--- a/modules.d/90multipath/module-setup.sh
|
|
||||||
+++ b/modules.d/90multipath/module-setup.sh
|
|
||||||
@@ -33,13 +33,18 @@ depends() {
|
|
||||||
}
|
|
||||||
|
|
||||||
installkernel() {
|
|
||||||
- mp_mod_test() {
|
|
||||||
- local mpfuncs='scsi_register_device_handler|dm_dirty_log_type_register|dm_register_path_selector|dm_register_target'
|
|
||||||
- egrep -q "$mpfuncs" "$1"
|
|
||||||
+ mp_mod_filter() {
|
|
||||||
+ local _mpfuncs='scsi_register_device_handler|dm_dirty_log_type_register|dm_register_path_selector|dm_register_target'
|
|
||||||
+ local _f
|
|
||||||
+ while read _f; do case "$_f" in
|
|
||||||
+ *.ko) [[ $(< $_f) =~ $_mpfuncs ]] && echo "$_f" ;;
|
|
||||||
+ *.ko.gz) [[ $(gzip -dc <$_f) =~ $_mpfuncs ]] && echo "$_f" ;;
|
|
||||||
+ esac
|
|
||||||
+ done
|
|
||||||
}
|
|
||||||
|
|
||||||
- instmods $(filter_kernel_modules_by_path drivers/scsi mp_mod_test)
|
|
||||||
- instmods $(filter_kernel_modules_by_path drivers/md mp_mod_test)
|
|
||||||
+ ( find_kernel_modules_by_path drivers/scsi;
|
|
||||||
+ find_kernel_modules_by_path drivers/md ) | mp_mod_filter | instmods
|
|
||||||
}
|
|
||||||
|
|
||||||
install() {
|
|
||||||
diff --git a/modules.d/95iscsi/module-setup.sh b/modules.d/95iscsi/module-setup.sh
|
|
||||||
index 3db40ea..b7771ab 100755
|
|
||||||
--- a/modules.d/95iscsi/module-setup.sh
|
|
||||||
+++ b/modules.d/95iscsi/module-setup.sh
|
|
||||||
@@ -42,11 +42,17 @@ depends() {
|
|
||||||
|
|
||||||
installkernel() {
|
|
||||||
instmods iscsi_tcp iscsi_ibft crc32c
|
|
||||||
- iscsi_module_test() {
|
|
||||||
+ iscsi_module_filter() {
|
|
||||||
local _iscsifuncs='iscsi_register_transport'
|
|
||||||
- fgrep -q "$_iscsifuncs" "$1"
|
|
||||||
+ local _f
|
|
||||||
+ while read _f; do case "$_f" in
|
|
||||||
+ *.ko) [[ $(< $_f) =~ $_iscsifuncs ]] && echo "$_f" ;;
|
|
||||||
+ *.ko.gz) [[ $(gzip -dc <$_f) =~ $_iscsifuncs ]] && echo "$_f" ;;
|
|
||||||
+ esac
|
|
||||||
+ done
|
|
||||||
}
|
|
||||||
- instmods $(filter_kernel_modules_by_path drivers/scsi iscsi_module_test)
|
|
||||||
+ find_kernel_modules_by_path drivers/scsi \
|
|
||||||
+ | iscsi_module_filter | instmods
|
|
||||||
}
|
|
||||||
|
|
||||||
install() {
|
|
@ -1,38 +0,0 @@
|
|||||||
From 0024702fe7551e0de8180a5b514b31f57b4fc213 Mon Sep 17 00:00:00 2001
|
|
||||||
From: John Reiser <jreiser@BitWagon.com>
|
|
||||||
Date: Mon, 29 Aug 2011 14:46:25 -0700
|
|
||||||
Subject: [PATCH] instmods: sanity for _mpargs
|
|
||||||
|
|
||||||
---
|
|
||||||
dracut-functions | 11 +++++++----
|
|
||||||
1 files changed, 7 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut-functions b/dracut-functions
|
|
||||||
index 556d309..6c16cae 100755
|
|
||||||
--- a/dracut-functions
|
|
||||||
+++ b/dracut-functions
|
|
||||||
@@ -892,17 +892,20 @@ instmods() {
|
|
||||||
# This introduces 2 incompatible meanings for =* arguments
|
|
||||||
# to instmods. We need to decide which one to keep.
|
|
||||||
if [[ $_mod = =ata && -f $srcmods/modules.block ]]; then
|
|
||||||
- ( echo -n "$_mpargs"; egrep 'ata|ahci' "${srcmods}/modules.block" ) \
|
|
||||||
+ ( [[ "$_mpargs" ]] && echo $_mpargs
|
|
||||||
+ egrep 'ata|ahci' "${srcmods}/modules.block" ) \
|
|
||||||
| instmods
|
|
||||||
elif [ -f $srcmods/modules.${_mod#=} ]; then
|
|
||||||
- ( echo -n "$_mpargs"; cat "${srcmods}/modules.${_mod#=}" ) \
|
|
||||||
+ ( [[ "$_mpargs" ]] && echo $_mpargs
|
|
||||||
+ cat "${srcmods}/modules.${_mod#=}" ) \
|
|
||||||
| instmods
|
|
||||||
else
|
|
||||||
- ( echo -n "$_mpargs"; find "$srcmods" -path "*/${_mod#=}/*" ) \
|
|
||||||
+ ( [[ "$_mpargs" ]] && echo $_mpargs
|
|
||||||
+ find "$srcmods" -path "*/${_mod#=}/*" ) \
|
|
||||||
| instmods
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
- --*) _mpargs+="${_mod##*/}"$'\n' ;; # one _mod per line; lops '--'
|
|
||||||
+ --*) _mpargs+=" $_mod" ;;
|
|
||||||
i2o_scsi) return ;; # Do not load this diagnostic-only module
|
|
||||||
*) _mod=${_mod##*/}
|
|
||||||
|
|
@ -1,67 +0,0 @@
|
|||||||
From f9708da22345aa11bfa0d5514eefef11f542526b Mon Sep 17 00:00:00 2001
|
|
||||||
From: John Reiser <jreiser@BitWagon.com>
|
|
||||||
Date: Mon, 29 Aug 2011 16:03:35 -0700
|
|
||||||
Subject: [PATCH] instmods: factor out egrep of "FATAL: Module .* not found"
|
|
||||||
|
|
||||||
---
|
|
||||||
dracut-functions | 34 +++++++++++++++++++---------------
|
|
||||||
1 files changed, 19 insertions(+), 15 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut-functions b/dracut-functions
|
|
||||||
index 6c16cae..507f0c3 100755
|
|
||||||
--- a/dracut-functions
|
|
||||||
+++ b/dracut-functions
|
|
||||||
@@ -820,7 +820,7 @@ install_kmod_with_fw() {
|
|
||||||
for_each_kmod_dep() {
|
|
||||||
local _func=$1 _kmod=$2 _cmd _modpath _options _found=0
|
|
||||||
shift 2
|
|
||||||
- modprobe "$@" --ignore-install --show-depends $_kmod 2>"$initdir/modprobe.err" | (
|
|
||||||
+ modprobe "$@" --ignore-install --show-depends $_kmod 2>&$modprobe_stderr | (
|
|
||||||
while read _cmd _modpath _options; do
|
|
||||||
[[ $_cmd = insmod ]] || continue
|
|
||||||
$_func ${_modpath} || exit $?
|
|
||||||
@@ -829,9 +829,6 @@ for_each_kmod_dep() {
|
|
||||||
[[ $_found -eq 0 ]] && exit 1
|
|
||||||
exit 0
|
|
||||||
)
|
|
||||||
- egrep -v 'FATAL: Module .* not found.' "$initdir/modprobe.err" | derror
|
|
||||||
- rm -f "$initdir/modprobe.err"
|
|
||||||
- return $?
|
|
||||||
}
|
|
||||||
|
|
||||||
# filter kernel modules to install certain modules that meet specific
|
|
||||||
@@ -934,16 +931,23 @@ instmods() {
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
- local _mpargs _ret=0
|
|
||||||
- if (($# == 0)); then # filenames from stdin
|
|
||||||
- local _mod
|
|
||||||
- while read _mod; do
|
|
||||||
- inst1mod "${_mod%.ko*}"
|
|
||||||
+ function instmods_1() {
|
|
||||||
+ local _ret=0 _mod _mpargs
|
|
||||||
+ if (($# == 0)); then # filenames from stdin
|
|
||||||
+ while read _mod; do
|
|
||||||
+ inst1mod "${_mod%.ko*}"
|
|
||||||
+ done
|
|
||||||
+ fi
|
|
||||||
+ while (($# > 0)); do # filenames as arguments
|
|
||||||
+ inst1mod ${1%.ko*}
|
|
||||||
+ shift
|
|
||||||
done
|
|
||||||
- fi
|
|
||||||
- while (($# > 0)); do # filenames as args
|
|
||||||
- inst1mod ${1%.ko*}
|
|
||||||
- shift
|
|
||||||
- done
|
|
||||||
- return $_ret
|
|
||||||
+ return $_ret
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ # Capture all stderr from modprobe onto a new fd $modprobe_stderr,
|
|
||||||
+ # and pipe it into egrep. See REDIRECTION in bash manpage.
|
|
||||||
+ ( instmods_1 "$@" ) {modprobe_stderr}>&1 \
|
|
||||||
+ | egrep -v 'FATAL: Module .* not found.' | derror
|
|
||||||
+ return $?
|
|
||||||
}
|
|
@ -1,23 +0,0 @@
|
|||||||
From dffb93feaf6c179dbe4f854f1266fbe8529dbea9 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Thu, 1 Sep 2011 16:01:21 +0200
|
|
||||||
Subject: [PATCH] 99base/init: do not fail, when importing the original kernel
|
|
||||||
environment
|
|
||||||
|
|
||||||
---
|
|
||||||
modules.d/99base/init | 2 +-
|
|
||||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/99base/init b/modules.d/99base/init
|
|
||||||
index b666d3e..4cbe342 100755
|
|
||||||
--- a/modules.d/99base/init
|
|
||||||
+++ b/modules.d/99base/init
|
|
||||||
@@ -392,7 +392,7 @@ for i in $(export -p); do
|
|
||||||
unset "$i";;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
-. /tmp/export.orig
|
|
||||||
+. /tmp/export.orig 2>/dev/null || :
|
|
||||||
rm -f /tmp/export.orig
|
|
||||||
|
|
||||||
initargs=""
|
|
@ -1,36 +0,0 @@
|
|||||||
From 59f288ce631a7793755d16ee26fef0355098d33a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Fri, 2 Sep 2011 09:01:47 +0200
|
|
||||||
Subject: [PATCH] dracut: cp with sparse
|
|
||||||
|
|
||||||
---
|
|
||||||
dracut | 2 +-
|
|
||||||
dracut-functions | 2 +-
|
|
||||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut b/dracut
|
|
||||||
index fd36805..0e930c7 100755
|
|
||||||
--- a/dracut
|
|
||||||
+++ b/dracut
|
|
||||||
@@ -650,7 +650,7 @@ if strstr "$modules_loaded" " fips " && command -v prelink >/dev/null; then
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
-if ! ( cd "$initdir"; find . |cpio -R 0:0 -H newc -o --quiet | \
|
|
||||||
+if ! ( cd "$initdir"; find . |cpio -R 0:0 -H newc -o --quiet| \
|
|
||||||
$compress > "$outfile"; ); then
|
|
||||||
dfatal "dracut: creation of $outfile failed"
|
|
||||||
exit 1
|
|
||||||
diff --git a/dracut-functions b/dracut-functions
|
|
||||||
index 507f0c3..b11e37c 100755
|
|
||||||
--- a/dracut-functions
|
|
||||||
+++ b/dracut-functions
|
|
||||||
@@ -317,7 +317,7 @@ inst_simple() {
|
|
||||||
inst "${_src%/*}/.${_src##*/}.hmac" "${target%/*}/.${target##*/}.hmac"
|
|
||||||
fi
|
|
||||||
ddebug "Installing $_src"
|
|
||||||
- cp -pfL "$_src" "${initdir}$target"
|
|
||||||
+ cp --sparse=always -pfL "$_src" "${initdir}$target"
|
|
||||||
}
|
|
||||||
|
|
||||||
# find symlinks linked to given library file
|
|
@ -1,29 +0,0 @@
|
|||||||
From 86880b8ff70993d9a2357892b4ad5f8345b5f798 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Fri, 2 Sep 2011 09:01:05 +0200
|
|
||||||
Subject: [PATCH] 99base/init: removed cdrom polling reset code
|
|
||||||
|
|
||||||
This is done globally now.
|
|
||||||
---
|
|
||||||
modules.d/99base/init | 8 --------
|
|
||||||
1 files changed, 0 insertions(+), 8 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/99base/init b/modules.d/99base/init
|
|
||||||
index 4cbe342..fe7694a 100755
|
|
||||||
--- a/modules.d/99base/init
|
|
||||||
+++ b/modules.d/99base/init
|
|
||||||
@@ -281,14 +281,6 @@ unset queuetriggered
|
|
||||||
unset main_loop
|
|
||||||
unset RDRETRY
|
|
||||||
|
|
||||||
-# reset cdrom polling
|
|
||||||
-for cdrom in /sys/block/sr*; do
|
|
||||||
- [ -e "$cdrom" ] || continue
|
|
||||||
- if [ -e "$cdrom"/events_poll_msecs ]; then
|
|
||||||
- echo -1 > "$cdrom"/events_poll_msecs
|
|
||||||
- fi
|
|
||||||
-done
|
|
||||||
-
|
|
||||||
# pre-mount happens before we try to mount the root filesystem,
|
|
||||||
# and happens once.
|
|
||||||
getarg 'rd.break=pre-mount' 'rdbreak=pre-mount' && emergency_shell -n pre-mount "Break pre-mount"
|
|
@ -1,27 +0,0 @@
|
|||||||
From 380b8b516e719e32f766ad78c88009bc589126ec Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Fri, 2 Sep 2011 19:01:16 +0200
|
|
||||||
Subject: [PATCH] dmsquash-live-root: use blkid to determine fstype of images
|
|
||||||
|
|
||||||
prevents:
|
|
||||||
dracut: FATAL: cannot mount live image (unknown filesystem type)
|
|
||||||
https://bugzilla.redhat.com/show_bug.cgi?id=735199
|
|
||||||
---
|
|
||||||
modules.d/90dmsquash-live/dmsquash-live-root | 4 +---
|
|
||||||
1 files changed, 1 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/90dmsquash-live/dmsquash-live-root b/modules.d/90dmsquash-live/dmsquash-live-root
|
|
||||||
index 90e633c..2b6c0e2 100755
|
|
||||||
--- a/modules.d/90dmsquash-live/dmsquash-live-root
|
|
||||||
+++ b/modules.d/90dmsquash-live/dmsquash-live-root
|
|
||||||
@@ -45,9 +45,7 @@ fi
|
|
||||||
|
|
||||||
# determine filesystem type for a filesystem image
|
|
||||||
det_img_fs() {
|
|
||||||
- local _img="$1" _loop=$(losetup -f) _fs
|
|
||||||
- losetup $_loop $_img; _fs=$(det_fs $_loop); losetup -d $_loop
|
|
||||||
- echo $_fs
|
|
||||||
+ blkid -s TYPE -u noraid -o value "$1"
|
|
||||||
}
|
|
||||||
|
|
||||||
for arg in $CMDLINE; do case $arg in ro|rw) liverw=$arg ;; esac; done
|
|
@ -1,31 +0,0 @@
|
|||||||
From baa5c1136310b47ca2ca91eb377fa058dd2793c7 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Fri, 2 Sep 2011 19:16:17 +0200
|
|
||||||
Subject: [PATCH] dmsquash-live-root: load filesystem modules before mounting
|
|
||||||
loop images
|
|
||||||
|
|
||||||
might prevent https://bugzilla.redhat.com/show_bug.cgi?id=735199
|
|
||||||
---
|
|
||||||
modules.d/90dmsquash-live/dmsquash-live-root | 6 ++++--
|
|
||||||
1 files changed, 4 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/90dmsquash-live/dmsquash-live-root b/modules.d/90dmsquash-live/dmsquash-live-root
|
|
||||||
index 2b6c0e2..b704139 100755
|
|
||||||
--- a/modules.d/90dmsquash-live/dmsquash-live-root
|
|
||||||
+++ b/modules.d/90dmsquash-live/dmsquash-live-root
|
|
||||||
@@ -54,11 +54,13 @@ mkdir -m 0755 -p /run/initramfs/live
|
|
||||||
if [ -f $livedev ]; then
|
|
||||||
# no mount needed - we've already got the LiveOS image in initramfs
|
|
||||||
# check filesystem type and handle accordingly
|
|
||||||
- case `det_img_fs $livedev` in
|
|
||||||
- squashfs) SQUASHED=$livedev ;;
|
|
||||||
+ fstype=$(det_img_fs $livedev)
|
|
||||||
+ case $fstype in
|
|
||||||
+ squashfs) SQUASHED=$livedev;;
|
|
||||||
auto) die "cannot mount live image (unknown filesystem type)" ;;
|
|
||||||
*) FSIMG=$livedev ;;
|
|
||||||
esac
|
|
||||||
+ [ -e /sys/fs/$fstype ] || modprobe $fstype
|
|
||||||
else
|
|
||||||
mount -n -t $fstype -o ${liverw:-ro} $livedev /run/initramfs/live
|
|
||||||
if [ "$?" != "0" ]; then
|
|
@ -1,27 +0,0 @@
|
|||||||
From e41e5b78c6ff62797e1da5655d6acd101ddf2ab3 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Mon, 19 Sep 2011 12:20:11 +0200
|
|
||||||
Subject: [PATCH] 90dmsquash-live: do not symlink to /dev/live
|
|
||||||
|
|
||||||
/dev/live should not be used anyway
|
|
||||||
---
|
|
||||||
.../90dmsquash-live/dmsquash-live-genrules.sh | 6 ------
|
|
||||||
1 files changed, 0 insertions(+), 6 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/90dmsquash-live/dmsquash-live-genrules.sh b/modules.d/90dmsquash-live/dmsquash-live-genrules.sh
|
|
||||||
index ce1ca82..d6d0aa3 100755
|
|
||||||
--- a/modules.d/90dmsquash-live/dmsquash-live-genrules.sh
|
|
||||||
+++ b/modules.d/90dmsquash-live/dmsquash-live-genrules.sh
|
|
||||||
@@ -4,12 +4,6 @@
|
|
||||||
case "$root" in
|
|
||||||
live:/dev/*)
|
|
||||||
{
|
|
||||||
- printf 'KERNEL=="%s", SYMLINK+="live"\n' \
|
|
||||||
- ${root#live:/dev/}
|
|
||||||
- printf 'SYMLINK=="%s", SYMLINK+="live"\n' \
|
|
||||||
- ${root#live:/dev/}
|
|
||||||
- } >> $UDEVRULESD/99-live-mount.rules
|
|
||||||
- {
|
|
||||||
printf 'KERNEL=="%s", RUN+="/sbin/initqueue --settled --onetime --unique /sbin/dmsquash-live-root $env{DEVNAME}"\n' \
|
|
||||||
${root#live:/dev/}
|
|
||||||
printf 'SYMLINK=="%s", RUN+="/sbin/initqueue --settled --onetime --unique /sbin/dmsquash-live-root $env{DEVNAME}"\n' \
|
|
@ -1,24 +0,0 @@
|
|||||||
From 6d82a0470e7e340eb0353ecc3c524ded2e286e18 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Mon, 19 Sep 2011 12:20:55 +0200
|
|
||||||
Subject: [PATCH] 99base/init: remove /dev/root helper symlink
|
|
||||||
|
|
||||||
Any tool relying on /dev/root has to be fixed.
|
|
||||||
---
|
|
||||||
modules.d/99base/init | 3 +++
|
|
||||||
1 files changed, 3 insertions(+), 0 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/99base/init b/modules.d/99base/init
|
|
||||||
index fe7694a..4f59818 100755
|
|
||||||
--- a/modules.d/99base/init
|
|
||||||
+++ b/modules.d/99base/init
|
|
||||||
@@ -434,6 +434,9 @@ fi
|
|
||||||
|
|
||||||
wait_for_loginit
|
|
||||||
|
|
||||||
+# remove helper symlink
|
|
||||||
+[ -h /dev/root ] && rm -f /dev/root
|
|
||||||
+
|
|
||||||
getarg rd.break rdbreak && emergency_shell -n switch_root "Break before switch_root"
|
|
||||||
info "Switching root"
|
|
||||||
|
|
@ -1,54 +0,0 @@
|
|||||||
From ca8d4e8933e6124c2a0cf0e37f0296b80976ab33 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Mon, 19 Sep 2011 12:21:51 +0200
|
|
||||||
Subject: [PATCH] Do not use /run/udev/rules.d for udev rules
|
|
||||||
|
|
||||||
for rules, which should not be called in the real root.
|
|
||||||
|
|
||||||
Stale rules can cause this:
|
|
||||||
https://bugzilla.redhat.com/show_bug.cgi?id=734096
|
|
||||||
---
|
|
||||||
.../90dmsquash-live/dmsquash-live-genrules.sh | 2 +-
|
|
||||||
modules.d/95resume/resume-genrules.sh | 2 +-
|
|
||||||
modules.d/95rootfs-block/block-genrules.sh | 2 +-
|
|
||||||
3 files changed, 3 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/90dmsquash-live/dmsquash-live-genrules.sh b/modules.d/90dmsquash-live/dmsquash-live-genrules.sh
|
|
||||||
index d6d0aa3..aa0654b 100755
|
|
||||||
--- a/modules.d/90dmsquash-live/dmsquash-live-genrules.sh
|
|
||||||
+++ b/modules.d/90dmsquash-live/dmsquash-live-genrules.sh
|
|
||||||
@@ -8,7 +8,7 @@ case "$root" in
|
|
||||||
${root#live:/dev/}
|
|
||||||
printf 'SYMLINK=="%s", RUN+="/sbin/initqueue --settled --onetime --unique /sbin/dmsquash-live-root $env{DEVNAME}"\n' \
|
|
||||||
${root#live:/dev/}
|
|
||||||
- } >> $UDEVRULESD/99-live-squash.rules
|
|
||||||
+ } >> /etc/udev/rules.d/99-live-squash.rules
|
|
||||||
echo '[ -e /dev/root ]' > $hookdir/initqueue/finished/dmsquash.sh
|
|
||||||
;;
|
|
||||||
live:*)
|
|
||||||
diff --git a/modules.d/95resume/resume-genrules.sh b/modules.d/95resume/resume-genrules.sh
|
|
||||||
index 06b9544..e1afc26 100755
|
|
||||||
--- a/modules.d/95resume/resume-genrules.sh
|
|
||||||
+++ b/modules.d/95resume/resume-genrules.sh
|
|
||||||
@@ -17,7 +17,7 @@ if [ -n "$resume" ]; then
|
|
||||||
${resume#/dev/};
|
|
||||||
printf "SYMLINK==\"%s\", ACTION==\"add|change\", SYMLINK+=\"/dev/resume\"\n" \
|
|
||||||
${resume#/dev/};
|
|
||||||
- } >> $UDEVRULESD/99-resume-link.rules
|
|
||||||
+ } >> /etc/udev/rules.d/99-resume-link.rules
|
|
||||||
|
|
||||||
{
|
|
||||||
if [ -x /usr/sbin/resume ]; then
|
|
||||||
diff --git a/modules.d/95rootfs-block/block-genrules.sh b/modules.d/95rootfs-block/block-genrules.sh
|
|
||||||
index 4a50aac..a2310a0 100755
|
|
||||||
--- a/modules.d/95rootfs-block/block-genrules.sh
|
|
||||||
+++ b/modules.d/95rootfs-block/block-genrules.sh
|
|
||||||
@@ -8,7 +8,7 @@ if [ "${root%%:*}" = "block" ]; then
|
|
||||||
${root#block:/dev/}
|
|
||||||
printf 'SYMLINK=="%s", SYMLINK+="root"\n' \
|
|
||||||
${root#block:/dev/}
|
|
||||||
- } >> $UDEVRULESD/99-root.rules
|
|
||||||
+ } >> /etc/udev/rules.d/99-root.rules
|
|
||||||
|
|
||||||
printf '[ -e "%s" ] && { ln -s "%s" /dev/root 2>/dev/null; rm "$job"; }\n' \
|
|
||||||
"${root#block:}" "${root#block:}" > $hookdir/initqueue/settled/blocksymlink.sh
|
|
@ -1,23 +0,0 @@
|
|||||||
From d63fdc1198cd13ed68e7f08acd7ca164c9f35262 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Tue, 20 Sep 2011 10:10:29 +0200
|
|
||||||
Subject: [PATCH] 99base/init: mount securityfs with source "securityfs"
|
|
||||||
instead of dest
|
|
||||||
|
|
||||||
---
|
|
||||||
modules.d/99base/init | 2 +-
|
|
||||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/99base/init b/modules.d/99base/init
|
|
||||||
index 4f59818..fa808ca 100755
|
|
||||||
--- a/modules.d/99base/init
|
|
||||||
+++ b/modules.d/99base/init
|
|
||||||
@@ -89,7 +89,7 @@ RD_DEBUG=""
|
|
||||||
SECURITYFSDIR="/sys/kernel/security"
|
|
||||||
export SECURITYFSDIR
|
|
||||||
if ! ismounted "${SECURITYFSDIR}"; then
|
|
||||||
- mount -t securityfs -o nosuid,noexec,nodev ${SECURITYFSDIR} ${SECURITYFSDIR} >/dev/null 2>&1
|
|
||||||
+ mount -t securityfs -o nosuid,noexec,nodev securityfs ${SECURITYFSDIR} >/dev/null 2>&1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -x /lib/systemd/systemd-timestamp ]; then
|
|
@ -1,81 +0,0 @@
|
|||||||
From 16457c869d3fac6a94e204f1edac1ad9fffae55a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Tue, 20 Sep 2011 11:16:53 +0200
|
|
||||||
Subject: [PATCH] mount securityfs in a seperate dracut module
|
|
||||||
|
|
||||||
---
|
|
||||||
modules.d/96securityfs/module-setup.sh | 15 +++++++++++++++
|
|
||||||
modules.d/96securityfs/securityfs.sh | 10 ++++++++++
|
|
||||||
modules.d/98integrity/module-setup.sh | 2 +-
|
|
||||||
modules.d/99base/init | 6 ------
|
|
||||||
4 files changed, 26 insertions(+), 7 deletions(-)
|
|
||||||
create mode 100755 modules.d/96securityfs/module-setup.sh
|
|
||||||
create mode 100755 modules.d/96securityfs/securityfs.sh
|
|
||||||
|
|
||||||
diff --git a/modules.d/96securityfs/module-setup.sh b/modules.d/96securityfs/module-setup.sh
|
|
||||||
new file mode 100755
|
|
||||||
index 0000000..fbe3aa3
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/modules.d/96securityfs/module-setup.sh
|
|
||||||
@@ -0,0 +1,15 @@
|
|
||||||
+#!/bin/bash
|
|
||||||
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
|
|
||||||
+# ex: ts=8 sw=4 sts=4 et filetype=sh
|
|
||||||
+
|
|
||||||
+check() {
|
|
||||||
+ return 255
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+depends() {
|
|
||||||
+ return 0
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+install() {
|
|
||||||
+ inst_hook cmdline 60 "$moddir/securityfs.sh"
|
|
||||||
+}
|
|
||||||
diff --git a/modules.d/96securityfs/securityfs.sh b/modules.d/96securityfs/securityfs.sh
|
|
||||||
new file mode 100755
|
|
||||||
index 0000000..03ee4dd
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/modules.d/96securityfs/securityfs.sh
|
|
||||||
@@ -0,0 +1,10 @@
|
|
||||||
+#!/bin/sh
|
|
||||||
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
|
|
||||||
+# ex: ts=8 sw=4 sts=4 et filetype=sh
|
|
||||||
+
|
|
||||||
+SECURITYFSDIR="/sys/kernel/security"
|
|
||||||
+export SECURITYFSDIR
|
|
||||||
+
|
|
||||||
+if ! ismounted "${SECURITYFSDIR}"; then
|
|
||||||
+ mount -t securityfs -o nosuid,noexec,nodev securityfs ${SECURITYFSDIR} >/dev/null 2>&1
|
|
||||||
+fi
|
|
||||||
diff --git a/modules.d/98integrity/module-setup.sh b/modules.d/98integrity/module-setup.sh
|
|
||||||
index cab9027..7d5771c 100755
|
|
||||||
--- a/modules.d/98integrity/module-setup.sh
|
|
||||||
+++ b/modules.d/98integrity/module-setup.sh
|
|
||||||
@@ -7,7 +7,7 @@ check() {
|
|
||||||
}
|
|
||||||
|
|
||||||
depends() {
|
|
||||||
- echo masterkey
|
|
||||||
+ echo masterkey securityfs
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/modules.d/99base/init b/modules.d/99base/init
|
|
||||||
index fa808ca..06d61a8 100755
|
|
||||||
--- a/modules.d/99base/init
|
|
||||||
+++ b/modules.d/99base/init
|
|
||||||
@@ -86,12 +86,6 @@ RD_DEBUG=""
|
|
||||||
[ ! -d /sys/kernel ] && \
|
|
||||||
mount -t sysfs -o nosuid,noexec,nodev sysfs /sys >/dev/null 2>&1
|
|
||||||
|
|
||||||
-SECURITYFSDIR="/sys/kernel/security"
|
|
||||||
-export SECURITYFSDIR
|
|
||||||
-if ! ismounted "${SECURITYFSDIR}"; then
|
|
||||||
- mount -t securityfs -o nosuid,noexec,nodev securityfs ${SECURITYFSDIR} >/dev/null 2>&1
|
|
||||||
-fi
|
|
||||||
-
|
|
||||||
if [ -x /lib/systemd/systemd-timestamp ]; then
|
|
||||||
RD_TIMESTAMP=$(/lib/systemd/systemd-timestamp)
|
|
||||||
else
|
|
@ -1,21 +0,0 @@
|
|||||||
From 6d385c7111c81fe730c1823b232d19e8d42f50d4 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Tue, 20 Sep 2011 11:16:53 +0200
|
|
||||||
Subject: [PATCH] mount securityfs in a seperate dracut module
|
|
||||||
|
|
||||||
---
|
|
||||||
dracut.spec | 1 +
|
|
||||||
1 files changed, 1 insertions(+), 0 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut.spec b/dracut.spec
|
|
||||||
index 76f4fe1..f9848ed 100644
|
|
||||||
--- a/dracut.spec
|
|
||||||
+++ b/dracut.spec
|
|
||||||
@@ -247,6 +247,7 @@ rm -rf $RPM_BUILD_ROOT
|
|
||||||
%{_datadir}/dracut/modules.d/95zfcp
|
|
||||||
%{_datadir}/dracut/modules.d/95terminfo
|
|
||||||
%{_datadir}/dracut/modules.d/95udev-rules
|
|
||||||
+%{_datadir}/dracut/modules.d/96securityfs
|
|
||||||
%{_datadir}/dracut/modules.d/97biosdevname
|
|
||||||
%{_datadir}/dracut/modules.d/97masterkey
|
|
||||||
%{_datadir}/dracut/modules.d/98ecryptfs
|
|
@ -1,37 +0,0 @@
|
|||||||
From e3e5128cf20660c0789f9b4e2285dbc1f35f6799 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Michal Soltys <soltys@ziu.info>
|
|
||||||
Date: Tue, 6 Sep 2011 00:17:23 +0200
|
|
||||||
Subject: [PATCH] 90mdraid: adjust stock mdadm udev rules
|
|
||||||
|
|
||||||
Currently shipped mdadm rules incrementally assemble all imsm and native
|
|
||||||
raids, and do so unconditionally. This causes few issues:
|
|
||||||
|
|
||||||
- fine-grained controls in 65-md* are shadowed - for example,
|
|
||||||
mdadm.conf's presence tests or uuid checks
|
|
||||||
- 90dmraid might also conflict with 90mdraid, if user prefers the former
|
|
||||||
to handle containers
|
|
||||||
- possibly other subtle issues
|
|
||||||
|
|
||||||
This patch adjusts the behaviour.
|
|
||||||
|
|
||||||
Signed-off-by: Michal Soltys <soltys@ziu.info>
|
|
||||||
---
|
|
||||||
modules.d/90mdraid/module-setup.sh | 5 +++++
|
|
||||||
1 files changed, 5 insertions(+), 0 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/90mdraid/module-setup.sh b/modules.d/90mdraid/module-setup.sh
|
|
||||||
index de7785d..91a0769 100755
|
|
||||||
--- a/modules.d/90mdraid/module-setup.sh
|
|
||||||
+++ b/modules.d/90mdraid/module-setup.sh
|
|
||||||
@@ -50,6 +50,11 @@ install() {
|
|
||||||
|
|
||||||
if [ ! -x /lib/udev/vol_id ]; then
|
|
||||||
inst_rules 64-md-raid.rules
|
|
||||||
+ # remove incremental assembly from stock rules, so they don't shadow
|
|
||||||
+ # 65-md-inc*.rules and its fine-grained controls, or cause other problems
|
|
||||||
+ # when we explicitly don't want certain components to be incrementally
|
|
||||||
+ # assembled
|
|
||||||
+ sed -i -e '/^ENV{ID_FS_TYPE}==.*ACTION=="add".*RUN+="\/sbin\/mdadm --incremental $env{DEVNAME}"$/d' "${initdir}/lib/udev/rules.d/64-md-raid.rules"
|
|
||||||
fi
|
|
||||||
|
|
||||||
inst_rules "$moddir/65-md-incremental-imsm.rules"
|
|
@ -1,91 +0,0 @@
|
|||||||
From 5f6a71b38af7550d11c790abd5ca0bd0cf7b7f05 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Michal Soltys <soltys@ziu.info>
|
|
||||||
Date: Tue, 6 Sep 2011 00:17:25 +0200
|
|
||||||
Subject: [PATCH] 90mdraid: containers are not runnable
|
|
||||||
|
|
||||||
Remove whole "start a container logic".
|
|
||||||
|
|
||||||
Containers once assembled, always remain in 'inactive' state.
|
|
||||||
Any attempt to run a container with mdadm -IR is a no-op, and any
|
|
||||||
attempt with just mdadm -R ends with an error.
|
|
||||||
|
|
||||||
Signed-off-by: Michal Soltys <soltys@ziu.info>
|
|
||||||
---
|
|
||||||
modules.d/90mdraid/65-md-incremental-imsm.rules | 20 --------------------
|
|
||||||
modules.d/90mdraid/md_finished.sh | 2 +-
|
|
||||||
modules.d/90mdraid/mdcontainer_start.sh | 12 ------------
|
|
||||||
modules.d/90mdraid/module-setup.sh | 1 -
|
|
||||||
4 files changed, 1 insertions(+), 34 deletions(-)
|
|
||||||
delete 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 7c1d503..5e94a57 100644
|
|
||||||
--- a/modules.d/90mdraid/65-md-incremental-imsm.rules
|
|
||||||
+++ b/modules.d/90mdraid/65-md-incremental-imsm.rules
|
|
||||||
@@ -66,23 +66,3 @@ RUN+="/sbin/initqueue --finished --unique --name md_finished /sbin/md_finished.s
|
|
||||||
RUN+="/sbin/initqueue --timeout --onetime --unique /sbin/mdraid_start"
|
|
||||||
|
|
||||||
LABEL="end_raidstart"
|
|
||||||
-
|
|
||||||
-#
|
|
||||||
-# Handle container raid arrays
|
|
||||||
-#
|
|
||||||
-ACTION=="add|change", \
|
|
||||||
- KERNEL=="md[0-9]*|md/*", \
|
|
||||||
- ENV{DEVTYPE}!="partition", \
|
|
||||||
- ENV{MD_LEVEL}=="container", \
|
|
||||||
- ENV{rd_MDADMCONF}!="?*", \
|
|
||||||
- ENV{rd_NO_MD}!="?*", \
|
|
||||||
- GOTO="do_container"
|
|
||||||
-
|
|
||||||
-GOTO="end_container"
|
|
||||||
-
|
|
||||||
-LABEL="do_container"
|
|
||||||
-
|
|
||||||
-RUN+="/sbin/initqueue --finished --unique --name md_finished /sbin/md_finished.sh"
|
|
||||||
-RUN+="/sbin/initqueue --timeout --onetime --unique --name mdcontainer_start-%k /sbin/mdcontainer_start $env{DEVNAME}"
|
|
||||||
-
|
|
||||||
-LABEL="end_container"
|
|
||||||
diff --git a/modules.d/90mdraid/md_finished.sh b/modules.d/90mdraid/md_finished.sh
|
|
||||||
index cde0966..ce355be 100755
|
|
||||||
--- a/modules.d/90mdraid/md_finished.sh
|
|
||||||
+++ b/modules.d/90mdraid/md_finished.sh
|
|
||||||
@@ -1,7 +1,7 @@
|
|
||||||
#!/bin/sh
|
|
||||||
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
|
|
||||||
# ex: ts=8 sw=4 sts=4 et filetype=sh
|
|
||||||
-for f in $hookdir/initqueue/settled/mdcontainer_start* $hookdir/initqueue/settled/mdraid_start* $hookdir/initqueue/settled/mdadm_auto*; do
|
|
||||||
+for f in $hookdir/initqueue/settled/mdraid_start* $hookdir/initqueue/settled/mdadm_auto*; do
|
|
||||||
[ -e $f ] && exit 1
|
|
||||||
done
|
|
||||||
|
|
||||||
diff --git a/modules.d/90mdraid/mdcontainer_start.sh b/modules.d/90mdraid/mdcontainer_start.sh
|
|
||||||
deleted file mode 100755
|
|
||||||
index e7dd3ef..0000000
|
|
||||||
--- a/modules.d/90mdraid/mdcontainer_start.sh
|
|
||||||
+++ /dev/null
|
|
||||||
@@ -1,12 +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
|
|
||||||
-type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
|
|
||||||
-
|
|
||||||
-md=$1
|
|
||||||
-udevadm control --stop-exec-queue
|
|
||||||
-# and activate any containers
|
|
||||||
-mdadm -IR $md 2>&1 | vinfo
|
|
||||||
-ln -s $(command -v mdraid-cleanup) $hookdir/pre-pivot/30-mdraid-cleanup.sh 2>/dev/null
|
|
||||||
-ln -s $(command -v mdraid-cleanup) $hookdir/pre-pivot/31-mdraid-cleanup.sh 2>/dev/null
|
|
||||||
-udevadm control --start-exec-queue
|
|
||||||
diff --git a/modules.d/90mdraid/module-setup.sh b/modules.d/90mdraid/module-setup.sh
|
|
||||||
index 91a0769..2dba8cb 100755
|
|
||||||
--- a/modules.d/90mdraid/module-setup.sh
|
|
||||||
+++ b/modules.d/90mdraid/module-setup.sh
|
|
||||||
@@ -77,7 +77,6 @@ install() {
|
|
||||||
inst_hook pre-udev 30 "$moddir/mdmon-pre-udev.sh"
|
|
||||||
|
|
||||||
inst "$moddir/mdraid_start.sh" /sbin/mdraid_start
|
|
||||||
- inst "$moddir/mdcontainer_start.sh" /sbin/mdcontainer_start
|
|
||||||
inst "$moddir/mdadm_auto.sh" /sbin/mdadm_auto
|
|
||||||
inst "$moddir/md_finished.sh" /sbin/md_finished.sh
|
|
||||||
inst_hook pre-trigger 30 "$moddir/parse-md.sh"
|
|
@ -1,66 +0,0 @@
|
|||||||
From 9383421c1cfc5fe1bc94cf3d3194bd96ee503628 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Michal Soltys <soltys@ziu.info>
|
|
||||||
Date: Tue, 6 Sep 2011 00:17:26 +0200
|
|
||||||
Subject: [PATCH] 90mdraid: fix/adjust mdraid-cleanup
|
|
||||||
|
|
||||||
Stop both arrays (first pass) and containers (second pass).
|
|
||||||
Loop only over /dev/md[0-9]*
|
|
||||||
Call cleanup script only once, make sure it's after crypt cleanup.
|
|
||||||
|
|
||||||
Signed-off-by: Michal Soltys <soltys@ziu.info>
|
|
||||||
---
|
|
||||||
modules.d/90mdraid/mdraid-cleanup.sh | 30 +++++++++++++++++-------------
|
|
||||||
modules.d/90mdraid/mdraid_start.sh | 1 -
|
|
||||||
2 files changed, 17 insertions(+), 14 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/90mdraid/mdraid-cleanup.sh b/modules.d/90mdraid/mdraid-cleanup.sh
|
|
||||||
index add02e0..8fc54e2 100755
|
|
||||||
--- a/modules.d/90mdraid/mdraid-cleanup.sh
|
|
||||||
+++ b/modules.d/90mdraid/mdraid-cleanup.sh
|
|
||||||
@@ -2,18 +2,22 @@
|
|
||||||
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
|
|
||||||
# ex: ts=8 sw=4 sts=4 et filetype=sh
|
|
||||||
|
|
||||||
-# stop everything which is not busy
|
|
||||||
-for i in /dev/md* /dev/md/*; do
|
|
||||||
- [ -b $i ] || continue
|
|
||||||
+type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
|
|
||||||
|
|
||||||
- mddetail=$(udevadm info --query=property --name=$i)
|
|
||||||
- case "$mddetail" in
|
|
||||||
- *MD_LEVEL=container*)
|
|
||||||
- ;;
|
|
||||||
- *DEVTYPE=partition*)
|
|
||||||
- ;;
|
|
||||||
- *)
|
|
||||||
- mdadm --stop $i >/dev/null 2>&1
|
|
||||||
- ;;
|
|
||||||
- esac
|
|
||||||
+containers=""
|
|
||||||
+for md in /dev/md[0-9]*; do
|
|
||||||
+ [ -b "$md" ] || continue
|
|
||||||
+ udevinfo="$(udevadm info --query=env --name=$md)"
|
|
||||||
+ strstr "$udevinfo" "DEVTYPE=partition" && continue
|
|
||||||
+ if strstr "$udevinfo" "MD_LEVEL=container"; then
|
|
||||||
+ containers="$containers $md"
|
|
||||||
+ continue
|
|
||||||
+ fi
|
|
||||||
+ mdadm -S "$md" >/dev/null 2>&1
|
|
||||||
done
|
|
||||||
+
|
|
||||||
+for md in $containers; do
|
|
||||||
+ mdadm -S "$md" >/dev/null 2>&1
|
|
||||||
+done
|
|
||||||
+
|
|
||||||
+unset containers udevinfo
|
|
||||||
diff --git a/modules.d/90mdraid/mdraid_start.sh b/modules.d/90mdraid/mdraid_start.sh
|
|
||||||
index 4aa7f82..4c0255e 100755
|
|
||||||
--- a/modules.d/90mdraid/mdraid_start.sh
|
|
||||||
+++ b/modules.d/90mdraid/mdraid_start.sh
|
|
||||||
@@ -21,6 +21,5 @@ for md in /dev/md[0-9]* /dev/md/*; do
|
|
||||||
done
|
|
||||||
unset udevinfo
|
|
||||||
|
|
||||||
-ln -s $(command -v mdraid-cleanup) $hookdir/pre-pivot/30-mdraid-cleanup.sh 2>/dev/null
|
|
||||||
ln -s $(command -v mdraid-cleanup) $hookdir/pre-pivot/31-mdraid-cleanup.sh 2>/dev/null
|
|
||||||
udevadm control --start-exec-queue
|
|
@ -1,136 +0,0 @@
|
|||||||
From 66426469d024b7760f59051af287e11ec6a94c1f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Michal Soltys <soltys@ziu.info>
|
|
||||||
Date: Tue, 6 Sep 2011 00:17:27 +0200
|
|
||||||
Subject: [PATCH] 90mdraid: fix/adjust force-run script
|
|
||||||
|
|
||||||
1) mdadm -As --auto=yes --run 2>&1 | vinfo (removed)
|
|
||||||
|
|
||||||
Currently such auto assembly will not complete or force-run partially
|
|
||||||
assembled arrays. It might assemble "concurrent" separate array and
|
|
||||||
force-run it, if possible (though the chances of suddenly showing
|
|
||||||
missing components in this scenario - a script run after udev timeout -
|
|
||||||
are pretty thin). See [1] for details. Also see #3 below.
|
|
||||||
|
|
||||||
2) mdadm -Is --run 2>&1 (removed)
|
|
||||||
|
|
||||||
This will only force-run native arrays - arrays in containers will not
|
|
||||||
be affected. See [1] for details. Also see #3 below.
|
|
||||||
|
|
||||||
3) mdadm -R run loop (implicitly handles #1 & #2)
|
|
||||||
|
|
||||||
This loop does everywthing that #1 & #2 are expected to do. Thus, the
|
|
||||||
above invocations are simply redundant and this is the most safe and
|
|
||||||
flexible option.
|
|
||||||
|
|
||||||
Also, it shouldn't be necessary to go under md/ directory, as those are
|
|
||||||
just symlinks to /dev/md[0-9]*.
|
|
||||||
|
|
||||||
Certain checks were changed to strict ones (array state, degraded state)
|
|
||||||
instead of relying on env tricks.
|
|
||||||
|
|
||||||
'cat' was added explicitly to installed programs (it has been used
|
|
||||||
implicitly in shutdown script either way)
|
|
||||||
|
|
||||||
4) mdmon bug
|
|
||||||
|
|
||||||
See [1] for details as well. In short - force-run arrays in containers
|
|
||||||
will not have mdmon started, so we do that manually.
|
|
||||||
|
|
||||||
5) stop/run queue magic
|
|
||||||
|
|
||||||
Also removed. mdadm -R will only cause change events to the array
|
|
||||||
itself, and they should not be an issue.
|
|
||||||
|
|
||||||
[1] http://article.gmane.org/gmane.linux.raid/35133
|
|
||||||
|
|
||||||
Signed-off-by: Michal Soltys <soltys@ziu.info>
|
|
||||||
---
|
|
||||||
modules.d/90mdraid/mdraid_start.sh | 51 ++++++++++++++++++++++--------------
|
|
||||||
modules.d/90mdraid/module-setup.sh | 2 +-
|
|
||||||
modules.d/90mdraid/parse-md.sh | 1 +
|
|
||||||
3 files changed, 33 insertions(+), 21 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/90mdraid/mdraid_start.sh b/modules.d/90mdraid/mdraid_start.sh
|
|
||||||
index 4c0255e..be5a3ce 100755
|
|
||||||
--- a/modules.d/90mdraid/mdraid_start.sh
|
|
||||||
+++ b/modules.d/90mdraid/mdraid_start.sh
|
|
||||||
@@ -3,23 +3,34 @@
|
|
||||||
# ex: ts=8 sw=4 sts=4 et filetype=sh
|
|
||||||
|
|
||||||
type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
|
|
||||||
-# run mdadm if udev has settled
|
|
||||||
-info "Assembling MD RAID arrays"
|
|
||||||
-udevadm control --stop-exec-queue
|
|
||||||
-mdadm -As --auto=yes --run 2>&1 | vinfo
|
|
||||||
-mdadm -Is --run 2>&1 | vinfo
|
|
||||||
-
|
|
||||||
-# there could still be some leftover devices
|
|
||||||
-# which have had a container added
|
|
||||||
-for md in /dev/md[0-9]* /dev/md/*; do
|
|
||||||
- [ -b "$md" ] || continue
|
|
||||||
- udevinfo="$(udevadm info --query=env --name=$md)"
|
|
||||||
- strstr "$udevinfo" "MD_UUID=" && continue
|
|
||||||
- strstr "$udevinfo" "MD_LEVEL=container" && continue
|
|
||||||
- strstr "$udevinfo" "DEVTYPE=partition" && continue
|
|
||||||
- mdadm --run "$md" 2>&1 | vinfo
|
|
||||||
-done
|
|
||||||
-unset udevinfo
|
|
||||||
-
|
|
||||||
-ln -s $(command -v mdraid-cleanup) $hookdir/pre-pivot/31-mdraid-cleanup.sh 2>/dev/null
|
|
||||||
-udevadm control --start-exec-queue
|
|
||||||
+_md_force_run() {
|
|
||||||
+ local _udevinfo
|
|
||||||
+ local _path_s
|
|
||||||
+ local _path_d
|
|
||||||
+ # try to force-run anything not running yet
|
|
||||||
+ for md in /dev/md[0-9]*; do
|
|
||||||
+ [ -b "$md" ] || continue
|
|
||||||
+ _udevinfo="$(udevadm info --query=env --name="$md")"
|
|
||||||
+ strstr "$_udevinfo" "MD_LEVEL=container" && continue
|
|
||||||
+ strstr "$_udevinfo" "DEVTYPE=partition" && continue
|
|
||||||
+
|
|
||||||
+ _path_s="$(udevadm info -q path -n "$md")/md/array_state"
|
|
||||||
+ [ ! -r "$_path_s" ] && continue
|
|
||||||
+
|
|
||||||
+ # inactive ?
|
|
||||||
+ [ "$(cat "$_path_s")" != "inactive" ] && continue
|
|
||||||
+
|
|
||||||
+ mdadm -R "$md" 2>&1 | vinfo
|
|
||||||
+
|
|
||||||
+ # still inactive ?
|
|
||||||
+ [ "$(cat "$_path_s")" = "inactive" ] && continue
|
|
||||||
+
|
|
||||||
+ _path_d="${_path_s%/*}/degraded"
|
|
||||||
+ [ ! -r "$_path_d" ] && continue
|
|
||||||
+
|
|
||||||
+ # workaround for mdmon bug
|
|
||||||
+ [ "$(cat "$_path_d")" -gt "0" ] && mdmon --takeover "$md"
|
|
||||||
+ done
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+_md_force_run
|
|
||||||
diff --git a/modules.d/90mdraid/module-setup.sh b/modules.d/90mdraid/module-setup.sh
|
|
||||||
index 2dba8cb..cfc2a20 100755
|
|
||||||
--- a/modules.d/90mdraid/module-setup.sh
|
|
||||||
+++ b/modules.d/90mdraid/module-setup.sh
|
|
||||||
@@ -37,7 +37,7 @@ installkernel() {
|
|
||||||
}
|
|
||||||
|
|
||||||
install() {
|
|
||||||
- dracut_install mdadm partx
|
|
||||||
+ dracut_install mdadm partx cat
|
|
||||||
|
|
||||||
|
|
||||||
# XXX: mdmon really needs to run as non-root?
|
|
||||||
diff --git a/modules.d/90mdraid/parse-md.sh b/modules.d/90mdraid/parse-md.sh
|
|
||||||
index 6d1b615..63f3278 100755
|
|
||||||
--- a/modules.d/90mdraid/parse-md.sh
|
|
||||||
+++ b/modules.d/90mdraid/parse-md.sh
|
|
||||||
@@ -34,6 +34,7 @@ fi
|
|
||||||
|
|
||||||
if ! getargbool 1 rd.md.conf -n rd_NO_MDADMCONF; then
|
|
||||||
rm -f /etc/mdadm/mdadm.conf /etc/mdadm.conf
|
|
||||||
+ ln -s $(command -v mdraid-cleanup) $hookdir/pre-pivot/31-mdraid-cleanup.sh 2>/dev/null
|
|
||||||
fi
|
|
||||||
|
|
||||||
# noiswmd nodmraid for anaconda / rc.sysinit compatibility
|
|
@ -1,140 +0,0 @@
|
|||||||
From cf5891424ef026eede69606a918dadf5560095fd Mon Sep 17 00:00:00 2001
|
|
||||||
From: Michal Soltys <soltys@ziu.info>
|
|
||||||
Date: Tue, 6 Sep 2011 00:17:24 +0200
|
|
||||||
Subject: [PATCH] 90(md|dm)raid: recognize ddf container
|
|
||||||
|
|
||||||
This patch adds ddf support, consistently with imsm/isw options.
|
|
||||||
|
|
||||||
Signed-off-by: Michal Soltys <soltys@ziu.info>
|
|
||||||
---
|
|
||||||
dracut.kernel.7.xml | 6 ++++++
|
|
||||||
modules.d/90dmraid/61-dmraid-imsm.rules | 1 +
|
|
||||||
modules.d/90dmraid/parse-dm.sh | 4 ++++
|
|
||||||
modules.d/90mdraid/65-md-incremental-imsm.rules | 3 ++-
|
|
||||||
modules.d/90mdraid/md-noddf.sh | 5 +++++
|
|
||||||
modules.d/90mdraid/md-noimsm.sh | 2 +-
|
|
||||||
modules.d/90mdraid/module-setup.sh | 6 +++++-
|
|
||||||
modules.d/90mdraid/parse-md.sh | 6 ++++++
|
|
||||||
8 files changed, 30 insertions(+), 3 deletions(-)
|
|
||||||
create mode 100755 modules.d/90mdraid/md-noddf.sh
|
|
||||||
|
|
||||||
diff --git a/dracut.kernel.7.xml b/dracut.kernel.7.xml
|
|
||||||
index b6e59e6..8d50d94 100644
|
|
||||||
--- a/dracut.kernel.7.xml
|
|
||||||
+++ b/dracut.kernel.7.xml
|
|
||||||
@@ -343,6 +343,12 @@ This parameter can be specified multiple times.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
+ <term><envar>rd.md.ddf</envar>=0</term>
|
|
||||||
+ <listitem>
|
|
||||||
+ <para>disable MD RAID for SNIA ddf raids, use DM RAID instead</para>
|
|
||||||
+ </listitem>
|
|
||||||
+ </varlistentry>
|
|
||||||
+ <varlistentry>
|
|
||||||
<term>
|
|
||||||
<envar>rd.md.conf</envar>=0
|
|
||||||
</term>
|
|
||||||
diff --git a/modules.d/90dmraid/61-dmraid-imsm.rules b/modules.d/90dmraid/61-dmraid-imsm.rules
|
|
||||||
index d87fce7..73ba58e 100644
|
|
||||||
--- a/modules.d/90dmraid/61-dmraid-imsm.rules
|
|
||||||
+++ b/modules.d/90dmraid/61-dmraid-imsm.rules
|
|
||||||
@@ -10,6 +10,7 @@ ENV{ID_FS_TYPE}=="linux_raid_member", GOTO="dm_end"
|
|
||||||
ENV{ID_FS_TYPE}!="*_raid_member", , GOTO="dm_end"
|
|
||||||
|
|
||||||
ENV{ID_FS_TYPE}=="isw_raid_member", ENV{rd_NO_MDIMSM}!="?*", GOTO="dm_end"
|
|
||||||
+ENV{ID_FS_TYPE}=="ddf_raid_member", ENV{rd_NO_MDDDF}!="?*", GOTO="dm_end"
|
|
||||||
|
|
||||||
ENV{rd_NO_DM}=="?*", GOTO="dm_end"
|
|
||||||
|
|
||||||
diff --git a/modules.d/90dmraid/parse-dm.sh b/modules.d/90dmraid/parse-dm.sh
|
|
||||||
index 059c396..fe38d35 100755
|
|
||||||
--- a/modules.d/90dmraid/parse-dm.sh
|
|
||||||
+++ b/modules.d/90dmraid/parse-dm.sh
|
|
||||||
@@ -12,3 +12,7 @@ if ! command -v mdadm >/dev/null || ! getargbool 1 rd.md.imsm -n rd_NO_MDIMSM |
|
|
||||||
udevproperty rd_NO_MDIMSM=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
+if ! command -v mdadm >/dev/null || ! getargbool 1 rd.md.ddf -n rd_NO_MDDDF || getarg noddfmd; then
|
|
||||||
+ info "rd.md.ddf=0: no MD RAID for SNIA ddf raids"
|
|
||||||
+ udevproperty rd_NO_MDDDF=1
|
|
||||||
+fi
|
|
||||||
diff --git a/modules.d/90mdraid/65-md-incremental-imsm.rules b/modules.d/90mdraid/65-md-incremental-imsm.rules
|
|
||||||
index 5e94a57..bb030cf 100644
|
|
||||||
--- a/modules.d/90mdraid/65-md-incremental-imsm.rules
|
|
||||||
+++ b/modules.d/90mdraid/65-md-incremental-imsm.rules
|
|
||||||
@@ -4,9 +4,10 @@
|
|
||||||
|
|
||||||
ACTION!="add|change", GOTO="md_inc_end"
|
|
||||||
SUBSYSTEM!="block", GOTO="md_inc_end"
|
|
||||||
-ENV{ID_FS_TYPE}!="linux_raid_member|isw_raid_member", GOTO="md_inc_end"
|
|
||||||
+ENV{ID_FS_TYPE}!="*_raid_member", GOTO="md_inc_end"
|
|
||||||
|
|
||||||
ENV{ID_FS_TYPE}=="isw_raid_member", ENV{rd_NO_MDIMSM}=="?*", GOTO="md_inc_end"
|
|
||||||
+ENV{ID_FS_TYPE}=="ddf_raid_member", ENV{rd_NO_MDDDF}=="?*", GOTO="md_inc_end"
|
|
||||||
|
|
||||||
ENV{rd_NO_MD}=="?*", GOTO="md_inc_end"
|
|
||||||
|
|
||||||
diff --git a/modules.d/90mdraid/md-noddf.sh b/modules.d/90mdraid/md-noddf.sh
|
|
||||||
new file mode 100755
|
|
||||||
index 0000000..bc46dd7
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/modules.d/90mdraid/md-noddf.sh
|
|
||||||
@@ -0,0 +1,5 @@
|
|
||||||
+#!/bin/sh
|
|
||||||
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
|
|
||||||
+# ex: ts=8 sw=4 sts=4 et filetype=sh
|
|
||||||
+info "rd.md.ddf=0: no MD RAID for SNIA ddf raids"
|
|
||||||
+udevproperty rd_NO_MDDDF=1
|
|
||||||
diff --git a/modules.d/90mdraid/md-noimsm.sh b/modules.d/90mdraid/md-noimsm.sh
|
|
||||||
index bc9cf7f..8272f86 100755
|
|
||||||
--- a/modules.d/90mdraid/md-noimsm.sh
|
|
||||||
+++ b/modules.d/90mdraid/md-noimsm.sh
|
|
||||||
@@ -2,4 +2,4 @@
|
|
||||||
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
|
|
||||||
# ex: ts=8 sw=4 sts=4 et filetype=sh
|
|
||||||
info "rd.md.imsm=0: no MD RAID for imsm/isw raids"
|
|
||||||
-udevproperty rd_NO_MDIMSM=1
|
|
||||||
\ No newline at end of file
|
|
||||||
+udevproperty rd_NO_MDIMSM=1
|
|
||||||
diff --git a/modules.d/90mdraid/module-setup.sh b/modules.d/90mdraid/module-setup.sh
|
|
||||||
index cfc2a20..5c526a0 100755
|
|
||||||
--- a/modules.d/90mdraid/module-setup.sh
|
|
||||||
+++ b/modules.d/90mdraid/module-setup.sh
|
|
||||||
@@ -20,7 +20,7 @@ check() {
|
|
||||||
check_block_and_slaves is_mdraid "$_rootdev" || return 1
|
|
||||||
else
|
|
||||||
# root is not on a block device, use the shotgun approach
|
|
||||||
- blkid | egrep -q '(linux|isw)_raid' || return 1
|
|
||||||
+ blkid | grep -q '"[^"]*_raid_member"' || return 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -59,9 +59,13 @@ install() {
|
|
||||||
|
|
||||||
inst_rules "$moddir/65-md-incremental-imsm.rules"
|
|
||||||
|
|
||||||
+ # guard against pre-3.0 mdadm versions, that can't handle containers
|
|
||||||
if ! mdadm -Q -e imsm /dev/null &> /dev/null; then
|
|
||||||
inst_hook pre-trigger 30 "$moddir/md-noimsm.sh"
|
|
||||||
fi
|
|
||||||
+ if ! mdadm -Q -e ddf /dev/null &> /dev/null; then
|
|
||||||
+ inst_hook pre-trigger 30 "$moddir/md-noddf.sh"
|
|
||||||
+ fi
|
|
||||||
|
|
||||||
if [[ $hostonly ]] || [[ $mdadmconf = "yes" ]]; then
|
|
||||||
if [ -f /etc/mdadm.conf ]; then
|
|
||||||
diff --git a/modules.d/90mdraid/parse-md.sh b/modules.d/90mdraid/parse-md.sh
|
|
||||||
index 63f3278..33d93dc 100755
|
|
||||||
--- a/modules.d/90mdraid/parse-md.sh
|
|
||||||
+++ b/modules.d/90mdraid/parse-md.sh
|
|
||||||
@@ -43,3 +43,9 @@ if ! getargbool 1 rd.md.imsm -n rd_NO_MDIMSM || getarg noiswmd || getarg nodmrai
|
|
||||||
info "no MD RAID for imsm/isw raids"
|
|
||||||
udevproperty rd_NO_MDIMSM=1
|
|
||||||
fi
|
|
||||||
+
|
|
||||||
+# same thing with ddf containers
|
|
||||||
+if ! getargbool 1 rd.md.ddf -n rd_NO_MDDDF || getarg noddfmd || getarg nodmraid; then
|
|
||||||
+ info "no MD RAID for SNIA ddf raids"
|
|
||||||
+ udevproperty rd_NO_MDDDF=1
|
|
||||||
+fi
|
|
@ -1,200 +0,0 @@
|
|||||||
From a025cc17f0d8145492ffbb37735deca208e768bd Mon Sep 17 00:00:00 2001
|
|
||||||
From: Michal Soltys <soltys@ziu.info>
|
|
||||||
Date: Tue, 6 Sep 2011 00:17:28 +0200
|
|
||||||
Subject: [PATCH] 90mdraid: fix/adjust 65-md* rules and related scripts
|
|
||||||
|
|
||||||
Reworked the flow of the rules file a bit, removed redundant tests, also
|
|
||||||
should be easier to follow. It's much shorter now as well, a bit more
|
|
||||||
similar to 90lvm script - both revolve around same concepts after all.
|
|
||||||
|
|
||||||
There's no reason to treat conf-assembled arrays differently from
|
|
||||||
incremental ones. Once we hit timeout in init's udev loop, we can use
|
|
||||||
common script (mdraid_start.sh) to try force inactive arrays
|
|
||||||
into degraded mode.
|
|
||||||
|
|
||||||
md-finished.sh was kind-of out of place - it didn't really wait for any
|
|
||||||
particular device(s) to show up, just watched if onetime mdadm scripts
|
|
||||||
are still in place. Furthermore, after moving mdraid_start to --timeout
|
|
||||||
initqueue, it didn't really have too much to watch at all, besides
|
|
||||||
mdadm_auto (and that served no purpose, as we do wait for concrete
|
|
||||||
devices).
|
|
||||||
|
|
||||||
Either way, with stock 64-md fixes, current version of 65-md*.rules does
|
|
||||||
the following:
|
|
||||||
|
|
||||||
- limits assembly to certain uuids, if specified
|
|
||||||
- watch for no ddf/imsm
|
|
||||||
- if mdadm.conf => setup onetime -As script, without forced --run option
|
|
||||||
- if !mdadm.conf => incrementally assemble
|
|
||||||
- for both cases, setup timeout script, run-forcing arrays as a last resort
|
|
||||||
|
|
||||||
Signed-off-by: Michal Soltys <soltys@ziu.info>
|
|
||||||
---
|
|
||||||
modules.d/90mdraid/65-md-incremental-imsm.rules | 79 ++++++++---------------
|
|
||||||
modules.d/90mdraid/md_finished.sh | 9 ---
|
|
||||||
modules.d/90mdraid/mdadm_auto.sh | 2 +-
|
|
||||||
modules.d/90mdraid/module-setup.sh | 1 -
|
|
||||||
modules.d/90mdraid/parse-md.sh | 8 ++-
|
|
||||||
5 files changed, 34 insertions(+), 65 deletions(-)
|
|
||||||
delete mode 100755 modules.d/90mdraid/md_finished.sh
|
|
||||||
|
|
||||||
diff --git a/modules.d/90mdraid/65-md-incremental-imsm.rules b/modules.d/90mdraid/65-md-incremental-imsm.rules
|
|
||||||
index bb030cf..209b17b 100644
|
|
||||||
--- a/modules.d/90mdraid/65-md-incremental-imsm.rules
|
|
||||||
+++ b/modules.d/90mdraid/65-md-incremental-imsm.rules
|
|
||||||
@@ -2,68 +2,45 @@
|
|
||||||
# automatically cause mdadm to be run.
|
|
||||||
# See udev(8) for syntax
|
|
||||||
|
|
||||||
-ACTION!="add|change", GOTO="md_inc_end"
|
|
||||||
-SUBSYSTEM!="block", GOTO="md_inc_end"
|
|
||||||
-ENV{ID_FS_TYPE}!="*_raid_member", GOTO="md_inc_end"
|
|
||||||
-
|
|
||||||
-ENV{ID_FS_TYPE}=="isw_raid_member", ENV{rd_NO_MDIMSM}=="?*", GOTO="md_inc_end"
|
|
||||||
-ENV{ID_FS_TYPE}=="ddf_raid_member", ENV{rd_NO_MDDDF}=="?*", GOTO="md_inc_end"
|
|
||||||
-
|
|
||||||
-ENV{rd_NO_MD}=="?*", GOTO="md_inc_end"
|
|
||||||
-
|
|
||||||
-PROGRAM=="/bin/sh -c 'for i in $sys/$devpath/holders/md[0-9]*; do [ -e $$i ] && exit 0; done; exit 1;' ", \
|
|
||||||
- GOTO="md_inc_end"
|
|
||||||
+ACTION!="add|change", GOTO="md_end"
|
|
||||||
+SUBSYSTEM!="block", GOTO="md_end"
|
|
||||||
+ENV{rd_NO_MD}=="?*", GOTO="md_end"
|
|
||||||
+KERNEL=="md*", GOTO="md_end"
|
|
||||||
+
|
|
||||||
+ENV{ID_FS_TYPE}!="*_raid_member", GOTO="md_end"
|
|
||||||
+ENV{ID_FS_TYPE}=="isw_raid_member", ENV{rd_NO_MDIMSM}=="?*", GOTO="md_end"
|
|
||||||
+ENV{ID_FS_TYPE}=="ddf_raid_member", ENV{rd_NO_MDDDF}=="?*", GOTO="md_end"
|
|
||||||
+
|
|
||||||
+# already done ?
|
|
||||||
+PROGRAM="/bin/sh -c 'for i in $sys/$devpath/holders/md[0-9]*; do [ -e $$i ] && exit 0; done; exit 1;' ", \
|
|
||||||
+ GOTO="md_end"
|
|
||||||
+
|
|
||||||
+# for native arrays - array's uuid has to be specified
|
|
||||||
+# for containers - container's uuid has to be specified
|
|
||||||
+# TODO : how to get embedded array's uuid having container's component ?
|
|
||||||
+#
|
|
||||||
+# UUID CHECK
|
|
||||||
|
|
||||||
ENV{DEVTYPE}!="partition", \
|
|
||||||
RUN+="/sbin/partx -d --nr 1-1024 $env{DEVNAME}"
|
|
||||||
|
|
||||||
-KERNEL!="md*", IMPORT{program}="/sbin/mdadm --examine --export $tempnode"
|
|
||||||
-
|
|
||||||
-# UUID CHECK
|
|
||||||
-
|
|
||||||
-LABEL="do_md_inc"
|
|
||||||
+RUN+="/sbin/initqueue --timeout --onetime --unique /sbin/mdraid_start"
|
|
||||||
|
|
||||||
+# if rd_MDADMCONF is set, do not assemble incrementally;
|
|
||||||
+# defer conf-based assembly until the udev queue is settled
|
|
||||||
#
|
|
||||||
-# if rd_MDADMCONF do not assemble incrementally
|
|
||||||
-# defer auto assembly until the udev queue is settled
|
|
||||||
-#
|
|
||||||
-ENV{rd_MDADMCONF}!="?*", GOTO="md_auto_end"
|
|
||||||
+ENV{rd_MDADMCONF}!="?*", GOTO="md_incremental"
|
|
||||||
|
|
||||||
-RUN+="/sbin/initqueue --finished --unique --name md_finished /sbin/md_finished.sh"
|
|
||||||
RUN+="/sbin/initqueue --settled --onetime --unique /sbin/mdadm_auto"
|
|
||||||
|
|
||||||
-GOTO="md_inc_end"
|
|
||||||
-
|
|
||||||
-LABEL="md_auto_end"
|
|
||||||
+GOTO="md_end"
|
|
||||||
|
|
||||||
#
|
|
||||||
-# Incrementally build the md array
|
|
||||||
+# Incrementally build the md array; this will automatically assemble
|
|
||||||
+# any eventual containers as well (imsm, ddf)
|
|
||||||
#
|
|
||||||
-RUN+="/sbin/mdadm -I $env{DEVNAME}"
|
|
||||||
-
|
|
||||||
-RUN+="/sbin/initqueue --finished --unique --name md_finished /sbin/md_finished.sh"
|
|
||||||
-
|
|
||||||
-LABEL="md_inc_end"
|
|
||||||
-
|
|
||||||
-#
|
|
||||||
-# Handle non-container raid arrays
|
|
||||||
-#
|
|
||||||
-ACTION=="add|change", \
|
|
||||||
- KERNEL=="md[0-9]*|md/*", \
|
|
||||||
- ENV{MD_LEVEL}!="container", \
|
|
||||||
- ENV{MD_CONTAINER}!="?*", \
|
|
||||||
- ENV{rd_MDADMCONF}!="?*", \
|
|
||||||
- ENV{rd_NO_MD}!="?*", \
|
|
||||||
- GOTO="do_raidstart"
|
|
||||||
+LABEL="md_incremental"
|
|
||||||
|
|
||||||
-GOTO="end_raidstart"
|
|
||||||
-
|
|
||||||
-LABEL="do_raidstart"
|
|
||||||
-
|
|
||||||
-# check if array is not inactive anymore
|
|
||||||
-TEST=="md/array_state", ATTR{md/array_state}!="|inactive", GOTO="end_raidstart"
|
|
||||||
-
|
|
||||||
-RUN+="/sbin/initqueue --finished --unique --name md_finished /sbin/md_finished.sh"
|
|
||||||
-RUN+="/sbin/initqueue --timeout --onetime --unique /sbin/mdraid_start"
|
|
||||||
+RUN+="/sbin/mdadm -I $env{DEVNAME}"
|
|
||||||
|
|
||||||
-LABEL="end_raidstart"
|
|
||||||
+LABEL="md_end"
|
|
||||||
diff --git a/modules.d/90mdraid/md_finished.sh b/modules.d/90mdraid/md_finished.sh
|
|
||||||
deleted file mode 100755
|
|
||||||
index ce355be..0000000
|
|
||||||
--- a/modules.d/90mdraid/md_finished.sh
|
|
||||||
+++ /dev/null
|
|
||||||
@@ -1,9 +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
|
|
||||||
-for f in $hookdir/initqueue/settled/mdraid_start* $hookdir/initqueue/settled/mdadm_auto*; do
|
|
||||||
- [ -e $f ] && exit 1
|
|
||||||
-done
|
|
||||||
-
|
|
||||||
-$UDEV_QUEUE_EMPTY >/dev/null 2>&1 || exit 1
|
|
||||||
-exit 0
|
|
||||||
diff --git a/modules.d/90mdraid/mdadm_auto.sh b/modules.d/90mdraid/mdadm_auto.sh
|
|
||||||
index 915fb28..9b61bf5 100755
|
|
||||||
--- a/modules.d/90mdraid/mdadm_auto.sh
|
|
||||||
+++ b/modules.d/90mdraid/mdadm_auto.sh
|
|
||||||
@@ -4,4 +4,4 @@
|
|
||||||
type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
|
|
||||||
|
|
||||||
info "Autoassembling MD Raid"
|
|
||||||
-mdadm -As --auto=yes --run 2>&1 | vinfo
|
|
||||||
+mdadm -As --auto=yes 2>&1 | vinfo
|
|
||||||
diff --git a/modules.d/90mdraid/module-setup.sh b/modules.d/90mdraid/module-setup.sh
|
|
||||||
index 5c526a0..12e6739 100755
|
|
||||||
--- a/modules.d/90mdraid/module-setup.sh
|
|
||||||
+++ b/modules.d/90mdraid/module-setup.sh
|
|
||||||
@@ -82,7 +82,6 @@ install() {
|
|
||||||
|
|
||||||
inst "$moddir/mdraid_start.sh" /sbin/mdraid_start
|
|
||||||
inst "$moddir/mdadm_auto.sh" /sbin/mdadm_auto
|
|
||||||
- inst "$moddir/md_finished.sh" /sbin/md_finished.sh
|
|
||||||
inst_hook pre-trigger 30 "$moddir/parse-md.sh"
|
|
||||||
inst "$moddir/mdraid-cleanup.sh" /sbin/mdraid-cleanup
|
|
||||||
inst_hook shutdown 30 "$moddir/md-shutdown.sh"
|
|
||||||
diff --git a/modules.d/90mdraid/parse-md.sh b/modules.d/90mdraid/parse-md.sh
|
|
||||||
index 33d93dc..b85a3a3 100755
|
|
||||||
--- a/modules.d/90mdraid/parse-md.sh
|
|
||||||
+++ b/modules.d/90mdraid/parse-md.sh
|
|
||||||
@@ -13,12 +13,14 @@ else
|
|
||||||
[ -e "$f" ] || continue
|
|
||||||
while read line; do
|
|
||||||
if [ "${line%%UUID CHECK}" != "$line" ]; then
|
|
||||||
+ printf 'IMPORT{program}="/sbin/mdadm --examine --export $tempnode"\n'
|
|
||||||
for uuid in $MD_UUID; do
|
|
||||||
- printf 'ENV{MD_UUID}=="%s", GOTO="do_md_inc"\n' $uuid
|
|
||||||
+ printf 'ENV{MD_UUID}=="%s", GOTO="md_uuid_ok"\n' $uuid
|
|
||||||
done;
|
|
||||||
- printf 'GOTO="md_inc_end"\n';
|
|
||||||
+ printf 'GOTO="md_end"\n'
|
|
||||||
+ printf 'LABEL="md_uuid_ok"\n'
|
|
||||||
else
|
|
||||||
- echo $line;
|
|
||||||
+ echo "$line"
|
|
||||||
fi
|
|
||||||
done < "${f}" > "${f}.new"
|
|
||||||
mv "${f}.new" "$f"
|
|
@ -1,58 +0,0 @@
|
|||||||
From 75e8f476e7bf33e2759b5a05b9d10f8befc4eedd Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Thu, 22 Sep 2011 12:56:31 +0200
|
|
||||||
Subject: [PATCH] TEST-40-NBD: relaxed check on ext3 filesystem options
|
|
||||||
|
|
||||||
onerror=continue does not seem to be displayed for new kernels
|
|
||||||
---
|
|
||||||
test/TEST-40-NBD/client-init | 1 +
|
|
||||||
test/TEST-40-NBD/create-root.sh | 1 +
|
|
||||||
test/TEST-40-NBD/test.sh | 4 ++--
|
|
||||||
3 files changed, 4 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/test/TEST-40-NBD/client-init b/test/TEST-40-NBD/client-init
|
|
||||||
index 22dacd9..eb65b76 100755
|
|
||||||
--- a/test/TEST-40-NBD/client-init
|
|
||||||
+++ b/test/TEST-40-NBD/client-init
|
|
||||||
@@ -5,6 +5,7 @@ while read dev fs fstype opts rest; do
|
|
||||||
[ "$dev" = "rootfs" ] && continue
|
|
||||||
[ "$fs" != "/" ] && continue
|
|
||||||
echo "nbd-OK $fstype $opts" >/dev/sda
|
|
||||||
+ echo "nbd-OK $fstype $opts"
|
|
||||||
break
|
|
||||||
done < /proc/mounts
|
|
||||||
export TERM=linux
|
|
||||||
diff --git a/test/TEST-40-NBD/create-root.sh b/test/TEST-40-NBD/create-root.sh
|
|
||||||
index bd866e4..4bef5f1 100755
|
|
||||||
--- a/test/TEST-40-NBD/create-root.sh
|
|
||||||
+++ b/test/TEST-40-NBD/create-root.sh
|
|
||||||
@@ -14,6 +14,7 @@ lvm vgcreate dracut /dev/mapper/dracut_crypt_test && \
|
|
||||||
lvm lvcreate -l 100%FREE -n root dracut && \
|
|
||||||
lvm vgchange -ay && \
|
|
||||||
mke2fs -j /dev/dracut/root && \
|
|
||||||
+/sbin/tune2fs -e continue /dev/dracut/root && \
|
|
||||||
mkdir -p /sysroot && \
|
|
||||||
mount /dev/dracut/root /sysroot && \
|
|
||||||
cp -a -t /sysroot /source/* && \
|
|
||||||
diff --git a/test/TEST-40-NBD/test.sh b/test/TEST-40-NBD/test.sh
|
|
||||||
index 675ffd4..c5603fd 100755
|
|
||||||
--- a/test/TEST-40-NBD/test.sh
|
|
||||||
+++ b/test/TEST-40-NBD/test.sh
|
|
||||||
@@ -40,7 +40,7 @@ client_test() {
|
|
||||||
local found opts nbdinfo
|
|
||||||
|
|
||||||
[[ $fstype ]] || fstype=ext3
|
|
||||||
- [[ $fsopt ]] || fsopt="errors=continue"
|
|
||||||
+ [[ $fsopt ]] || fsopt="ro"
|
|
||||||
|
|
||||||
echo "CLIENT TEST START: $test_name"
|
|
||||||
|
|
||||||
@@ -198,7 +198,7 @@ make_encrypted_root() {
|
|
||||||
(
|
|
||||||
initdir=overlay
|
|
||||||
. $basedir/dracut-functions
|
|
||||||
- dracut_install mke2fs poweroff cp umount
|
|
||||||
+ dracut_install mke2fs poweroff cp umount tune2fs
|
|
||||||
inst_hook initqueue 01 ./create-root.sh
|
|
||||||
inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
|
|
||||||
)
|
|
@ -1,61 +0,0 @@
|
|||||||
From 662ed0a13f4b497352fe9b6a1d243f06e45c4f3d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Thu, 22 Sep 2011 15:12:14 +0200
|
|
||||||
Subject: [PATCH] 99fs-lib/fs-lib.sh: fsck btrfs via mounting like xfs
|
|
||||||
|
|
||||||
btrfsck is only for manual repairing your filesystem
|
|
||||||
---
|
|
||||||
modules.d/99fs-lib/fs-lib.sh | 33 ++++++++++++++++++++++++++++++++-
|
|
||||||
1 files changed, 32 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/99fs-lib/fs-lib.sh b/modules.d/99fs-lib/fs-lib.sh
|
|
||||||
index f7b20dd..edb5852 100755
|
|
||||||
--- a/modules.d/99fs-lib/fs-lib.sh
|
|
||||||
+++ b/modules.d/99fs-lib/fs-lib.sh
|
|
||||||
@@ -59,7 +59,7 @@ fsck_able() {
|
|
||||||
;;
|
|
||||||
btrfs)
|
|
||||||
type btrfsck >/dev/null 2>&1 &&
|
|
||||||
- _drv="_drv=btrfsck fsck_drv_com" &&
|
|
||||||
+ _drv="_drv=none fsck_drv_btrfs" &&
|
|
||||||
return 0
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
@@ -104,6 +104,37 @@ fsck_drv_xfs() {
|
|
||||||
return $_ret
|
|
||||||
}
|
|
||||||
|
|
||||||
+fsck_drv_btrfs() {
|
|
||||||
+ local _ret
|
|
||||||
+
|
|
||||||
+ # fs must be cleanly mounted (and umounted) first, before attempting any
|
|
||||||
+ # btrfs tools - if this works, nothing else should be needed
|
|
||||||
+ # note, that user is always dropped into the shell, if the filesystem is
|
|
||||||
+ # not mountable or if -f flag is found among _fop
|
|
||||||
+ mkdir -p /tmp/.btrfs
|
|
||||||
+
|
|
||||||
+ info "trying to mount $_dev"
|
|
||||||
+ if mount -t btrfs "$_dev" "/tmp/.btrfs" >/dev/null 2>&1; then
|
|
||||||
+ _ret=0
|
|
||||||
+ info "btrfs: $_dev is clean"
|
|
||||||
+ umount "$_dev" >/dev/null 2>&1
|
|
||||||
+ else
|
|
||||||
+ _ret=4
|
|
||||||
+ warn "*** $_dev is unmountable"
|
|
||||||
+ fi
|
|
||||||
+ if [ $_ret -gt 0 ] || strstr "$_fop" "-f"; then
|
|
||||||
+ warn "*** Dropping you to a shell. You have"
|
|
||||||
+ warn "*** btrfsck available."
|
|
||||||
+ warn "*** Note that if btrfs didn't mount properly, it's"
|
|
||||||
+ warn "*** probably pretty serious condition."
|
|
||||||
+ emergency_shell -n "(Repair filesystem)"
|
|
||||||
+ fi
|
|
||||||
+
|
|
||||||
+ rm -r /tmp/.btrfs
|
|
||||||
+ return $_ret
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
# common code for checkers that follow usual subset of options and return codes
|
|
||||||
fsck_drv_com() {
|
|
||||||
local _ret
|
|
@ -1,37 +0,0 @@
|
|||||||
From 76f5fa549c483a7a38e4757578480096b94615ac Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Thu, 22 Sep 2011 15:43:34 +0200
|
|
||||||
Subject: [PATCH] dracut-functions: inst_rules() do not check std dirs for abs
|
|
||||||
path
|
|
||||||
|
|
||||||
if an absolute path is given, we should not check the standard udev rule
|
|
||||||
directories.
|
|
||||||
---
|
|
||||||
dracut-functions | 14 ++++++++------
|
|
||||||
1 files changed, 8 insertions(+), 6 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut-functions b/dracut-functions
|
|
||||||
index b11e37c..18a2e89 100755
|
|
||||||
--- a/dracut-functions
|
|
||||||
+++ b/dracut-functions
|
|
||||||
@@ -474,12 +474,14 @@ inst_rules() {
|
|
||||||
inst_dir "/lib/udev/rules.d"
|
|
||||||
inst_dir "$_target"
|
|
||||||
for _rule in "$@"; do
|
|
||||||
- for r in /lib/udev/rules.d /etc/udev/rules.d; do
|
|
||||||
- if [[ -f $r/$_rule ]]; then
|
|
||||||
- _found="$r/$_rule"
|
|
||||||
- inst_simple "$_found"
|
|
||||||
- fi
|
|
||||||
- done
|
|
||||||
+ if [ "${rule#/}" = $rule ]; then
|
|
||||||
+ for r in /lib/udev/rules.d /etc/udev/rules.d; do
|
|
||||||
+ if [[ -f $r/$_rule ]]; then
|
|
||||||
+ _found="$r/$_rule"
|
|
||||||
+ inst_simple "$_found"
|
|
||||||
+ fi
|
|
||||||
+ done
|
|
||||||
+ fi
|
|
||||||
for r in '' ./ $dracutbasedir/rules.d/; do
|
|
||||||
if [[ -f ${r}$_rule ]]; then
|
|
||||||
_found="${r}$_rule"
|
|
@ -1,33 +0,0 @@
|
|||||||
From cb288154050ff5293bc9a0a72953cd2b93782abb Mon Sep 17 00:00:00 2001
|
|
||||||
From: Michal Soltys <soltys@ziu.info>
|
|
||||||
Date: Thu, 15 Sep 2011 08:45:57 +0200
|
|
||||||
Subject: [PATCH] str_replace() fix
|
|
||||||
|
|
||||||
Whitespace removal in:
|
|
||||||
|
|
||||||
out="${out}${chop# }$r"
|
|
||||||
|
|
||||||
will damage certain strings, for example the following call:
|
|
||||||
|
|
||||||
str_replace ' aax aaxaa' x y
|
|
||||||
|
|
||||||
would return 'aayaayaa' instead of ' aay aayaa'.
|
|
||||||
|
|
||||||
Signed-off-by: Michal Soltys <soltys@ziu.info>
|
|
||||||
---
|
|
||||||
modules.d/99base/dracut-lib.sh | 2 +-
|
|
||||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
|
|
||||||
index 50b1ed2..62c3bf5 100755
|
|
||||||
--- a/modules.d/99base/dracut-lib.sh
|
|
||||||
+++ b/modules.d/99base/dracut-lib.sh
|
|
||||||
@@ -24,7 +24,7 @@ str_replace() {
|
|
||||||
|
|
||||||
while strstr "${in}" "$s"; do
|
|
||||||
chop="${in%%$s*}"
|
|
||||||
- out="${out}${chop# }$r"
|
|
||||||
+ out="${out}${chop}$r"
|
|
||||||
in="${in#*$s}"
|
|
||||||
done
|
|
||||||
echo "${out}${in}"
|
|
@ -1,37 +0,0 @@
|
|||||||
From 69063507d4c553cb5c4e51fb401d29eda7106351 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Thu, 22 Sep 2011 15:49:25 +0200
|
|
||||||
Subject: [PATCH] dracut-logger: bail out early, if we don't have to log
|
|
||||||
anything
|
|
||||||
|
|
||||||
---
|
|
||||||
dracut-logger | 7 +++----
|
|
||||||
1 files changed, 3 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut-logger b/dracut-logger
|
|
||||||
index d85cbaf..ce28208 100755
|
|
||||||
--- a/dracut-logger
|
|
||||||
+++ b/dracut-logger
|
|
||||||
@@ -271,12 +271,8 @@ _dlvl2syslvl() {
|
|
||||||
# - @c INFO to @c info
|
|
||||||
# - @c DEBUG and @c TRACE both to @c debug
|
|
||||||
_do_dlog() {
|
|
||||||
- [ -z "$maxloglvl" ] && return 0
|
|
||||||
local lvl="$1"; shift
|
|
||||||
local lvlc=$(_lvl2char "$lvl") || return 0
|
|
||||||
-
|
|
||||||
- [ $lvl -le $maxloglvl ] || return 0
|
|
||||||
-
|
|
||||||
local msg="$lvlc: $*"
|
|
||||||
|
|
||||||
[ $lvl -le $stdloglvl ] && echo "$msg" >&2
|
|
||||||
@@ -307,6 +303,9 @@ _do_dlog() {
|
|
||||||
# dwarn "This is a warning"
|
|
||||||
# echo "This is a warning" | dwarn
|
|
||||||
dlog() {
|
|
||||||
+ [ -z "$maxloglvl" ] && return 0
|
|
||||||
+ [ $1 -le $maxloglvl ] || return 0
|
|
||||||
+
|
|
||||||
if [ $# -gt 1 ]; then
|
|
||||||
_do_dlog "$@"
|
|
||||||
else
|
|
@ -1,24 +0,0 @@
|
|||||||
From 7c14b3688c83b14c95bafb4989871ffac2092c42 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name>
|
|
||||||
Date: Sun, 4 Sep 2011 16:38:35 +0200
|
|
||||||
Subject: [PATCH] dracut: create /dev besides /proc, /sys and so
|
|
||||||
|
|
||||||
How it worked without it? The issue only manifests itself with
|
|
||||||
initramfs integrated into kernel.
|
|
||||||
---
|
|
||||||
dracut | 2 +-
|
|
||||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut b/dracut
|
|
||||||
index 0e930c7..c9329bd 100755
|
|
||||||
--- a/dracut
|
|
||||||
+++ b/dracut
|
|
||||||
@@ -510,7 +510,7 @@ if [[ $kernel_only != yes ]]; then
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
- for d in proc sys sysroot root run run/lock run/initramfs; do
|
|
||||||
+ for d in dev proc sys sysroot root run run/lock run/initramfs; do
|
|
||||||
if [ -h "/$d" ]; then
|
|
||||||
inst "/$d"
|
|
||||||
else
|
|
@ -1,26 +0,0 @@
|
|||||||
From f07aaccd0600cefd113d1393cb4ca6a7e969a8e1 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Michal Soltys <soltys@ziu.info>
|
|
||||||
Date: Tue, 6 Sep 2011 01:22:15 +0200
|
|
||||||
Subject: [PATCH] 99fs-lib: export FSTAB_FILE before fsck call
|
|
||||||
|
|
||||||
Signed-off-by: Michal Soltys <soltys@ziu.info>
|
|
||||||
---
|
|
||||||
modules.d/99fs-lib/fs-lib.sh | 2 +-
|
|
||||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/99fs-lib/fs-lib.sh b/modules.d/99fs-lib/fs-lib.sh
|
|
||||||
index edb5852..f36299a 100755
|
|
||||||
--- a/modules.d/99fs-lib/fs-lib.sh
|
|
||||||
+++ b/modules.d/99fs-lib/fs-lib.sh
|
|
||||||
@@ -210,10 +210,10 @@ fsck_batch() {
|
|
||||||
info " $_dev"
|
|
||||||
done
|
|
||||||
|
|
||||||
+ export FSTAB_FILE
|
|
||||||
_out="$(fsck -M -T "$@" -- -a)"
|
|
||||||
_ret=$?
|
|
||||||
|
|
||||||
- export FSTAB_FILE
|
|
||||||
fsck_tail
|
|
||||||
|
|
||||||
return $_ret
|
|
@ -1,22 +0,0 @@
|
|||||||
From 08769b7f8a9efc57cd95d1f81e8aaf1a48db0d28 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Thu, 22 Sep 2011 16:14:38 +0200
|
|
||||||
Subject: [PATCH] dracut-functions: inst_rules() add missing ""
|
|
||||||
|
|
||||||
---
|
|
||||||
dracut-functions | 2 +-
|
|
||||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut-functions b/dracut-functions
|
|
||||||
index 18a2e89..5508809 100755
|
|
||||||
--- a/dracut-functions
|
|
||||||
+++ b/dracut-functions
|
|
||||||
@@ -474,7 +474,7 @@ inst_rules() {
|
|
||||||
inst_dir "/lib/udev/rules.d"
|
|
||||||
inst_dir "$_target"
|
|
||||||
for _rule in "$@"; do
|
|
||||||
- if [ "${rule#/}" = $rule ]; then
|
|
||||||
+ if [ "${rule#/}" = "$rule" ]; then
|
|
||||||
for r in /lib/udev/rules.d /etc/udev/rules.d; do
|
|
||||||
if [[ -f $r/$_rule ]]; then
|
|
||||||
_found="$r/$_rule"
|
|
@ -1,46 +0,0 @@
|
|||||||
From db9b9f396e8d923591725f648c0a35789286254b Mon Sep 17 00:00:00 2001
|
|
||||||
From: Michal Soltys <soltys@ziu.info>
|
|
||||||
Date: Thu, 22 Sep 2011 17:09:56 +0200
|
|
||||||
Subject: [PATCH] 90mdraid: check precisely for supported contaiers
|
|
||||||
|
|
||||||
ID_FS_TYPE can be much more than just ddf/imsm/linux raid member, so
|
|
||||||
do the proper checks.
|
|
||||||
|
|
||||||
This reverts certain changes from:
|
|
||||||
cf5891424ef026eede69606a918dadf5560095fd
|
|
||||||
|
|
||||||
Signed-off-by: Michal Soltys <soltys@ziu.info>
|
|
||||||
---
|
|
||||||
modules.d/90mdraid/65-md-incremental-imsm.rules | 5 ++++-
|
|
||||||
modules.d/90mdraid/module-setup.sh | 2 +-
|
|
||||||
2 files changed, 5 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/90mdraid/65-md-incremental-imsm.rules b/modules.d/90mdraid/65-md-incremental-imsm.rules
|
|
||||||
index 209b17b..ea3a889 100644
|
|
||||||
--- a/modules.d/90mdraid/65-md-incremental-imsm.rules
|
|
||||||
+++ b/modules.d/90mdraid/65-md-incremental-imsm.rules
|
|
||||||
@@ -7,7 +7,10 @@ SUBSYSTEM!="block", GOTO="md_end"
|
|
||||||
ENV{rd_NO_MD}=="?*", GOTO="md_end"
|
|
||||||
KERNEL=="md*", GOTO="md_end"
|
|
||||||
|
|
||||||
-ENV{ID_FS_TYPE}!="*_raid_member", GOTO="md_end"
|
|
||||||
+ENV{ID_FS_TYPE}=="ddf_raid_member|isw_raid_member|linux_raid_member", GOTO="md_try"
|
|
||||||
+GOTO="md_end"
|
|
||||||
+
|
|
||||||
+LABEL="md_try"
|
|
||||||
ENV{ID_FS_TYPE}=="isw_raid_member", ENV{rd_NO_MDIMSM}=="?*", GOTO="md_end"
|
|
||||||
ENV{ID_FS_TYPE}=="ddf_raid_member", ENV{rd_NO_MDDDF}=="?*", GOTO="md_end"
|
|
||||||
|
|
||||||
diff --git a/modules.d/90mdraid/module-setup.sh b/modules.d/90mdraid/module-setup.sh
|
|
||||||
index 12e6739..d4a9870 100755
|
|
||||||
--- a/modules.d/90mdraid/module-setup.sh
|
|
||||||
+++ b/modules.d/90mdraid/module-setup.sh
|
|
||||||
@@ -20,7 +20,7 @@ check() {
|
|
||||||
check_block_and_slaves is_mdraid "$_rootdev" || return 1
|
|
||||||
else
|
|
||||||
# root is not on a block device, use the shotgun approach
|
|
||||||
- blkid | grep -q '"[^"]*_raid_member"' || return 1
|
|
||||||
+ blkid | egrep -q '(linux|isw|ddf)_raid' || return 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
|||||||
From ae816bb6aa461eb561debc9188e69f726b31d805 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Michal Soltys <soltys@ziu.info>
|
|
||||||
Date: Thu, 22 Sep 2011 17:23:21 +0200
|
|
||||||
Subject: [PATCH] 90mdraid: more thorough 64-md-raid.rules edit
|
|
||||||
|
|
||||||
Catch more variations of incremental assembly.
|
|
||||||
|
|
||||||
Signed-off-by: Michal Soltys <soltys@ziu.info>
|
|
||||||
---
|
|
||||||
modules.d/90mdraid/module-setup.sh | 2 +-
|
|
||||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/90mdraid/module-setup.sh b/modules.d/90mdraid/module-setup.sh
|
|
||||||
index d4a9870..5e819b1 100755
|
|
||||||
--- a/modules.d/90mdraid/module-setup.sh
|
|
||||||
+++ b/modules.d/90mdraid/module-setup.sh
|
|
||||||
@@ -54,7 +54,7 @@ install() {
|
|
||||||
# 65-md-inc*.rules and its fine-grained controls, or cause other problems
|
|
||||||
# when we explicitly don't want certain components to be incrementally
|
|
||||||
# assembled
|
|
||||||
- sed -i -e '/^ENV{ID_FS_TYPE}==.*ACTION=="add".*RUN+="\/sbin\/mdadm --incremental $env{DEVNAME}"$/d' "${initdir}/lib/udev/rules.d/64-md-raid.rules"
|
|
||||||
+ sed -ire '/RUN\+?="[[:alpha:]/]*mdadm[[:blank:]]+(--incremental|-I)[[:blank:]]+(\$env\{DEVNAME\}|\$tempnode)"/d' "${initdir}/lib/udev/rules.d/64-md-raid.rules"
|
|
||||||
fi
|
|
||||||
|
|
||||||
inst_rules "$moddir/65-md-incremental-imsm.rules"
|
|
@ -1,53 +0,0 @@
|
|||||||
From 9fc3f0452023c42c235c3312ad311243e7f900a2 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Michal Soltys <soltys@ziu.info>
|
|
||||||
Date: Thu, 22 Sep 2011 17:16:39 +0200
|
|
||||||
Subject: [PATCH] 90mdraid: adjust /dev/md loops
|
|
||||||
|
|
||||||
Include '_' to also handle old partitionable arrays (pre-2.6.28).
|
|
||||||
|
|
||||||
Signed-off-by: Michal Soltys <soltys@ziu.info>
|
|
||||||
---
|
|
||||||
modules.d/90mdraid/65-md-incremental-imsm.rules | 2 +-
|
|
||||||
modules.d/90mdraid/mdraid-cleanup.sh | 2 +-
|
|
||||||
modules.d/90mdraid/mdraid_start.sh | 2 +-
|
|
||||||
3 files changed, 3 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/90mdraid/65-md-incremental-imsm.rules b/modules.d/90mdraid/65-md-incremental-imsm.rules
|
|
||||||
index ea3a889..2a80700 100644
|
|
||||||
--- a/modules.d/90mdraid/65-md-incremental-imsm.rules
|
|
||||||
+++ b/modules.d/90mdraid/65-md-incremental-imsm.rules
|
|
||||||
@@ -15,7 +15,7 @@ ENV{ID_FS_TYPE}=="isw_raid_member", ENV{rd_NO_MDIMSM}=="?*", GOTO="md_end"
|
|
||||||
ENV{ID_FS_TYPE}=="ddf_raid_member", ENV{rd_NO_MDDDF}=="?*", GOTO="md_end"
|
|
||||||
|
|
||||||
# already done ?
|
|
||||||
-PROGRAM="/bin/sh -c 'for i in $sys/$devpath/holders/md[0-9]*; do [ -e $$i ] && exit 0; done; exit 1;' ", \
|
|
||||||
+PROGRAM="/bin/sh -c 'for i in $sys/$devpath/holders/md[0-9_]*; do [ -e $$i ] && exit 0; done; exit 1;' ", \
|
|
||||||
GOTO="md_end"
|
|
||||||
|
|
||||||
# for native arrays - array's uuid has to be specified
|
|
||||||
diff --git a/modules.d/90mdraid/mdraid-cleanup.sh b/modules.d/90mdraid/mdraid-cleanup.sh
|
|
||||||
index 8fc54e2..3ffa2d3 100755
|
|
||||||
--- a/modules.d/90mdraid/mdraid-cleanup.sh
|
|
||||||
+++ b/modules.d/90mdraid/mdraid-cleanup.sh
|
|
||||||
@@ -5,7 +5,7 @@
|
|
||||||
type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
|
|
||||||
|
|
||||||
containers=""
|
|
||||||
-for md in /dev/md[0-9]*; do
|
|
||||||
+for md in /dev/md[0-9_]*; do
|
|
||||||
[ -b "$md" ] || continue
|
|
||||||
udevinfo="$(udevadm info --query=env --name=$md)"
|
|
||||||
strstr "$udevinfo" "DEVTYPE=partition" && continue
|
|
||||||
diff --git a/modules.d/90mdraid/mdraid_start.sh b/modules.d/90mdraid/mdraid_start.sh
|
|
||||||
index be5a3ce..f79f16e 100755
|
|
||||||
--- a/modules.d/90mdraid/mdraid_start.sh
|
|
||||||
+++ b/modules.d/90mdraid/mdraid_start.sh
|
|
||||||
@@ -8,7 +8,7 @@ _md_force_run() {
|
|
||||||
local _path_s
|
|
||||||
local _path_d
|
|
||||||
# try to force-run anything not running yet
|
|
||||||
- for md in /dev/md[0-9]*; do
|
|
||||||
+ for md in /dev/md[0-9_]*; do
|
|
||||||
[ -b "$md" ] || continue
|
|
||||||
_udevinfo="$(udevadm info --query=env --name="$md")"
|
|
||||||
strstr "$_udevinfo" "MD_LEVEL=container" && continue
|
|
@ -1,38 +0,0 @@
|
|||||||
From 9e103df45e4ca2c2392cedf3c9ecb84713962838 Mon Sep 17 00:00:00 2001
|
|
||||||
From: John Reiser <jreiser@bitwagon.com>
|
|
||||||
Date: Fri, 23 Sep 2011 08:02:23 -0700
|
|
||||||
Subject: [PATCH] dracut [PATCH] Parameter expansion occurs before command
|
|
||||||
evaluation.
|
|
||||||
|
|
||||||
Bash shell expands all ${parameter} before evaluating a command.
|
|
||||||
For multiple declarations and assignments within the same 'local' command,
|
|
||||||
then new variables or new values that appear towards the left
|
|
||||||
do not affect parameter expansion towards the right.
|
|
||||||
|
|
||||||
--
|
|
||||||
John Reiser, jreiser@BitWagon.com
|
|
||||||
|
|
||||||
>From 507ad6f66fc66f868a9e5fdd3806e012c4022baa Mon Sep 17 00:00:00 2001
|
|
||||||
From: John Reiser <jreiser@BitWagon.com>
|
|
||||||
Date: Fri, 23 Sep 2011 07:37:43 -0700
|
|
||||||
Subject: [PATCH] Parameter expansion occurs before command evaluation.
|
|
||||||
|
|
||||||
${parameter} on the right is expanded before evaluating "local var=value"
|
|
||||||
on the left.
|
|
||||||
---
|
|
||||||
dracut-functions | 2 +-
|
|
||||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut-functions b/dracut-functions
|
|
||||||
index 5508809..c4f7f61 100755
|
|
||||||
--- a/dracut-functions
|
|
||||||
+++ b/dracut-functions
|
|
||||||
@@ -272,7 +272,7 @@ check_vol_slaves() {
|
|
||||||
inst_dir() {
|
|
||||||
[[ -e ${initdir}"$1" ]] && return 0 # already there
|
|
||||||
|
|
||||||
- local _dir="$1" _part=${_dir%/*} _file
|
|
||||||
+ local _dir="$1" _part="${1%/*}" _file
|
|
||||||
while [[ "$_part" != "${_part%/*}" ]] && ! [[ -e "${initdir}${_part}" ]]; do
|
|
||||||
_dir="$_part $_dir"
|
|
||||||
_part=${_part%/*}
|
|
@ -1,100 +0,0 @@
|
|||||||
From d23159a69c818274486f1287ba6267b96f3febb7 Mon Sep 17 00:00:00 2001
|
|
||||||
From: John Reiser <jreiser@bitwagon.com>
|
|
||||||
Date: Fri, 23 Sep 2011 09:17:13 -0700
|
|
||||||
Subject: [PATCH] dracut [PATCH]es: parallelize block_module filter and
|
|
||||||
net_module_filter
|
|
||||||
|
|
||||||
Filtering modules requires enough work that instmods() in the
|
|
||||||
next pipeline stage was rarely busy. Parallelize the two
|
|
||||||
filters which do the most work. Also fix a filename-vs-contents
|
|
||||||
mistake in net_module_filter.
|
|
||||||
|
|
||||||
--
|
|
||||||
John Reiser, jreiser@BitWagon.com
|
|
||||||
|
|
||||||
>From f4533a2ceca52c443ddebec01eeaa35d51c39c1b Mon Sep 17 00:00:00 2001
|
|
||||||
From: John Reiser <jreiser@BitWagon.com>
|
|
||||||
Date: Tue, 13 Sep 2011 17:41:43 -0700
|
|
||||||
Subject: [PATCH 1/3] Parallelize block_module_filter
|
|
||||||
---
|
|
||||||
modules.d/40network/module-setup.sh | 33 +++++++++++++++++----------
|
|
||||||
modules.d/90kernel-modules/module-setup.sh | 22 +++++++++++++-----
|
|
||||||
2 files changed, 37 insertions(+), 18 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/40network/module-setup.sh b/modules.d/40network/module-setup.sh
|
|
||||||
index cb81269..03684f1 100755
|
|
||||||
--- a/modules.d/40network/module-setup.sh
|
|
||||||
+++ b/modules.d/40network/module-setup.sh
|
|
||||||
@@ -27,18 +27,27 @@ installkernel() {
|
|
||||||
net_module_filter() {
|
|
||||||
local _net_drivers='eth_type_trans|register_virtio_device'
|
|
||||||
local _unwanted_drivers='/(wireless|isdn|uwb)/'
|
|
||||||
- local _fname
|
|
||||||
- while read _fname; do
|
|
||||||
- local _fcont
|
|
||||||
- case "$_fname" in
|
|
||||||
- *.ko) _fcont="$(< $_fname)" ;;
|
|
||||||
- *.ko.gz) _fcont="$(gzip -dc $_fname)" ;;
|
|
||||||
- esac
|
|
||||||
- [[ $_fcont =~ $_net_drivers
|
|
||||||
- && ! $_fcont =~ iw_handler_get_spy \
|
|
||||||
- && ! $_fname =~ $_unwanted_drivers ]] \
|
|
||||||
- && echo "$_fname"
|
|
||||||
- done
|
|
||||||
+ function nmf1() {
|
|
||||||
+ local _fname _fcont
|
|
||||||
+ while read _fname; do
|
|
||||||
+ [[ $_fname =~ $_unwanted_drivers ]] && continue
|
|
||||||
+ case "$_fname" in
|
|
||||||
+ *.ko) _fcont="$(< $_fname)" ;;
|
|
||||||
+ *.ko.gz) _fcont="$(gzip -dc $_fname)" ;;
|
|
||||||
+ esac
|
|
||||||
+ [[ $_fcont =~ $_net_drivers
|
|
||||||
+ && ! $_fcont =~ iw_handler_get_spy ]] \
|
|
||||||
+ && echo "$_fname"
|
|
||||||
+ done
|
|
||||||
+ }
|
|
||||||
+ # Use two parallel streams to filter alternating modules.
|
|
||||||
+ local merge side2
|
|
||||||
+ ( ( local _f1 _f2
|
|
||||||
+ while read _f1; do echo "$_f1"
|
|
||||||
+ if read _f2; then echo "$_f2" 1>&${side2}; fi
|
|
||||||
+ done \
|
|
||||||
+ | nmf1 1>&${merge} ) {side2}>&1 \
|
|
||||||
+ | nmf1 ) {merge}>&1
|
|
||||||
}
|
|
||||||
|
|
||||||
find_kernel_modules_by_path drivers/net | net_module_filter | instmods
|
|
||||||
diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh
|
|
||||||
index 9fc4248..09bd87e 100755
|
|
||||||
--- a/modules.d/90kernel-modules/module-setup.sh
|
|
||||||
+++ b/modules.d/90kernel-modules/module-setup.sh
|
|
||||||
@@ -11,12 +11,22 @@ installkernel() {
|
|
||||||
}
|
|
||||||
block_module_filter() {
|
|
||||||
local _blockfuncs='ahci_init_controller|ata_scsi_ioctl|scsi_add_host|blk_init_queue|register_mtd_blktrans|scsi_esp_register|register_virtio_device'
|
|
||||||
- local _f
|
|
||||||
- while read _f; do case "$_f" in
|
|
||||||
- *.ko) [[ $(< $_f) =~ $_blockfuncs ]] && echo "$_f" ;;
|
|
||||||
- *.ko.gz) [[ $(gzip -dc <$_f) =~ $_blockfuncs ]] && echo "$_f" ;;
|
|
||||||
- esac
|
|
||||||
- done
|
|
||||||
+ function bmf1() {
|
|
||||||
+ local _f
|
|
||||||
+ while read _f; do case "$_f" in
|
|
||||||
+ *.ko) [[ $(< $_f) =~ $_blockfuncs ]] && echo "$_f" ;;
|
|
||||||
+ *.ko.gz) [[ $(gzip -dc <$_f) =~ $_blockfuncs ]] && echo "$_f" ;;
|
|
||||||
+ esac
|
|
||||||
+ done
|
|
||||||
+ }
|
|
||||||
+ # Use two parallel streams to filter alternating modules.
|
|
||||||
+ local merge side2
|
|
||||||
+ ( ( local _f1 _f2
|
|
||||||
+ while read _f1; do echo "$_f1"
|
|
||||||
+ if read _f2; then echo "$_f2" 1>&${side2}; fi
|
|
||||||
+ done \
|
|
||||||
+ | bmf1 1>&${merge} ) {side2}>&1 \
|
|
||||||
+ | bmf1 ) {merge}>&1
|
|
||||||
}
|
|
||||||
hostonly='' instmods sr_mod sd_mod scsi_dh scsi_dh_rdac scsi_dh_emc
|
|
||||||
hostonly='' instmods pcmcia firewire-ohci
|
|
@ -1,36 +0,0 @@
|
|||||||
From 77a57d5eafc3e46d01b196312d5dd4f28e0e8010 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Tue, 4 Oct 2011 13:03:45 +0200
|
|
||||||
Subject: [PATCH] order mdadm and lvm timeout operations
|
|
||||||
|
|
||||||
---
|
|
||||||
modules.d/90lvm/64-lvm.rules | 2 +-
|
|
||||||
modules.d/90mdraid/65-md-incremental-imsm.rules | 2 +-
|
|
||||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/90lvm/64-lvm.rules b/modules.d/90lvm/64-lvm.rules
|
|
||||||
index 487d08a..ab827a9 100644
|
|
||||||
--- a/modules.d/90lvm/64-lvm.rules
|
|
||||||
+++ b/modules.d/90lvm/64-lvm.rules
|
|
||||||
@@ -13,7 +13,7 @@ PROGRAM=="/bin/sh -c 'for i in $sys/$devpath/holders/dm-[0-9]*; do [ -e $$i ] &&
|
|
||||||
GOTO="lvm_end"
|
|
||||||
|
|
||||||
RUN+="/sbin/initqueue --settled --onetime --unique /sbin/lvm_scan"
|
|
||||||
-RUN+="/sbin/initqueue --timeout --onetime --unique /sbin/lvm_scan --partial"
|
|
||||||
+RUN+="/sbin/initqueue --timeout --name 51-lvm_scan --onetime --unique /sbin/lvm_scan --partial"
|
|
||||||
RUN+="/bin/sh -c '>/tmp/.lvm_scan-%k;'"
|
|
||||||
|
|
||||||
LABEL="lvm_end"
|
|
||||||
diff --git a/modules.d/90mdraid/65-md-incremental-imsm.rules b/modules.d/90mdraid/65-md-incremental-imsm.rules
|
|
||||||
index 2a80700..139a599 100644
|
|
||||||
--- a/modules.d/90mdraid/65-md-incremental-imsm.rules
|
|
||||||
+++ b/modules.d/90mdraid/65-md-incremental-imsm.rules
|
|
||||||
@@ -27,7 +27,7 @@ PROGRAM="/bin/sh -c 'for i in $sys/$devpath/holders/md[0-9_]*; do [ -e $$i ] &&
|
|
||||||
ENV{DEVTYPE}!="partition", \
|
|
||||||
RUN+="/sbin/partx -d --nr 1-1024 $env{DEVNAME}"
|
|
||||||
|
|
||||||
-RUN+="/sbin/initqueue --timeout --onetime --unique /sbin/mdraid_start"
|
|
||||||
+RUN+="/sbin/initqueue --timeout --name 50-mdraid_start --onetime --unique /sbin/mdraid_start"
|
|
||||||
|
|
||||||
# if rd_MDADMCONF is set, do not assemble incrementally;
|
|
||||||
# defer conf-based assembly until the udev queue is settled
|
|
@ -1,22 +0,0 @@
|
|||||||
From e0e9221e23f783ce670349df52da46bf6dc05c14 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Tue, 4 Oct 2011 13:06:33 +0200
|
|
||||||
Subject: [PATCH] 90mdraid/mdraid_start.sh: fix path to md sysfs
|
|
||||||
|
|
||||||
---
|
|
||||||
modules.d/90mdraid/mdraid_start.sh | 2 +-
|
|
||||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/90mdraid/mdraid_start.sh b/modules.d/90mdraid/mdraid_start.sh
|
|
||||||
index f79f16e..f4b7ad0 100755
|
|
||||||
--- a/modules.d/90mdraid/mdraid_start.sh
|
|
||||||
+++ b/modules.d/90mdraid/mdraid_start.sh
|
|
||||||
@@ -14,7 +14,7 @@ _md_force_run() {
|
|
||||||
strstr "$_udevinfo" "MD_LEVEL=container" && continue
|
|
||||||
strstr "$_udevinfo" "DEVTYPE=partition" && continue
|
|
||||||
|
|
||||||
- _path_s="$(udevadm info -q path -n "$md")/md/array_state"
|
|
||||||
+ _path_s="/sys/$(udevadm info -q path -n "$md")/md/array_state"
|
|
||||||
[ ! -r "$_path_s" ] && continue
|
|
||||||
|
|
||||||
# inactive ?
|
|
@ -1,22 +0,0 @@
|
|||||||
From 54ffd5447da0a912f91d21dde22d56b0f5762484 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Tue, 4 Oct 2011 13:30:35 +0200
|
|
||||||
Subject: [PATCH] 90mdraid/module-setup.sh: fixed sed arguments
|
|
||||||
|
|
||||||
---
|
|
||||||
modules.d/90mdraid/module-setup.sh | 2 +-
|
|
||||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/90mdraid/module-setup.sh b/modules.d/90mdraid/module-setup.sh
|
|
||||||
index 5e819b1..fe793bb 100755
|
|
||||||
--- a/modules.d/90mdraid/module-setup.sh
|
|
||||||
+++ b/modules.d/90mdraid/module-setup.sh
|
|
||||||
@@ -54,7 +54,7 @@ install() {
|
|
||||||
# 65-md-inc*.rules and its fine-grained controls, or cause other problems
|
|
||||||
# when we explicitly don't want certain components to be incrementally
|
|
||||||
# assembled
|
|
||||||
- sed -ire '/RUN\+?="[[:alpha:]/]*mdadm[[:blank:]]+(--incremental|-I)[[:blank:]]+(\$env\{DEVNAME\}|\$tempnode)"/d' "${initdir}/lib/udev/rules.d/64-md-raid.rules"
|
|
||||||
+ sed -i -r -e '/RUN\+?="[[:alpha:]/]*mdadm[[:blank:]]+(--incremental|-I)[[:blank:]]+(\$env\{DEVNAME\}|\$tempnode)"/d' "${initdir}/lib/udev/rules.d/64-md-raid.rules"
|
|
||||||
fi
|
|
||||||
|
|
||||||
inst_rules "$moddir/65-md-incremental-imsm.rules"
|
|
@ -1,41 +0,0 @@
|
|||||||
From e0f9ecc6a47bb01de04e6b44ade38f347fe057da Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Thu, 6 Oct 2011 10:25:08 +0200
|
|
||||||
Subject: [PATCH] 95udev-rules/module-setup.sh: also search in /lib/udev and
|
|
||||||
/usr/lib/udev
|
|
||||||
|
|
||||||
---
|
|
||||||
modules.d/95udev-rules/module-setup.sh | 9 ++++++++-
|
|
||||||
1 files changed, 8 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/95udev-rules/module-setup.sh b/modules.d/95udev-rules/module-setup.sh
|
|
||||||
index 876f7a3..eddf2b0 100755
|
|
||||||
--- a/modules.d/95udev-rules/module-setup.sh
|
|
||||||
+++ b/modules.d/95udev-rules/module-setup.sh
|
|
||||||
@@ -7,7 +7,9 @@ install() {
|
|
||||||
# FIXME: would be nice if we didn't have to know which rules to grab....
|
|
||||||
# ultimately, /lib/initramfs/rules.d or somesuch which includes links/copies
|
|
||||||
# of the rules we want so that we just copy those in would be best
|
|
||||||
- dracut_install udevd udevadm
|
|
||||||
+ dracut_install udevadm
|
|
||||||
+ [ -x /sbin/udevd ] && dracut_install udevd
|
|
||||||
+
|
|
||||||
for i in /etc/udev/udev.conf /etc/group; do
|
|
||||||
inst_simple $i
|
|
||||||
done
|
|
||||||
@@ -55,10 +57,15 @@ install() {
|
|
||||||
vol_id \
|
|
||||||
pcmcia-socket-startup \
|
|
||||||
pcmcia-check-broken-cis \
|
|
||||||
+ udevd \
|
|
||||||
; do
|
|
||||||
[ -e /lib/udev/$_i ] && dracut_install /lib/udev/$_i
|
|
||||||
+ [ -e /usr/lib/udev/$_i ] && dracut_install /usr/lib/udev/$_i
|
|
||||||
done
|
|
||||||
|
|
||||||
+ [ -x /lib/udev/udevd ] && ln -s ../lib/udev/udevd /sbin/udevd
|
|
||||||
+ [ -x /usr/lib/udev/udevd ] && ln -s ../usr/lib/udev/udevd /sbin/udevd
|
|
||||||
+
|
|
||||||
[ -f /etc/arch-release ] && \
|
|
||||||
inst "$moddir/load-modules.sh" /lib/udev/load-modules.sh
|
|
||||||
|
|
@ -1,48 +0,0 @@
|
|||||||
From 0c3a8dea88a7c7f3fdda5000d3e77b61bfbe7f6a Mon Sep 17 00:00:00 2001
|
|
||||||
From: WANG Cong <xiyou.wangcong@gmail.com>
|
|
||||||
Date: Fri, 7 Oct 2011 15:44:10 +0800
|
|
||||||
Subject: [PATCH] update the documentation of '--[no]prefix'
|
|
||||||
|
|
||||||
In
|
|
||||||
|
|
||||||
commit fd786adcf515d9d3ee77eb29fa4c6b60020c7209
|
|
||||||
Author: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Wed Apr 20 16:47:40 2011 +0200
|
|
||||||
|
|
||||||
dracut: make prefix configurable
|
|
||||||
|
|
||||||
Harald changed the meaning of --prefix/--noprefix, but
|
|
||||||
forgot to update their documentation. This patch
|
|
||||||
fixes that.
|
|
||||||
|
|
||||||
Signed-off-by: WANG Cong <xiyou.wangcong@gmail.com>
|
|
||||||
---
|
|
||||||
dracut.8.xml | 6 +++---
|
|
||||||
1 files changed, 3 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut.8.xml b/dracut.8.xml
|
|
||||||
index 11ea8c3..709f1a6 100644
|
|
||||||
--- a/dracut.8.xml
|
|
||||||
+++ b/dracut.8.xml
|
|
||||||
@@ -245,10 +245,10 @@ include in the generic initramfs. This parameter can be specified multiple times
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term>
|
|
||||||
- <option>--prefix</option>
|
|
||||||
+ <option>--prefix <replaceable><dir></replaceable></option>
|
|
||||||
</term>
|
|
||||||
<listitem>
|
|
||||||
- <para>prefix initramfs files with /run/initramfs/</para>
|
|
||||||
+ <para>prefix initramfs files with the specified directory</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
@@ -256,7 +256,7 @@ include in the generic initramfs. This parameter can be specified multiple times
|
|
||||||
<option>--noprefix</option>
|
|
||||||
</term>
|
|
||||||
<listitem>
|
|
||||||
- <para>do not prefix initramfs files with /run/initramfs/ (default)</para>
|
|
||||||
+ <para>do not prefix initramfs files (default)</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
@ -1,29 +0,0 @@
|
|||||||
From 88b3e00515804f7e6906590ab02534d1fe4ec91f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Dave Young <dyoung@redhat.com>
|
|
||||||
Date: Mon, 10 Oct 2011 11:41:14 +0200
|
|
||||||
Subject: [PATCH] dracut: check mktemp return value
|
|
||||||
|
|
||||||
in slackware the default mktemp is not from coreutils.
|
|
||||||
A simply make in test directory mangled my rootfs due
|
|
||||||
to initdir is blank
|
|
||||||
|
|
||||||
Also mktemp could failed with other reason like ENOSPC or EPERM
|
|
||||||
---
|
|
||||||
dracut | 4 ++++
|
|
||||||
1 files changed, 4 insertions(+), 0 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut b/dracut
|
|
||||||
index c9329bd..de13445 100755
|
|
||||||
--- a/dracut
|
|
||||||
+++ b/dracut
|
|
||||||
@@ -472,6 +472,10 @@ fi
|
|
||||||
|
|
||||||
readonly TMPDIR=/var/tmp
|
|
||||||
readonly initdir=$(mktemp --tmpdir=/var/tmp/ -d -t initramfs.XXXXXX)
|
|
||||||
+[ -d "$initdir" ] || {
|
|
||||||
+ dfatal "mktemp failed."
|
|
||||||
+ exit 1
|
|
||||||
+}
|
|
||||||
|
|
||||||
# clean up after ourselves no matter how we die.
|
|
||||||
trap 'ret=$?;[[ $keep ]] && echo "Not removing $initdir." >&2 || rm -rf "$initdir";exit $ret;' EXIT
|
|
@ -1,54 +0,0 @@
|
|||||||
From c1609dd497bb8f8f083a258ff2f7702385eb940b Mon Sep 17 00:00:00 2001
|
|
||||||
From: Michal Soltys <soltys@ziu.info>
|
|
||||||
Date: Fri, 7 Oct 2011 22:23:49 +0200
|
|
||||||
Subject: [PATCH] convert_abs_rel() fixups
|
|
||||||
|
|
||||||
- IFS was not preserved, and modified value could leak to outside functions
|
|
||||||
|
|
||||||
- the '.' relative path should be returned for arguments such as /x/y/z
|
|
||||||
/x/y - but not for $1 == $2 ones
|
|
||||||
|
|
||||||
- $1 == $2 is self-looping link, so it returns final component of its
|
|
||||||
name
|
|
||||||
|
|
||||||
Signed-off-by: Michal Soltys <soltys@ziu.info>
|
|
||||||
---
|
|
||||||
dracut-functions | 18 +++++++++++-------
|
|
||||||
1 files changed, 11 insertions(+), 7 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut-functions b/dracut-functions
|
|
||||||
index c4f7f61..12dfa70 100755
|
|
||||||
--- a/dracut-functions
|
|
||||||
+++ b/dracut-functions
|
|
||||||
@@ -91,20 +91,24 @@ normalize_path() {
|
|
||||||
}
|
|
||||||
|
|
||||||
convert_abs_rel() {
|
|
||||||
- local __current __absolute __abssize __cursize __i __level __newpath
|
|
||||||
+ local __current __absolute __abssize __cursize __newpath="" __oldifs
|
|
||||||
+ local -i __i __level=0
|
|
||||||
# PS4='${BASH_SOURCE}@${LINENO}(${FUNCNAME[0]}): ';
|
|
||||||
|
|
||||||
- if [[ "$1" == "$2" ]]
|
|
||||||
- then
|
|
||||||
- echo "."
|
|
||||||
- return
|
|
||||||
- fi
|
|
||||||
+ # corner case #1 - self looping link
|
|
||||||
+ [[ "$1" == "$2" ]] && { echo "${1##*/}"; return; }
|
|
||||||
+
|
|
||||||
+ # corner case #2 - own dir link
|
|
||||||
+ [[ "${1%/*}" == "$2" ]] && { echo "."; return; }
|
|
||||||
+
|
|
||||||
__current=$(normalize_path "$1")
|
|
||||||
__absolute=$(normalize_path "$2")
|
|
||||||
- IFS="/"
|
|
||||||
|
|
||||||
+ __oldifs="$IFS"
|
|
||||||
+ IFS="/"
|
|
||||||
__current=($__current)
|
|
||||||
__absolute=($__absolute)
|
|
||||||
+ IFS="$__oldifs"
|
|
||||||
|
|
||||||
__abssize=${#__absolute[@]}
|
|
||||||
__cursize=${#__current[@]}
|
|
@ -1,44 +0,0 @@
|
|||||||
From 77270329ba94b15c03e2f8154b0866d249e2d71f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Michal Soltys <soltys@ziu.info>
|
|
||||||
Date: Fri, 7 Oct 2011 22:23:50 +0200
|
|
||||||
Subject: [PATCH] dracut.8: add missing lvmconf info
|
|
||||||
|
|
||||||
Signed-off-by: Michal Soltys <soltys@ziu.info>
|
|
||||||
---
|
|
||||||
dracut.8.xml | 17 +++++++++++++++++
|
|
||||||
1 files changed, 17 insertions(+), 0 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut.8.xml b/dracut.8.xml
|
|
||||||
index 709f1a6..47cc371 100644
|
|
||||||
--- a/dracut.8.xml
|
|
||||||
+++ b/dracut.8.xml
|
|
||||||
@@ -1,5 +1,6 @@
|
|
||||||
<?xml version='1.0' encoding='UTF-8'?>
|
|
||||||
<!-- This document was created with Syntext Serna Free. --><!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" []>
|
|
||||||
+<!-- vim: set ts=8 sts=2 sw=2 et: -->
|
|
||||||
<refentry id="dracut8">
|
|
||||||
<refentryinfo>
|
|
||||||
<title>dracut</title>
|
|
||||||
@@ -229,6 +230,22 @@ include in the generic initramfs. This parameter can be specified multiple times
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term>
|
|
||||||
+ <option>--lvmconf</option>
|
|
||||||
+ </term>
|
|
||||||
+ <listitem>
|
|
||||||
+ <para>include local <filename>/etc/lvm/lvm.conf</filename></para>
|
|
||||||
+ </listitem>
|
|
||||||
+ </varlistentry>
|
|
||||||
+ <varlistentry>
|
|
||||||
+ <term>
|
|
||||||
+ <option>--nolvmconf</option>
|
|
||||||
+ </term>
|
|
||||||
+ <listitem>
|
|
||||||
+ <para>do not include local <filename>/etc/lvm/lvm.conf</filename></para>
|
|
||||||
+ </listitem>
|
|
||||||
+ </varlistentry>
|
|
||||||
+ <varlistentry>
|
|
||||||
+ <term>
|
|
||||||
<option>--strip</option>
|
|
||||||
</term>
|
|
||||||
<listitem>
|
|
@ -1,155 +0,0 @@
|
|||||||
From 25b45979f20e5b6b4dfb5a15b1b8f93bccc60625 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Michal Soltys <soltys@ziu.info>
|
|
||||||
Date: Fri, 7 Oct 2011 22:23:51 +0200
|
|
||||||
Subject: [PATCH] fs-lib: add ability to choose fsck tools
|
|
||||||
|
|
||||||
in dracut.conf:
|
|
||||||
|
|
||||||
fscks="<tools>"
|
|
||||||
nofscks="yes"
|
|
||||||
|
|
||||||
and similary on command line:
|
|
||||||
|
|
||||||
--fscks [LIST] (in addition to conf's, if defined there)
|
|
||||||
--nofscks
|
|
||||||
|
|
||||||
Signed-off-by: Michal Soltys <soltys@ziu.info>
|
|
||||||
---
|
|
||||||
dracut | 13 ++++++++++++-
|
|
||||||
dracut.conf | 9 +++++++++
|
|
||||||
modules.d/99fs-lib/fs-lib.sh | 6 +++---
|
|
||||||
modules.d/99fs-lib/module-setup.sh | 23 ++++++++++++++++-------
|
|
||||||
4 files changed, 40 insertions(+), 11 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut b/dracut
|
|
||||||
index de13445..63d4ea6 100755
|
|
||||||
--- a/dracut
|
|
||||||
+++ b/dracut
|
|
||||||
@@ -59,6 +59,8 @@ Creates initial ramdisk images for preloading modules
|
|
||||||
--nomdadmconf Do not include local /etc/mdadm.conf
|
|
||||||
--lvmconf Include local /etc/lvm/lvm.conf
|
|
||||||
--nolvmconf Do not include local /etc/lvm/lvm.conf
|
|
||||||
+ --fscks [LIST] Add a space-separated list of fsck helpers.
|
|
||||||
+ --nofscks Inhibit installation of any fsck helpers.
|
|
||||||
-h, --help This message
|
|
||||||
--debug Output debug information of the build process
|
|
||||||
--profile Output profile information of the build process
|
|
||||||
@@ -204,6 +206,8 @@ while (($# > 0)); do
|
|
||||||
--filesystems) push_arg filesystems_l "$@" || shift;;
|
|
||||||
-I|--install) push_arg install_items "$@" || shift;;
|
|
||||||
--fwdir) push_arg fw_dir_l "$@" || shift;;
|
|
||||||
+ --fscks) push_arg fscks_l "$@" || shift;;
|
|
||||||
+ --nofscks) nofscks_l="yes";;
|
|
||||||
-k|--kmoddir) read_arg drivers_dir_l "$@" || shift;;
|
|
||||||
-c|--conf) read_arg conffile "$@" || shift;;
|
|
||||||
--confdir) read_arg confdir "$@" || shift;;
|
|
||||||
@@ -324,6 +328,12 @@ if (( ${#add_drivers_l[@]} )); then
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
+if (( ${#fscks_l[@]} )); then
|
|
||||||
+ while pop fscks_l val; do
|
|
||||||
+ fscks+=" $val "
|
|
||||||
+ done
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
# these options override the stuff in the config file
|
|
||||||
if (( ${#dracutmodules_l[@]} )); then
|
|
||||||
dracutmodules=''
|
|
||||||
@@ -379,6 +389,7 @@ stdloglvl=$((stdloglvl + verbosity_mod_l))
|
|
||||||
[[ $do_strip ]] || do_strip=no
|
|
||||||
[[ $compress_l ]] && compress=$compress_l
|
|
||||||
[[ $show_modules_l ]] && show_modules=$show_modules_l
|
|
||||||
+[[ $nofscks_l ]] && nofscks="yes"
|
|
||||||
# eliminate IFS hackery when messing with fw_dir
|
|
||||||
fw_dir=${fw_dir//:/ }
|
|
||||||
|
|
||||||
@@ -488,7 +499,7 @@ chmod 755 "$initdir"
|
|
||||||
export initdir dracutbasedir dracutmodules drivers \
|
|
||||||
fw_dir drivers_dir debug no_kernel kernel_only \
|
|
||||||
add_drivers mdadmconf lvmconf filesystems \
|
|
||||||
- use_fstab libdir usrlibdir \
|
|
||||||
+ use_fstab libdir usrlibdir fscks nofscks \
|
|
||||||
stdloglvl sysloglvl fileloglvl kmsgloglvl logfile \
|
|
||||||
debug
|
|
||||||
|
|
||||||
diff --git a/dracut.conf b/dracut.conf
|
|
||||||
index 8684328..a502066 100644
|
|
||||||
--- a/dracut.conf
|
|
||||||
+++ b/dracut.conf
|
|
||||||
@@ -29,3 +29,12 @@ mdadmconf="yes"
|
|
||||||
|
|
||||||
# install local /etc/lvm/lvm.conf
|
|
||||||
lvmconf="yes"
|
|
||||||
+
|
|
||||||
+# A list of fsck tools to install. If it's not specified, module's hardcoded
|
|
||||||
+# default is used, currently: "umount mount /sbin/fsck* xfs_db xfs_check
|
|
||||||
+# xfs_repair e2fsck jfs_fsck reiserfsck btrfsck". The installation is
|
|
||||||
+# opportunistic, so non-existing tools are just ignored.
|
|
||||||
+#fscks=""
|
|
||||||
+
|
|
||||||
+# inhibit installation of any fsck tools
|
|
||||||
+#nofscks="yes"
|
|
||||||
diff --git a/modules.d/99fs-lib/fs-lib.sh b/modules.d/99fs-lib/fs-lib.sh
|
|
||||||
index f36299a..772d5c0 100755
|
|
||||||
--- a/modules.d/99fs-lib/fs-lib.sh
|
|
||||||
+++ b/modules.d/99fs-lib/fs-lib.sh
|
|
||||||
@@ -177,7 +177,7 @@ fsck_drv_std() {
|
|
||||||
# returns 255 if filesystem wasn't checked at all (e.g. due to lack of
|
|
||||||
# necessary tools or insufficient options)
|
|
||||||
fsck_single() {
|
|
||||||
- local FSTAB_FILE=/etc/fstab.fslib
|
|
||||||
+ local FSTAB_FILE=/etc/fstab.empty
|
|
||||||
local _dev="$1"
|
|
||||||
local _fs="${2:-auto}"
|
|
||||||
local _fop="$3"
|
|
||||||
@@ -197,13 +197,13 @@ fsck_single() {
|
|
||||||
# takes list of filesystems to check in parallel; we don't rely on automatic
|
|
||||||
# checking based on fstab, so empty one is passed
|
|
||||||
fsck_batch() {
|
|
||||||
- local FSTAB_FILE=/etc/fstab.fslib
|
|
||||||
+ local FSTAB_FILE=/etc/fstab.empty
|
|
||||||
local _drv=fsck
|
|
||||||
local _dev
|
|
||||||
local _ret
|
|
||||||
local _out
|
|
||||||
|
|
||||||
- [ $# -eq 0 ] && return 255
|
|
||||||
+ [ $# -eq 0 ] || ! type fsck >/dev/null 2>&1 && return 255
|
|
||||||
|
|
||||||
info "Checking filesystems (fsck -M -T -a):"
|
|
||||||
for _dev in "$@"; do
|
|
||||||
diff --git a/modules.d/99fs-lib/module-setup.sh b/modules.d/99fs-lib/module-setup.sh
|
|
||||||
index cbf69a5..68ea9b1 100755
|
|
||||||
--- a/modules.d/99fs-lib/module-setup.sh
|
|
||||||
+++ b/modules.d/99fs-lib/module-setup.sh
|
|
||||||
@@ -11,13 +11,22 @@ depends() {
|
|
||||||
}
|
|
||||||
|
|
||||||
install() {
|
|
||||||
- dracut_install -o umount mount xfs_db xfs_check xfs_repair
|
|
||||||
- dracut_install -o e2fsck
|
|
||||||
- dracut_install -o jfs_fsck
|
|
||||||
- dracut_install -o reiserfsck
|
|
||||||
- dracut_install -o btrfsck
|
|
||||||
- dracut_install -o /sbin/fsck*
|
|
||||||
+ local _helpers
|
|
||||||
|
|
||||||
inst "$moddir/fs-lib.sh" "/lib/fs-lib.sh"
|
|
||||||
- touch ${initdir}/etc/fstab.fslib
|
|
||||||
+ touch ${initdir}/etc/fstab.empty
|
|
||||||
+
|
|
||||||
+ [[ "$nofscks" = "yes" ]] && return
|
|
||||||
+
|
|
||||||
+ if [[ "$fscks" = "${fscks#*[^ ]*}" ]]; then
|
|
||||||
+ _helpers="\
|
|
||||||
+ umount mount /sbin/fsck*
|
|
||||||
+ xfs_db xfs_check xfs_repair
|
|
||||||
+ e2fsck jfs_fsck reiserfsck btrfsck
|
|
||||||
+ "
|
|
||||||
+ else
|
|
||||||
+ _helpers="$fscks"
|
|
||||||
+ fi
|
|
||||||
+
|
|
||||||
+ dracut_install -o $_helpers
|
|
||||||
}
|
|
@ -1,82 +0,0 @@
|
|||||||
From 4c5da0157fad6bde8318dc653d88871f30cd645a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Michal Soltys <soltys@ziu.info>
|
|
||||||
Date: Fri, 7 Oct 2011 22:23:52 +0200
|
|
||||||
Subject: [PATCH] manuals: add info about fs-lib (fsck) configuration
|
|
||||||
|
|
||||||
in dracut.8.xml & dracut.conf.5.xml
|
|
||||||
|
|
||||||
Signed-off-by: Michal Soltys <soltys@ziu.info>
|
|
||||||
---
|
|
||||||
dracut.8.xml | 19 +++++++++++++++++++
|
|
||||||
dracut.conf.5.xml | 22 ++++++++++++++++++++++
|
|
||||||
2 files changed, 41 insertions(+), 0 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut.8.xml b/dracut.8.xml
|
|
||||||
index 47cc371..882eac6 100644
|
|
||||||
--- a/dracut.8.xml
|
|
||||||
+++ b/dracut.8.xml
|
|
||||||
@@ -246,6 +246,25 @@ include in the generic initramfs. This parameter can be specified multiple times
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term>
|
|
||||||
+ <option>--fscks [LIST]</option>
|
|
||||||
+ </term>
|
|
||||||
+ <listitem>
|
|
||||||
+ <para>add a space-separated list of fsck tools, in addition to
|
|
||||||
+ <filename>dracut.conf</filename>'s specification; the
|
|
||||||
+ installation is opportunistic (non-exisiting tools are ignored)
|
|
||||||
+ </para>
|
|
||||||
+ </listitem>
|
|
||||||
+ </varlistentry>
|
|
||||||
+ <varlistentry>
|
|
||||||
+ <term>
|
|
||||||
+ <option>--nofscks</option>
|
|
||||||
+ </term>
|
|
||||||
+ <listitem>
|
|
||||||
+ <para>inhibit installation of any fsck tools</para>
|
|
||||||
+ </listitem>
|
|
||||||
+ </varlistentry>
|
|
||||||
+ <varlistentry>
|
|
||||||
+ <term>
|
|
||||||
<option>--strip</option>
|
|
||||||
</term>
|
|
||||||
<listitem>
|
|
||||||
diff --git a/dracut.conf.5.xml b/dracut.conf.5.xml
|
|
||||||
index 697e655..dbcdb90 100644
|
|
||||||
--- a/dracut.conf.5.xml
|
|
||||||
+++ b/dracut.conf.5.xml
|
|
||||||
@@ -1,5 +1,6 @@
|
|
||||||
<?xml version='1.0' encoding='UTF-8'?>
|
|
||||||
<!-- This document was created with Syntext Serna Free. --><!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" []>
|
|
||||||
+<!-- vim: set ts=8 sts=2 sw=2 et: -->
|
|
||||||
<refentry id="dracutconf5">
|
|
||||||
<refentryinfo>
|
|
||||||
<title>dracut.conf</title>
|
|
||||||
@@ -156,6 +157,27 @@ initramfs.</para>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term>
|
|
||||||
+ <envar>fscks=" <replaceable><fsck tools></replaceable> "</envar>
|
|
||||||
+ </term>
|
|
||||||
+ <listitem>
|
|
||||||
+ <para>Add a space-separated list of fsck tools. If nothing is
|
|
||||||
+ specified, the default is: "<replaceable>umount mount
|
|
||||||
+ /sbin/fsck* xfs_db xfs_check xfs_repair e2fsck jfs_fsck
|
|
||||||
+ reiserfsck btrfsck</replaceable>"
|
|
||||||
+ </para>
|
|
||||||
+ <para>The installation is opportunistic (non-exisiting tools are ignored).<para>
|
|
||||||
+ </listitem>
|
|
||||||
+ </varlistentry>
|
|
||||||
+ <varlistentry>
|
|
||||||
+ <term>
|
|
||||||
+ <envar>nofscks="<replaceable>{yes}</replaceable>"</envar>
|
|
||||||
+ </term>
|
|
||||||
+ <listitem>
|
|
||||||
+ <para>If specified, inhibit installation of any fsck tools.</para>
|
|
||||||
+ </listitem>
|
|
||||||
+ </varlistentry>
|
|
||||||
+ <varlistentry>
|
|
||||||
+ <term>
|
|
||||||
<envar>kernel_only="<replaceable>{yes|no}</replaceable>"</envar>
|
|
||||||
</term>
|
|
||||||
<listitem>
|
|
@ -1,63 +0,0 @@
|
|||||||
From c44e3cb4e5ace39247c0a6619668add2d1dc92e8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Michal Soltys <soltys@ziu.info>
|
|
||||||
Date: Sat, 8 Oct 2011 00:20:50 +0200
|
|
||||||
Subject: [PATCH] dracut-functions: conv/normalize minor corrections
|
|
||||||
|
|
||||||
mostly with reference to earlier commit:
|
|
||||||
|
|
||||||
- bash doesn't need unsetting locals
|
|
||||||
- make normalize_path() a bit faster, also make sure we remove all
|
|
||||||
trailing slashes
|
|
||||||
- normalize paths before tests
|
|
||||||
|
|
||||||
Signed-off-by: Michal Soltys <soltys@ziu.info>
|
|
||||||
---
|
|
||||||
dracut-functions | 22 ++++++++++------------
|
|
||||||
1 files changed, 10 insertions(+), 12 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut-functions b/dracut-functions
|
|
||||||
index 12dfa70..ce593c9 100755
|
|
||||||
--- a/dracut-functions
|
|
||||||
+++ b/dracut-functions
|
|
||||||
@@ -83,31 +83,29 @@ print_vars() {
|
|
||||||
}
|
|
||||||
|
|
||||||
normalize_path() {
|
|
||||||
- p=$1
|
|
||||||
- while [[ ${p#*//*} != $p ]]; do
|
|
||||||
- p=${p/\/\///}
|
|
||||||
- done
|
|
||||||
- echo $p
|
|
||||||
+ shopt -q -s extglob
|
|
||||||
+ set -- "${1//+(\/)//}"
|
|
||||||
+ shopt -q -u extglob
|
|
||||||
+ echo "${1%/}"
|
|
||||||
}
|
|
||||||
|
|
||||||
convert_abs_rel() {
|
|
||||||
- local __current __absolute __abssize __cursize __newpath="" __oldifs
|
|
||||||
- local -i __i __level=0
|
|
||||||
+ local __current __absolute __abssize __cursize __newpath __oldifs
|
|
||||||
+ local -i __i __level
|
|
||||||
# PS4='${BASH_SOURCE}@${LINENO}(${FUNCNAME[0]}): ';
|
|
||||||
|
|
||||||
+ set -- "$(normalize_path "$1")" "$(normalize_path "$2")"
|
|
||||||
+
|
|
||||||
# corner case #1 - self looping link
|
|
||||||
[[ "$1" == "$2" ]] && { echo "${1##*/}"; return; }
|
|
||||||
|
|
||||||
# corner case #2 - own dir link
|
|
||||||
[[ "${1%/*}" == "$2" ]] && { echo "."; return; }
|
|
||||||
|
|
||||||
- __current=$(normalize_path "$1")
|
|
||||||
- __absolute=$(normalize_path "$2")
|
|
||||||
-
|
|
||||||
__oldifs="$IFS"
|
|
||||||
IFS="/"
|
|
||||||
- __current=($__current)
|
|
||||||
- __absolute=($__absolute)
|
|
||||||
+ __current=($1)
|
|
||||||
+ __absolute=($2)
|
|
||||||
IFS="$__oldifs"
|
|
||||||
|
|
||||||
__abssize=${#__absolute[@]}
|
|
@ -1,36 +0,0 @@
|
|||||||
From ffcfc0e432e7b61159fa7e5d0bb992c2e0704f2c Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Mon, 10 Oct 2011 11:55:17 +0200
|
|
||||||
Subject: [PATCH] dracut.*.xml: s/exisiting/existing/g
|
|
||||||
|
|
||||||
---
|
|
||||||
dracut.8.xml | 2 +-
|
|
||||||
dracut.conf.5.xml | 2 +-
|
|
||||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut.8.xml b/dracut.8.xml
|
|
||||||
index 882eac6..d4689ee 100644
|
|
||||||
--- a/dracut.8.xml
|
|
||||||
+++ b/dracut.8.xml
|
|
||||||
@@ -251,7 +251,7 @@ include in the generic initramfs. This parameter can be specified multiple times
|
|
||||||
<listitem>
|
|
||||||
<para>add a space-separated list of fsck tools, in addition to
|
|
||||||
<filename>dracut.conf</filename>'s specification; the
|
|
||||||
- installation is opportunistic (non-exisiting tools are ignored)
|
|
||||||
+ installation is opportunistic (non-existing tools are ignored)
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
diff --git a/dracut.conf.5.xml b/dracut.conf.5.xml
|
|
||||||
index dbcdb90..6909a4a 100644
|
|
||||||
--- a/dracut.conf.5.xml
|
|
||||||
+++ b/dracut.conf.5.xml
|
|
||||||
@@ -165,7 +165,7 @@ initramfs.</para>
|
|
||||||
/sbin/fsck* xfs_db xfs_check xfs_repair e2fsck jfs_fsck
|
|
||||||
reiserfsck btrfsck</replaceable>"
|
|
||||||
</para>
|
|
||||||
- <para>The installation is opportunistic (non-exisiting tools are ignored).<para>
|
|
||||||
+ <para>The installation is opportunistic (non-existing tools are ignored).<para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
@ -1,25 +0,0 @@
|
|||||||
From 450f5d66944e4a4ae005c75a818c3cccd28836f3 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Mon, 10 Oct 2011 20:17:16 +0200
|
|
||||||
Subject: [PATCH] 95udev-rules/module-setup.s: fixed symlink for udevd to
|
|
||||||
initdir
|
|
||||||
|
|
||||||
---
|
|
||||||
modules.d/95udev-rules/module-setup.sh | 4 ++--
|
|
||||||
1 files changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/95udev-rules/module-setup.sh b/modules.d/95udev-rules/module-setup.sh
|
|
||||||
index eddf2b0..915c1fc 100755
|
|
||||||
--- a/modules.d/95udev-rules/module-setup.sh
|
|
||||||
+++ b/modules.d/95udev-rules/module-setup.sh
|
|
||||||
@@ -63,8 +63,8 @@ install() {
|
|
||||||
[ -e /usr/lib/udev/$_i ] && dracut_install /usr/lib/udev/$_i
|
|
||||||
done
|
|
||||||
|
|
||||||
- [ -x /lib/udev/udevd ] && ln -s ../lib/udev/udevd /sbin/udevd
|
|
||||||
- [ -x /usr/lib/udev/udevd ] && ln -s ../usr/lib/udev/udevd /sbin/udevd
|
|
||||||
+ [ -x /lib/udev/udevd ] && ln -s ../lib/udev/udevd "$initdir/sbin/udevd"
|
|
||||||
+ [ -x /usr/lib/udev/udevd ] && ln -s ../usr/lib/udev/udevd "$initdir/sbin/udevd"
|
|
||||||
|
|
||||||
[ -f /etc/arch-release ] && \
|
|
||||||
inst "$moddir/load-modules.sh" /lib/udev/load-modules.sh
|
|
@ -1,30 +0,0 @@
|
|||||||
From 61bc3bbc0e55716e64b78b6709708ce773fbae2d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Dave Young <dyoung@redhat.com>
|
|
||||||
Date: Tue, 11 Oct 2011 11:26:54 +0800
|
|
||||||
Subject: [PATCH] dracut.conf.5.xml: tag mismatch fix
|
|
||||||
|
|
||||||
build failed with:
|
|
||||||
xsltproc -o dracut.conf.5 -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl dracut.conf.5.xml
|
|
||||||
dracut.conf.5.xml:169: parser error : Opening and ending tag mismatch: para line 168 and listitem
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
Fix it by change to </para> at the end
|
|
||||||
|
|
||||||
Signed-off-by: Dave Young <dyoung@redhat.com>
|
|
||||||
---
|
|
||||||
dracut.conf.5.xml | 2 +-
|
|
||||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut.conf.5.xml b/dracut.conf.5.xml
|
|
||||||
index 6909a4a..169e11b 100644
|
|
||||||
--- a/dracut.conf.5.xml
|
|
||||||
+++ b/dracut.conf.5.xml
|
|
||||||
@@ -165,7 +165,7 @@ initramfs.</para>
|
|
||||||
/sbin/fsck* xfs_db xfs_check xfs_repair e2fsck jfs_fsck
|
|
||||||
reiserfsck btrfsck</replaceable>"
|
|
||||||
</para>
|
|
||||||
- <para>The installation is opportunistic (non-existing tools are ignored).<para>
|
|
||||||
+ <para>The installation is opportunistic (non-existing tools are ignored).</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
@ -1,169 +0,0 @@
|
|||||||
From c32bda6bb9ae085116dc071087afc0431e51a5fb Mon Sep 17 00:00:00 2001
|
|
||||||
From: Michal Soltys <soltys@ziu.info>
|
|
||||||
Date: Mon, 10 Oct 2011 23:58:04 +0200
|
|
||||||
Subject: [PATCH] bash3 compat patch
|
|
||||||
|
|
||||||
This patch replaces:
|
|
||||||
|
|
||||||
- {var}>... redirections with functionally identical eval construct +
|
|
||||||
explicit FDs
|
|
||||||
- ^^ and ,, case modifiers with temporary shopt
|
|
||||||
|
|
||||||
This allows us to lower minimum required bash version
|
|
||||||
to at least 3.1 (with current code).
|
|
||||||
|
|
||||||
Signed-off-by: Michal Soltys <soltys@ziu.info>
|
|
||||||
---
|
|
||||||
dracut-functions | 11 +++++++----
|
|
||||||
modules.d/10i18n/module-setup.sh | 8 +++++---
|
|
||||||
modules.d/40network/module-setup.sh | 19 ++++++++++++-------
|
|
||||||
modules.d/90kernel-modules/module-setup.sh | 19 ++++++++++++-------
|
|
||||||
4 files changed, 36 insertions(+), 21 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut-functions b/dracut-functions
|
|
||||||
index ce593c9..1ef5269 100755
|
|
||||||
--- a/dracut-functions
|
|
||||||
+++ b/dracut-functions
|
|
||||||
@@ -821,10 +821,11 @@ install_kmod_with_fw() {
|
|
||||||
# It will be passed the full path to the found kernel module
|
|
||||||
# $2 = module to get dependencies for
|
|
||||||
# rest of args = arguments to modprobe
|
|
||||||
+# _fderr specifies FD passed from surrounding scope
|
|
||||||
for_each_kmod_dep() {
|
|
||||||
local _func=$1 _kmod=$2 _cmd _modpath _options _found=0
|
|
||||||
shift 2
|
|
||||||
- modprobe "$@" --ignore-install --show-depends $_kmod 2>&$modprobe_stderr | (
|
|
||||||
+ modprobe "$@" --ignore-install --show-depends $_kmod 2>&${_fderr} | (
|
|
||||||
while read _cmd _modpath _options; do
|
|
||||||
[[ $_cmd = insmod ]] || continue
|
|
||||||
$_func ${_modpath} || exit $?
|
|
||||||
@@ -885,6 +886,8 @@ find_kernel_modules () {
|
|
||||||
# install kernel modules along with all their dependencies.
|
|
||||||
instmods() {
|
|
||||||
[[ $no_kernel = yes ]] && return
|
|
||||||
+ # called [sub]functions inherit _fderr
|
|
||||||
+ local _fderr=9
|
|
||||||
|
|
||||||
function inst1mod() {
|
|
||||||
local _mod="$1"
|
|
||||||
@@ -949,9 +952,9 @@ instmods() {
|
|
||||||
return $_ret
|
|
||||||
}
|
|
||||||
|
|
||||||
- # Capture all stderr from modprobe onto a new fd $modprobe_stderr,
|
|
||||||
- # and pipe it into egrep. See REDIRECTION in bash manpage.
|
|
||||||
- ( instmods_1 "$@" ) {modprobe_stderr}>&1 \
|
|
||||||
+ # Capture all stderr from modprobe to _fderr. We could use {var}>...
|
|
||||||
+ # redirections, but that would make dracut require bash4 at least.
|
|
||||||
+ eval "( instmods_1 \"\$@\" ) ${_fderr}>&1" \
|
|
||||||
| egrep -v 'FATAL: Module .* not found.' | derror
|
|
||||||
return $?
|
|
||||||
}
|
|
||||||
diff --git a/modules.d/10i18n/module-setup.sh b/modules.d/10i18n/module-setup.sh
|
|
||||||
index 5c09100..6248607 100755
|
|
||||||
--- a/modules.d/10i18n/module-setup.sh
|
|
||||||
+++ b/modules.d/10i18n/module-setup.sh
|
|
||||||
@@ -150,22 +150,24 @@ install() {
|
|
||||||
inst_simple ${kbddir}/unimaps/${FONT_UNIMAP}.uni
|
|
||||||
fi
|
|
||||||
|
|
||||||
+ shopt -q -s nocasematch
|
|
||||||
if [[ ${UNICODE} ]]
|
|
||||||
then
|
|
||||||
- if [[ ${UNICODE^^} = YES || ${UNICODE} = 1 ]]
|
|
||||||
+ if [[ ${UNICODE} = YES || ${UNICODE} = 1 ]]
|
|
||||||
then
|
|
||||||
UNICODE=1
|
|
||||||
- elif [[ ${UNICODE^^} = NO || ${UNICODE} = 0 ]]
|
|
||||||
+ elif [[ ${UNICODE} = NO || ${UNICODE} = 0 ]]
|
|
||||||
then
|
|
||||||
UNICODE=0
|
|
||||||
else
|
|
||||||
UNICODE=''
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
- if [[ ! ${UNICODE} && ${LANG^^} =~ .*\.UTF-?8 ]]
|
|
||||||
+ if [[ ! ${UNICODE} && ${LANG} =~ .*\.UTF-?8 ]]
|
|
||||||
then
|
|
||||||
UNICODE=1
|
|
||||||
fi
|
|
||||||
+ shopt -q -u nocasematch
|
|
||||||
|
|
||||||
mksubdirs ${initdir}${I18N_CONF}
|
|
||||||
mksubdirs ${initdir}${VCONFIG_CONF}
|
|
||||||
diff --git a/modules.d/40network/module-setup.sh b/modules.d/40network/module-setup.sh
|
|
||||||
index 03684f1..eb7ef9b 100755
|
|
||||||
--- a/modules.d/40network/module-setup.sh
|
|
||||||
+++ b/modules.d/40network/module-setup.sh
|
|
||||||
@@ -27,6 +27,8 @@ installkernel() {
|
|
||||||
net_module_filter() {
|
|
||||||
local _net_drivers='eth_type_trans|register_virtio_device'
|
|
||||||
local _unwanted_drivers='/(wireless|isdn|uwb)/'
|
|
||||||
+ # subfunctions inherit following FDs
|
|
||||||
+ local _merge=8 _side2=9
|
|
||||||
function nmf1() {
|
|
||||||
local _fname _fcont
|
|
||||||
while read _fname; do
|
|
||||||
@@ -40,14 +42,17 @@ installkernel() {
|
|
||||||
&& echo "$_fname"
|
|
||||||
done
|
|
||||||
}
|
|
||||||
+ function rotor() {
|
|
||||||
+ local _f1 _f2
|
|
||||||
+ while read _f1; do
|
|
||||||
+ echo "$_f1"
|
|
||||||
+ if read _f2; then
|
|
||||||
+ echo "$_f2" 1>&${_side2}
|
|
||||||
+ fi
|
|
||||||
+ done | nmf1 1>&${_merge}
|
|
||||||
+ }
|
|
||||||
# Use two parallel streams to filter alternating modules.
|
|
||||||
- local merge side2
|
|
||||||
- ( ( local _f1 _f2
|
|
||||||
- while read _f1; do echo "$_f1"
|
|
||||||
- if read _f2; then echo "$_f2" 1>&${side2}; fi
|
|
||||||
- done \
|
|
||||||
- | nmf1 1>&${merge} ) {side2}>&1 \
|
|
||||||
- | nmf1 ) {merge}>&1
|
|
||||||
+ eval "( ( rotor ) ${_side2}>&1 | nmf1 ) ${_merge}>&1"
|
|
||||||
}
|
|
||||||
|
|
||||||
find_kernel_modules_by_path drivers/net | net_module_filter | instmods
|
|
||||||
diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh
|
|
||||||
index 09bd87e..6e3a918 100755
|
|
||||||
--- a/modules.d/90kernel-modules/module-setup.sh
|
|
||||||
+++ b/modules.d/90kernel-modules/module-setup.sh
|
|
||||||
@@ -11,6 +11,8 @@ installkernel() {
|
|
||||||
}
|
|
||||||
block_module_filter() {
|
|
||||||
local _blockfuncs='ahci_init_controller|ata_scsi_ioctl|scsi_add_host|blk_init_queue|register_mtd_blktrans|scsi_esp_register|register_virtio_device'
|
|
||||||
+ # subfunctions inherit following FDs
|
|
||||||
+ local _merge=8 _side2=9
|
|
||||||
function bmf1() {
|
|
||||||
local _f
|
|
||||||
while read _f; do case "$_f" in
|
|
||||||
@@ -19,14 +21,17 @@ installkernel() {
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
}
|
|
||||||
+ function rotor() {
|
|
||||||
+ local _f1 _f2
|
|
||||||
+ while read _f1; do
|
|
||||||
+ echo "$_f1"
|
|
||||||
+ if read _f2; then
|
|
||||||
+ echo "$_f2" 1>&${_side2}
|
|
||||||
+ fi
|
|
||||||
+ done | bmf1 1>&${_merge}
|
|
||||||
+ }
|
|
||||||
# Use two parallel streams to filter alternating modules.
|
|
||||||
- local merge side2
|
|
||||||
- ( ( local _f1 _f2
|
|
||||||
- while read _f1; do echo "$_f1"
|
|
||||||
- if read _f2; then echo "$_f2" 1>&${side2}; fi
|
|
||||||
- done \
|
|
||||||
- | bmf1 1>&${merge} ) {side2}>&1 \
|
|
||||||
- | bmf1 ) {merge}>&1
|
|
||||||
+ eval "( ( rotor ) ${_side2}>&1 | bmf1 ) ${_merge}>&1"
|
|
||||||
}
|
|
||||||
hostonly='' instmods sr_mod sd_mod scsi_dh scsi_dh_rdac scsi_dh_emc
|
|
||||||
hostonly='' instmods pcmcia firewire-ohci
|
|
@ -1,30 +0,0 @@
|
|||||||
From d239b550ce9e6a80342965974c4503cfde736fbe Mon Sep 17 00:00:00 2001
|
|
||||||
From: Michal Soltys <soltys@ziu.info>
|
|
||||||
Date: Mon, 10 Oct 2011 23:58:05 +0200
|
|
||||||
Subject: [PATCH] explicitly verify bash version
|
|
||||||
|
|
||||||
A simple check in main dracut script.
|
|
||||||
|
|
||||||
Signed-off-by: Michal Soltys <soltys@ziu.info>
|
|
||||||
---
|
|
||||||
dracut | 7 +++++++
|
|
||||||
1 files changed, 7 insertions(+), 0 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut b/dracut
|
|
||||||
index 63d4ea6..205f5d1 100755
|
|
||||||
--- a/dracut
|
|
||||||
+++ b/dracut
|
|
||||||
@@ -418,6 +418,13 @@ else
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
+# Verify bash version, curret minimum is 3.1
|
|
||||||
+if (( ${BASH_VERSINFO[0]} < 3 ||
|
|
||||||
+ ( ${BASH_VERSINFO[0]} == 3 && ${BASH_VERSINFO[1]} < 1 ) )); then
|
|
||||||
+ dfatal 'You need at least Bash 3.1 to use dracut, sorry.'
|
|
||||||
+ exit 1
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
dracutfunctions=$dracutbasedir/dracut-functions
|
|
||||||
export dracutfunctions
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
|||||||
From 7e8228cf5aa43722d2e6a71b5593ed1478938a31 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Michal Soltys <soltys@ziu.info>
|
|
||||||
Date: Mon, 17 Oct 2011 23:01:49 +0200
|
|
||||||
Subject: [PATCH] dracut: remove duplicate options
|
|
||||||
|
|
||||||
'-I' and '--fwdir' were both read_arg and push_arg, and the latter has
|
|
||||||
priority.
|
|
||||||
|
|
||||||
Signed-off-by: Michal Soltys <soltys@ziu.info>
|
|
||||||
---
|
|
||||||
dracut | 2 --
|
|
||||||
1 files changed, 0 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut b/dracut
|
|
||||||
index 205f5d1..4bc0db3 100755
|
|
||||||
--- a/dracut
|
|
||||||
+++ b/dracut
|
|
||||||
@@ -212,8 +212,6 @@ while (($# > 0)); do
|
|
||||||
-c|--conf) read_arg conffile "$@" || shift;;
|
|
||||||
--confdir) read_arg confdir "$@" || shift;;
|
|
||||||
-L|--stdlog) read_arg stdloglvl_l "$@" || shift;;
|
|
||||||
- -I|--install) read_arg install_items "$@" || shift;;
|
|
||||||
- --fwdir) read_arg fw_dir_l "$@" || shift;;
|
|
||||||
--compress) read_arg compress_l "$@" || shift;;
|
|
||||||
--prefix) read_arg prefix_l "$@" || shift;;
|
|
||||||
-f|--force) force=yes;;
|
|
@ -1,31 +0,0 @@
|
|||||||
From 2cd4a8065ac2bb6bf3708d681de56bbe1984c3ce Mon Sep 17 00:00:00 2001
|
|
||||||
From: Will Woods <wwoods@redhat.com>
|
|
||||||
Date: Wed, 12 Oct 2011 22:48:08 -0400
|
|
||||||
Subject: [PATCH] dracut-lib.sh: fix dropped backslashes in CMDLINE
|
|
||||||
|
|
||||||
The "read" shell builtin consumes backslashes, which is a problem if
|
|
||||||
your root device is something like "LABEL=Fedora\x2016".
|
|
||||||
|
|
||||||
Using "read -r" tells the shell to leave backslashes alone.
|
|
||||||
---
|
|
||||||
modules.d/99base/dracut-lib.sh | 4 ++--
|
|
||||||
1 files changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
|
|
||||||
index 62c3bf5..bc4d7c9 100755
|
|
||||||
--- a/modules.d/99base/dracut-lib.sh
|
|
||||||
+++ b/modules.d/99base/dracut-lib.sh
|
|
||||||
@@ -35,11 +35,11 @@ _getcmdline() {
|
|
||||||
unset _line
|
|
||||||
if [ -z "$CMDLINE" ]; then
|
|
||||||
if [ -e /etc/cmdline ]; then
|
|
||||||
- while read _line; do
|
|
||||||
+ while read -r _line; do
|
|
||||||
CMDLINE_ETC="$CMDLINE_ETC $_line";
|
|
||||||
done </etc/cmdline;
|
|
||||||
fi
|
|
||||||
- read CMDLINE </proc/cmdline;
|
|
||||||
+ read -r CMDLINE </proc/cmdline;
|
|
||||||
CMDLINE="$CMDLINE $CMDLINE_ETC"
|
|
||||||
fi
|
|
||||||
}
|
|
@ -1,22 +0,0 @@
|
|||||||
From 54ba7acba14a5db036914f2b18ff6ef569665d4e Mon Sep 17 00:00:00 2001
|
|
||||||
From: Will Woods <wwoods@redhat.com>
|
|
||||||
Date: Wed, 12 Oct 2011 22:49:35 -0400
|
|
||||||
Subject: [PATCH] dmsquash-live: fix log message about root/liveroot
|
|
||||||
|
|
||||||
---
|
|
||||||
modules.d/90dmsquash-live/parse-dmsquash-live.sh | 2 +-
|
|
||||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/90dmsquash-live/parse-dmsquash-live.sh b/modules.d/90dmsquash-live/parse-dmsquash-live.sh
|
|
||||||
index 6e0db29..5cbcd2c 100755
|
|
||||||
--- a/modules.d/90dmsquash-live/parse-dmsquash-live.sh
|
|
||||||
+++ b/modules.d/90dmsquash-live/parse-dmsquash-live.sh
|
|
||||||
@@ -41,7 +41,7 @@ case "$liveroot" in
|
|
||||||
live:/*.[Ii][Mm][Gg]|/*.[Ii][Mm][Gg])
|
|
||||||
[ -f "${root#live:}" ] && rootok=1 ;;
|
|
||||||
esac
|
|
||||||
-info "root was $root, liveroot is now $liveroot"
|
|
||||||
+info "liveroot was $liveroot, is now $root"
|
|
||||||
|
|
||||||
# make sure that init doesn't complain
|
|
||||||
[ -z "$root" ] && root="live"
|
|
@ -1,61 +0,0 @@
|
|||||||
From f8342dd5f2235979db7b5fc0d54df408538921e6 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Michal Soltys <soltys@ziu.info>
|
|
||||||
Date: Mon, 17 Oct 2011 23:36:33 +0200
|
|
||||||
Subject: [PATCH] check root candidates more carefully
|
|
||||||
|
|
||||||
This is from the following thread:
|
|
||||||
|
|
||||||
http://thread.gmane.org/gmane.linux.raid/35753/focus=35795
|
|
||||||
|
|
||||||
Additional tests + more specific info.
|
|
||||||
|
|
||||||
Signed-off-by: Michal Soltys <soltys@ziu.info>
|
|
||||||
|
|
||||||
[harald@redhat.com: usable_root(): relaxed check for root]
|
|
||||||
---
|
|
||||||
modules.d/99base/dracut-lib.sh | 9 +++++++++
|
|
||||||
modules.d/99base/init | 12 ++++++++++--
|
|
||||||
2 files changed, 19 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
|
|
||||||
index bc4d7c9..2cfaf93 100755
|
|
||||||
--- a/modules.d/99base/dracut-lib.sh
|
|
||||||
+++ b/modules.d/99base/dracut-lib.sh
|
|
||||||
@@ -544,3 +544,12 @@ foreach_uuid_until() (
|
|
||||||
|
|
||||||
return 1
|
|
||||||
)
|
|
||||||
+
|
|
||||||
+usable_root() {
|
|
||||||
+ local _d
|
|
||||||
+ [ -d $1 ] || return 1
|
|
||||||
+ for _d in proc sys dev; do
|
|
||||||
+ [ -e "$1"/$_d ] || return 1
|
|
||||||
+ done
|
|
||||||
+ return 0
|
|
||||||
+}
|
|
||||||
diff --git a/modules.d/99base/init b/modules.d/99base/init
|
|
||||||
index 06d61a8..556ac68 100755
|
|
||||||
--- a/modules.d/99base/init
|
|
||||||
+++ b/modules.d/99base/init
|
|
||||||
@@ -286,10 +286,18 @@ getarg 'rd.break=mount' 'rdbreak=mount' && emergency_shell -n mount "Break mount
|
|
||||||
# be sourced any number of times. As soon as one suceeds, no more are sourced.
|
|
||||||
i=0
|
|
||||||
while :; do
|
|
||||||
- [ -d "$NEWROOT/proc" ] && break;
|
|
||||||
+ if ismounted "$NEWROOT"; then
|
|
||||||
+ usable_root "$NEWROOT" && break;
|
|
||||||
+ umount "$NEWROOT"
|
|
||||||
+ fi
|
|
||||||
for f in $hookdir/mount/*.sh; do
|
|
||||||
[ -f "$f" ] && . "$f"
|
|
||||||
- [ -d "$NEWROOT/proc" ] && break;
|
|
||||||
+ if ismounted "$NEWROOT"; then
|
|
||||||
+ usable_root "$NEWROOT" && break;
|
|
||||||
+ warn "$NEWROOT has no proper rootfs layout, ignoring and removing offending mount hook"
|
|
||||||
+ umount "$NEWROOT"
|
|
||||||
+ rm -f "$f"
|
|
||||||
+ fi
|
|
||||||
done
|
|
||||||
|
|
||||||
i=$(($i+1))
|
|
@ -1,22 +0,0 @@
|
|||||||
From d3be5a89e5714f43a6c288878e4b2746aa781159 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Wed, 19 Oct 2011 14:24:07 +0200
|
|
||||||
Subject: [PATCH] netroot: do not die, if arping failed
|
|
||||||
|
|
||||||
---
|
|
||||||
modules.d/40network/netroot | 2 +-
|
|
||||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/40network/netroot b/modules.d/40network/netroot
|
|
||||||
index 462da51..9d996cc 100755
|
|
||||||
--- a/modules.d/40network/netroot
|
|
||||||
+++ b/modules.d/40network/netroot
|
|
||||||
@@ -119,7 +119,7 @@ if [ -n "$netroot_ip" ]; then
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if [ -n "$dest" ] && ! arping -q -f -w 60 -I $netif $dest ; then
|
|
||||||
- die "Resolving $dest via ARP on $netif failed"
|
|
||||||
+ dinfo "Resolving $dest via ARP on $netif failed"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Source netroot hooks before we start the handler
|
|
@ -1,29 +0,0 @@
|
|||||||
From 6f000443170614db0972fe6fb848560d9285bc8b Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Thu, 20 Oct 2011 12:13:25 +0200
|
|
||||||
Subject: [PATCH] 95udev-rules/module-setup.sh: correctly create udevd symlink
|
|
||||||
|
|
||||||
---
|
|
||||||
modules.d/95udev-rules/module-setup.sh | 9 +++++++--
|
|
||||||
1 files changed, 7 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/95udev-rules/module-setup.sh b/modules.d/95udev-rules/module-setup.sh
|
|
||||||
index 915c1fc..5f8bae8 100755
|
|
||||||
--- a/modules.d/95udev-rules/module-setup.sh
|
|
||||||
+++ b/modules.d/95udev-rules/module-setup.sh
|
|
||||||
@@ -63,8 +63,13 @@ install() {
|
|
||||||
[ -e /usr/lib/udev/$_i ] && dracut_install /usr/lib/udev/$_i
|
|
||||||
done
|
|
||||||
|
|
||||||
- [ -x /lib/udev/udevd ] && ln -s ../lib/udev/udevd "$initdir/sbin/udevd"
|
|
||||||
- [ -x /usr/lib/udev/udevd ] && ln -s ../usr/lib/udev/udevd "$initdir/sbin/udevd"
|
|
||||||
+ if ! [ -e "$initdir/sbin/udevd" ]; then
|
|
||||||
+ if [ -x /usr/lib/udev/udevd ]; then
|
|
||||||
+ ln -s /usr/lib/udev/udevd "$initdir/sbin/udevd"
|
|
||||||
+ elif [ -x /lib/udev/udevd ]; then
|
|
||||||
+ ln -s /lib/udev/udevd "$initdir/sbin/udevd"
|
|
||||||
+ fi
|
|
||||||
+ fi
|
|
||||||
|
|
||||||
[ -f /etc/arch-release ] && \
|
|
||||||
inst "$moddir/load-modules.sh" /lib/udev/load-modules.sh
|
|
@ -1,60 +0,0 @@
|
|||||||
From e2d92b5adf710bacaea14e3fbca936997c6b9469 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Thu, 20 Oct 2011 12:13:50 +0200
|
|
||||||
Subject: [PATCH] */module-setup.sh: turn off debugging for module search
|
|
||||||
|
|
||||||
turn off debugging for module search, because it clutters the debug log
|
|
||||||
---
|
|
||||||
modules.d/40network/module-setup.sh | 2 ++
|
|
||||||
modules.d/90kernel-modules/module-setup.sh | 2 ++
|
|
||||||
modules.d/90multipath/module-setup.sh | 2 ++
|
|
||||||
3 files changed, 6 insertions(+), 0 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/40network/module-setup.sh b/modules.d/40network/module-setup.sh
|
|
||||||
index eb7ef9b..fbf6f34 100755
|
|
||||||
--- a/modules.d/40network/module-setup.sh
|
|
||||||
+++ b/modules.d/40network/module-setup.sh
|
|
||||||
@@ -52,7 +52,9 @@ installkernel() {
|
|
||||||
done | nmf1 1>&${_merge}
|
|
||||||
}
|
|
||||||
# Use two parallel streams to filter alternating modules.
|
|
||||||
+ set +x
|
|
||||||
eval "( ( rotor ) ${_side2}>&1 | nmf1 ) ${_merge}>&1"
|
|
||||||
+ [[ $debug ]] && set -x
|
|
||||||
}
|
|
||||||
|
|
||||||
find_kernel_modules_by_path drivers/net | net_module_filter | instmods
|
|
||||||
diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh
|
|
||||||
index 6e3a918..db4b276 100755
|
|
||||||
--- a/modules.d/90kernel-modules/module-setup.sh
|
|
||||||
+++ b/modules.d/90kernel-modules/module-setup.sh
|
|
||||||
@@ -31,7 +31,9 @@ installkernel() {
|
|
||||||
done | bmf1 1>&${_merge}
|
|
||||||
}
|
|
||||||
# Use two parallel streams to filter alternating modules.
|
|
||||||
+ set +x
|
|
||||||
eval "( ( rotor ) ${_side2}>&1 | bmf1 ) ${_merge}>&1"
|
|
||||||
+ [[ $debug ]] && set -x
|
|
||||||
}
|
|
||||||
hostonly='' instmods sr_mod sd_mod scsi_dh scsi_dh_rdac scsi_dh_emc
|
|
||||||
hostonly='' instmods pcmcia firewire-ohci
|
|
||||||
diff --git a/modules.d/90multipath/module-setup.sh b/modules.d/90multipath/module-setup.sh
|
|
||||||
index f68b58d..43f0a3d 100755
|
|
||||||
--- a/modules.d/90multipath/module-setup.sh
|
|
||||||
+++ b/modules.d/90multipath/module-setup.sh
|
|
||||||
@@ -33,6 +33,7 @@ depends() {
|
|
||||||
}
|
|
||||||
|
|
||||||
installkernel() {
|
|
||||||
+ set +x
|
|
||||||
mp_mod_filter() {
|
|
||||||
local _mpfuncs='scsi_register_device_handler|dm_dirty_log_type_register|dm_register_path_selector|dm_register_target'
|
|
||||||
local _f
|
|
||||||
@@ -45,6 +46,7 @@ installkernel() {
|
|
||||||
|
|
||||||
( find_kernel_modules_by_path drivers/scsi;
|
|
||||||
find_kernel_modules_by_path drivers/md ) | mp_mod_filter | instmods
|
|
||||||
+ [[ $debug ]] && set -x
|
|
||||||
}
|
|
||||||
|
|
||||||
install() {
|
|
@ -1,22 +0,0 @@
|
|||||||
From 15a5dc5b89facd084eaa400630510ca551b52afd Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Thu, 20 Oct 2011 11:13:34 +0200
|
|
||||||
Subject: [PATCH] 99base/init: fix check for in kernel polling
|
|
||||||
|
|
||||||
---
|
|
||||||
modules.d/99base/init | 2 +-
|
|
||||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/99base/init b/modules.d/99base/init
|
|
||||||
index 556ac68..36b2152 100755
|
|
||||||
--- a/modules.d/99base/init
|
|
||||||
+++ b/modules.d/99base/init
|
|
||||||
@@ -243,7 +243,7 @@ while :; do
|
|
||||||
# no more udev jobs and queues empty.
|
|
||||||
sleep 0.5
|
|
||||||
|
|
||||||
- if [ ! -e /sys/module/block/parameters/uevent ]; then
|
|
||||||
+ if [ ! -e /sys/module/block/parameters/events_dfl_poll_msecs ]; then
|
|
||||||
# if the kernel does not support autopolling
|
|
||||||
# then we have to do a
|
|
||||||
# dirty hack for some cdrom drives,
|
|
@ -1,59 +0,0 @@
|
|||||||
From c2801d093829e3b87ec4c6d7054b43bad4bd59ad Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Thu, 20 Oct 2011 11:14:10 +0200
|
|
||||||
Subject: [PATCH] 99base/dracut-lib.sh: add /etc/cmdline/*.conf parsing
|
|
||||||
|
|
||||||
modules and overlay images can set default kernel command line
|
|
||||||
parameters in /etc/cmdline/*.conf in the initramfs.
|
|
||||||
---
|
|
||||||
dracut.kernel.7.xml | 8 ++++++++
|
|
||||||
modules.d/99base/dracut-lib.sh | 9 ++++++++-
|
|
||||||
2 files changed, 16 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut.kernel.7.xml b/dracut.kernel.7.xml
|
|
||||||
index 8d50d94..2ba0570 100644
|
|
||||||
--- a/dracut.kernel.7.xml
|
|
||||||
+++ b/dracut.kernel.7.xml
|
|
||||||
@@ -1268,6 +1268,14 @@ set in the configuration files.</para>
|
|
||||||
<para>Can contain additional command line options.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
+ <varlistentry>
|
|
||||||
+ <term>
|
|
||||||
+ <filename>/etc/cmdline.d/*.conf</filename>
|
|
||||||
+ </term>
|
|
||||||
+ <listitem>
|
|
||||||
+ <para>Can contain additional command line options.</para>
|
|
||||||
+ </listitem>
|
|
||||||
+ </varlistentry>
|
|
||||||
</variablelist>
|
|
||||||
</refsect1>
|
|
||||||
<refsect1>
|
|
||||||
diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
|
|
||||||
index 2cfaf93..8d294ee 100755
|
|
||||||
--- a/modules.d/99base/dracut-lib.sh
|
|
||||||
+++ b/modules.d/99base/dracut-lib.sh
|
|
||||||
@@ -32,6 +32,7 @@ str_replace() {
|
|
||||||
|
|
||||||
_getcmdline() {
|
|
||||||
local _line
|
|
||||||
+ local _i
|
|
||||||
unset _line
|
|
||||||
if [ -z "$CMDLINE" ]; then
|
|
||||||
if [ -e /etc/cmdline ]; then
|
|
||||||
@@ -39,8 +40,14 @@ _getcmdline() {
|
|
||||||
CMDLINE_ETC="$CMDLINE_ETC $_line";
|
|
||||||
done </etc/cmdline;
|
|
||||||
fi
|
|
||||||
+ for _i in /etc/cmdline.d/*.conf; do
|
|
||||||
+ [ -e "$_i" ] || continue
|
|
||||||
+ while read -r _line; do
|
|
||||||
+ CMDLINE_ETC_D="$CMDLINE_ETC_D $_line";
|
|
||||||
+ done <"$_i";
|
|
||||||
+ done
|
|
||||||
read -r CMDLINE </proc/cmdline;
|
|
||||||
- CMDLINE="$CMDLINE $CMDLINE_ETC"
|
|
||||||
+ CMDLINE="$CMDLINE_ETC_D $CMDLINE_ETC $CMDLINE"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
@ -1,38 +0,0 @@
|
|||||||
From 5259da1043323e5bc74a8f1c3db18d112c312b03 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Michal Soltys <soltys@ziu.info>
|
|
||||||
Date: Tue, 18 Oct 2011 20:33:19 +0200
|
|
||||||
Subject: [PATCH] minor changes
|
|
||||||
|
|
||||||
- in 10i18n - do stty -iutf8 on non-utf8 consoles, for consistency with
|
|
||||||
iutf8 on utf8 ones
|
|
||||||
- vim modeline in xml file
|
|
||||||
|
|
||||||
Signed-off-by: Michal Soltys <soltys@ziu.info>
|
|
||||||
---
|
|
||||||
dracut.kernel.7.xml | 1 +
|
|
||||||
modules.d/10i18n/console_init | 1 +
|
|
||||||
2 files changed, 2 insertions(+), 0 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut.kernel.7.xml b/dracut.kernel.7.xml
|
|
||||||
index 2ba0570..7cd7b81 100644
|
|
||||||
--- a/dracut.kernel.7.xml
|
|
||||||
+++ b/dracut.kernel.7.xml
|
|
||||||
@@ -1,5 +1,6 @@
|
|
||||||
<?xml version='1.0' encoding='UTF-8'?>
|
|
||||||
<!-- This document was created with Syntext Serna Free. --><!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" []>
|
|
||||||
+<!-- vim: set ts=8 sts=2 sw=2 et: -->
|
|
||||||
<refentry id="dracutkernel7">
|
|
||||||
<refentryinfo>
|
|
||||||
<title>dracut.kernel</title>
|
|
||||||
diff --git a/modules.d/10i18n/console_init b/modules.d/10i18n/console_init
|
|
||||||
index 110cb0a..b46046b 100755
|
|
||||||
--- a/modules.d/10i18n/console_init
|
|
||||||
+++ b/modules.d/10i18n/console_init
|
|
||||||
@@ -22,6 +22,7 @@ set_terminal() {
|
|
||||||
stty -F ${dev} iutf8
|
|
||||||
else
|
|
||||||
printf '\033%%@' >&7
|
|
||||||
+ stty -F ${dev} -iutf8
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
|||||||
From d73bbd57ee901b8470d9e42f5e004e240e00af62 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Thu, 20 Oct 2011 12:33:33 +0200
|
|
||||||
Subject: [PATCH] 90livenet: check() for wget
|
|
||||||
|
|
||||||
---
|
|
||||||
modules.d/90livenet/module-setup.sh | 1 +
|
|
||||||
1 files changed, 1 insertions(+), 0 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules.d/90livenet/module-setup.sh b/modules.d/90livenet/module-setup.sh
|
|
||||||
index b166859..3ee7521 100755
|
|
||||||
--- a/modules.d/90livenet/module-setup.sh
|
|
||||||
+++ b/modules.d/90livenet/module-setup.sh
|
|
||||||
@@ -4,6 +4,7 @@
|
|
||||||
check() {
|
|
||||||
# a live, host-only image doesn't really make a lot of sense
|
|
||||||
[[ $hostonly ]] && return 1
|
|
||||||
+ command -v wget || return 1
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
@ -1,75 +0,0 @@
|
|||||||
From 44cef0d5637f5f6982612d22c92f6d299ec316f9 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
|
||||||
Date: Thu, 20 Oct 2011 13:04:10 +0200
|
|
||||||
Subject: [PATCH] dracut-logger: re-set debugging
|
|
||||||
|
|
||||||
---
|
|
||||||
dracut-logger | 8 +++++++-
|
|
||||||
1 files changed, 7 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut-logger b/dracut-logger
|
|
||||||
index ce28208..f1b3a7e 100755
|
|
||||||
--- a/dracut-logger
|
|
||||||
+++ b/dracut-logger
|
|
||||||
@@ -313,7 +313,6 @@ dlog() {
|
|
||||||
_do_dlog "$1" "$line"
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
- [ -n "$debug" ] && set -x || :
|
|
||||||
}
|
|
||||||
|
|
||||||
## @brief Logs message at TRACE level (6)
|
|
||||||
@@ -323,6 +322,7 @@ dlog() {
|
|
||||||
dtrace() {
|
|
||||||
set +x
|
|
||||||
dlog 6 "$@"
|
|
||||||
+ [ -n "$debug" ] && set -x || :
|
|
||||||
}
|
|
||||||
|
|
||||||
## @brief Logs message at DEBUG level (5)
|
|
||||||
@@ -332,6 +332,7 @@ dtrace() {
|
|
||||||
ddebug() {
|
|
||||||
set +x
|
|
||||||
dlog 5 "$@"
|
|
||||||
+ [ -n "$debug" ] && set -x || :
|
|
||||||
}
|
|
||||||
|
|
||||||
## @brief Logs message at INFO level (4)
|
|
||||||
@@ -341,6 +342,7 @@ ddebug() {
|
|
||||||
dinfo() {
|
|
||||||
set +x
|
|
||||||
dlog 4 "$@"
|
|
||||||
+ [ -n "$debug" ] && set -x || :
|
|
||||||
}
|
|
||||||
|
|
||||||
## @brief Logs message at WARN level (3)
|
|
||||||
@@ -350,6 +352,7 @@ dinfo() {
|
|
||||||
dwarn() {
|
|
||||||
set +x
|
|
||||||
dlog 3 "$@"
|
|
||||||
+ [ -n "$debug" ] && set -x || :
|
|
||||||
}
|
|
||||||
|
|
||||||
## @brief It's an alias to dwarn() function.
|
|
||||||
@@ -359,6 +362,7 @@ dwarn() {
|
|
||||||
dwarning() {
|
|
||||||
set +x
|
|
||||||
dwarn "$@"
|
|
||||||
+ [ -n "$debug" ] && set -x || :
|
|
||||||
}
|
|
||||||
|
|
||||||
## @brief Logs message at ERROR level (2)
|
|
||||||
@@ -368,6 +372,7 @@ dwarning() {
|
|
||||||
derror() {
|
|
||||||
set +x
|
|
||||||
dlog 2 "$@"
|
|
||||||
+ [ -n "$debug" ] && set -x || :
|
|
||||||
}
|
|
||||||
|
|
||||||
## @brief Logs message at FATAL level (1)
|
|
||||||
@@ -377,4 +382,5 @@ derror() {
|
|
||||||
dfatal() {
|
|
||||||
set +x
|
|
||||||
dlog 1 "$@"
|
|
||||||
+ [ -n "$debug" ] && set -x || :
|
|
||||||
}
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user