Sophie

Sophie

distrib > Mageia > 9 > armv7hl > media > core-release-src > by-pkgid > 71a1ba4a20ff0a01d79300b8413dde5d > files > 9

dracut-057-4.mga9.src.rpm

From efaf6fda01872fbe31fbb7c5bfa2e00950dfc6e7 Mon Sep 17 00:00:00 2001
From: Colin Guthrie <colin@mageia.org>
Date: Sun, 6 May 2012 14:39:19 +0100
Subject: [PATCH 506/514] rootfs-block: Support lilo style device numbers.

Lilo supplies root=900 rather than root=/dev/md0. Similarly it would say root=801 rather
than root=/dev/sda1.

This patch simply interprets that number and creates appropriate udev rules
to create the /dev/root symlink as needed.
---
 modules.d/95rootfs-block/block-genrules.sh | 11 ++++++++++-
 modules.d/95rootfs-block/parse-block.sh    |  4 ++++
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/modules.d/95rootfs-block/block-genrules.sh b/modules.d/95rootfs-block/block-genrules.sh
index 446ddf2b..187793e6 100755
--- a/modules.d/95rootfs-block/block-genrules.sh
+++ b/modules.d/95rootfs-block/block-genrules.sh
@@ -1,7 +1,16 @@
 #!/bin/sh
 
 # shellcheck disable=SC2154
-if [ "${root%%:*}" = "block" ]; then
+if [ -n "$rootdevnum" ]; then
+    major=$(( 0x$rootdevnum / 256 ))
+    minor=$(( 0x$rootdevnum - ( $major * 256 ) ))
+    {
+        printf 'ACTION=="add|change", ENV{MAJOR}=="%d", ENV{MINOR}=="%d", SYMLINK+="root"\n' \
+            $major $minor
+    } >> /etc/udev/rules.d/99-root.rules
+
+    wait_for_dev /dev/root
+elif [ "${root%%:*}" = "block" ]; then
     {
         printf 'KERNEL=="%s", SYMLINK+="root"\n' \
             "${root#block:/dev/}"
diff -up ./modules.d/95rootfs-block/parse-block.sh.tv ./modules.d/95rootfs-block/parse-block.sh
diff --git a/modules.d/95rootfs-block/parse-block.sh b/modules.d/95rootfs-block/parse-block.sh
index 2905a1e0..34ced98e 100755
--- a/modules.d/95rootfs-block/parse-block.sh
+++ b/modules.d/95rootfs-block/parse-block.sh
@@ -10,6 +10,11 @@ case "${root#block:}" in
         # shellcheck disable=SC2034
         rootok=1
         ;;
+    [1-9][0-9][0-9])
+        rootdevnum=$root
+        root=block:/dev/root
+        rootok=1
+	;;
 esac
 
 [ "${root%%:*}" = "block" ] && wait_for_dev "${root#block:}"
-- 
2.13.5