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;
}