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