summaryrefslogtreecommitdiffstats
path: root/source/a/mkinitrd
diff options
context:
space:
mode:
Diffstat (limited to 'source/a/mkinitrd')
-rw-r--r--source/a/mkinitrd/0004-check-if-BASEDEV-is-a-partition-of-a-RAID-volume.patch23
-rwxr-xr-xsource/a/mkinitrd/mkinitrd.SlackBuild5
2 files changed, 27 insertions, 1 deletions
diff --git a/source/a/mkinitrd/0004-check-if-BASEDEV-is-a-partition-of-a-RAID-volume.patch b/source/a/mkinitrd/0004-check-if-BASEDEV-is-a-partition-of-a-RAID-volume.patch
new file mode 100644
index 000000000..e24b7c7c4
--- /dev/null
+++ b/source/a/mkinitrd/0004-check-if-BASEDEV-is-a-partition-of-a-RAID-volume.patch
@@ -0,0 +1,23 @@
+--- ./mkinitrd_command_generator.sh.orig 2021-03-28 13:22:55.628927615 -0500
++++ ./mkinitrd_command_generator.sh 2022-01-24 21:29:00.382517371 -0600
+@@ -302,12 +302,19 @@
+ fi
+
+ # Finally, we should check if base device is
+- # a real block device or a RAID volume:
++ # a real block device or a RAID volume:
+ for MD in $(cat /proc/mdstat | grep -w active | cut -d' ' -f1) ; do
+ if [ "$BASEDEV" = "/dev/$MD" ]; then
+ USING_RAID=1
+ break
+ fi
++ done
++ # Additional check in case $BASEDEV is a partition of /dev/$MD:
++ for BLK in $(sfdisk -ld /dev/$MD 2> /dev/null | grep "^/dev" | cut -d " " -f 1); do
++ if [ "$BASEDEV" = "$BLK" ]; then
++ USING_RAID=1
++ break
++ fi
+ done
+ }
+
diff --git a/source/a/mkinitrd/mkinitrd.SlackBuild b/source/a/mkinitrd/mkinitrd.SlackBuild
index 6b5070396..500b919a1 100755
--- a/source/a/mkinitrd/mkinitrd.SlackBuild
+++ b/source/a/mkinitrd/mkinitrd.SlackBuild
@@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=mkinitrd
VERSION=${VERSION:-1.4.11}
BB=1.32.1
-BUILD=${BUILD:-26}
+BUILD=${BUILD:-27}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -125,6 +125,9 @@ chmod 755 $PKG/sbin/mkinitrd
# Don't include 40-usb_modeswitch.rules on the initrd:
( cd $PKG/sbin ; zcat $CWD/0003-blacklist.40-usb_modeswitch.rules.patch.gz | patch -p1 --verbose || exit 1) || exit 1
rm -f $PKG/sbin/mkinitrd.orig
+# Use -R if we detect the root partition is a partition of a RAID device:
+( cd $PKG/usr/share/mkinitrd ; zcat $CWD/0004-check-if-BASEDEV-is-a-partition-of-a-RAID-volume.patch.gz | patch -p1 --verbose || exit 1) || exit 1
+rm -f $PKG/usr/share/mkinitrd/mkinitrd_command_generator.sh.orig
mkdir -p $PKG/usr/man/man{5,8}
cat $CWD/mkinitrd.conf.5 | gzip -9c > $PKG/usr/man/man5/mkinitrd.conf.5.gz