This patch fixes the situation with i386-pc where grub-probe &
grube-setup are searching for the root fs for grub files  and they
happen to be on the same file system as the root ("/") filesystem. If
this is the case if when probing /dev , if the partition is a sd* it
will not find it because it will find /dev/root first (this is a
mistake).

On Fedora and other Redhat systems /dev/root is an actual device
node (in this case my root partition is sda1):

[EMAIL PROTECTED] grub2]# ls -l /dev/root
brw------- 1 root root 8, 1 Feb 17 13:11 /dev/root
[EMAIL PROTECTED] grub2]# ls -l /dev/sda1
brw-r----- 1 root disk 8, 1 Feb 17 13:12 /dev/sda1

The problem here is once grub sees this it has no idea what /dev/root
is so it cannot properly resolve it to /dev/sda1. So the best thing to
do is if you see /dev/root to just move on until you find the device
node with the real name.

Signed-off-by: Jerone Young <[EMAIL PROTECTED]>
diff -r cca565f3c398 util/i386/pc/getroot.c
--- a/util/i386/pc/getroot.c	Sun Feb 11 09:48:36 2007 -0600
+++ b/util/i386/pc/getroot.c	Sun Feb 11 19:02:00 2007 -0600
@@ -192,6 +192,13 @@ find_root_device (const char *dir, dev_t
 	  strip_extra_slashes (res);
 	  free (cwd);
 
+	  /* /dev/root is not a real block device keep looking, takes care
+	     of situation where root filesystem is on the same partition as
+	     grub files */
+
+	  if (strcmp(res, "/dev/root") == 0)
+		continue;
+
 	  if (chdir (saved_cwd) < 0)
 	    grub_util_error ("Cannot restore the original directory");
 
diff -r d103f4d15eaa ChangeLog
--- a/ChangeLog	Thu Mar 15 20:05:02 2007 -0500
+++ b/ChangeLog	Thu Mar 15 20:20:47 2007 -0500
@@ -1,3 +1,8 @@ 2007-03-05  Marco Gerards  <[EMAIL PROTECTED]
+2007-03-15  Jerone Young <[EMAIL PROTECTED]>
+
+	* util/i386/pc/getroot.c: Update so that if root device is /dev/root
+	  continue on and look for device node with real device name.
+
 2007-03-05  Marco Gerards  <[EMAIL PROTECTED]>
 
 	* normal/main.c (read_config_file): When "menu" is not set, create
_______________________________________________
Grub-devel mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to