Sophie

Sophie

distrib > Mageia > 3 > i586 > media > core-release-src > by-pkgid > 5c1bb304a26349fad0d8eaf2d0262d83 > files > 15

dracut-025-8.mga3.src.rpm

From b4d1e1bb8147fb61e77db8753aa7b34426e6ebd2 Mon Sep 17 00:00:00 2001
From: Colin Guthrie <colin@mageia.org>
Date: Sun, 6 May 2012 14:39:19 +0100
Subject: [PATCH 508/511] 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 7f894ee..161183e 100755
--- a/modules.d/95rootfs-block/block-genrules.sh
+++ b/modules.d/95rootfs-block/block-genrules.sh
@@ -2,7 +2,16 @@
 # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
 # ex: ts=8 sw=4 sts=4 et filetype=sh
 
-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 --git a/modules.d/95rootfs-block/parse-block.sh b/modules.d/95rootfs-block/parse-block.sh
index 3745352..9efc51f 100755
--- a/modules.d/95rootfs-block/parse-block.sh
+++ b/modules.d/95rootfs-block/parse-block.sh
@@ -19,4 +19,8 @@ case "$root" in
     /dev/*)
         root="block:${root}"
         rootok=1 ;;
+    [1-9][0-9][0-9])
+        rootdevnum=$root
+        root=block:/dev/root
+        rootok=1 ;;
 esac
-- 
1.8.1