So 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. Attached is the patch..along with a change log. Signed-off-by: Jerone Young <[EMAIL PROTECTED]> On 2/14/07, Jerone Young <[EMAIL PROTECTED]> wrote:
Interesting. I will try this again. I was working with I believe fedora core 6. I noticed this was happening. It is not a symlink on fedora core 6. This may have something to do with udev. On 2/14/07, Yoshinori K. Okuji <[EMAIL PROTECTED]> wrote: > On Monday 12 February 2007 08:42, Jerone Young wrote: > > 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). > > I don't understand. In my system, /dev/root is a symlink, and find_root_device > skips symlinks. Why does any problem happen? > > Thanks, > Okuji > > > _______________________________________________ > Grub-devel mailing list > Grub-devel@gnu.org > http://lists.gnu.org/mailman/listinfo/grub-devel >
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 e6e15bb2da5c ChangeLog --- a/ChangeLog Sat Feb 17 16:31:30 2007 -0600 +++ b/ChangeLog Sat Feb 17 20:22:53 2007 -0600 @@ -1,3 +1,7 @@ 2007-02-12 Hollis Blanchard <[EMAIL PROTECTED] +2007-02-17 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-02-12 Hollis Blanchard <[EMAIL PROTECTED]> * include/grub/ieee1275/ieee1275.h: Update copyright.
_______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel