Am Freitag, den 24.10.2008, 16:19 -0700 schrieb Bob Gilligan:
> Package: grub-pc
> Version: 1.96+20080724-10
> 
> After installing grub-pc on an IBM x3250 with two 160 GB drives, with 
> the root filesystem configured using mdadm for RAID-1, grub fails to 
> boot, printing:
> 
> Welcome to GRUB!
> 
> error: unknown device fd1
> Entering rescue mode ...
> grub rescue>
> 
> After troubleshooting, I found that the failure was occurring in 
> grub_file_open() when grub_dl_load_file() was attempting to load the 
> normal mode module.  The grub_file_open() function checks the return 
> status of its call to grub_file_get_device_name() by checking the value 
> of grub_errno.  If grub_errno is non-zero, grub_file_open() returns 
> failure.  But grub_file_get_device_name() can succeed, but the error 
> test fail, if grub_errno was set in some earlier operation.  In this 
> case, apparently an early attempt to open a non-existent device set 
> grub_errno.
> 
> The fix is to assign grub_errno before making the call to 
> grub_file_get_device_name():
> 

Did this happen again with a more recent version?
and if so could you please try attached patch.

-- 
Felix Zielcke
Proud Debian Maintainer
Index: disk/raid.c
===================================================================
--- disk/raid.c	(revision 2446)
+++ disk/raid.c	(working copy)
@@ -603,7 +603,10 @@ grub_raid_scan_device (int head_only)
 
       disk = grub_disk_open (name);
       if (!disk)
-        return 0;
+	{
+	  grub_errno = GRUB_ERR_NONE;
+	  return 0;
+	}
 
       if (disk->total_sectors == GRUB_ULONG_MAX)
         {
@@ -616,7 +619,10 @@ grub_raid_scan_device (int head_only)
           if (! p->detect (disk, &array))
             {
               if (! insert_array (disk, &array, p->name))
-                return 0;
+		{
+		  grub_errno = GRUB_ERR_NONE;
+		  return 0;
+		}
 
               break;
             }

Reply via email to