Is this an acceptable fix? Though I have the feeling this isn't a proper one.
-------- Weitergeleitete Nachricht -------- > Von: Bob Gilligan <gilli...@vyatta.com> > Reply-to: Bob Gilligan <gilli...@vyatta.com>, 503...@bugs.debian.org > An: sub...@bugs.debian.org > Betreff: Bug#503344: Grub-pc fails on IBM x3250 configured with RAID-1 > Datum: Fri, 24 Oct 2008 16:19:59 -0700 > > 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(): > > diff --git a/kern/file.c b/kern/file.c > index adf55da..5e605f9 100644 > --- a/kern/file.c > +++ b/kern/file.c > @@ -59,6 +59,7 @@ grub_file_open (const char *name) > char *device_name; > char *file_name; > > + grub_errno = GRUB_ERR_NONE; /* Used as error flag */ > device_name = grub_file_get_device_name (name); > if (grub_errno) > return 0; -- Felix Zielcke Proud Debian Maintainer _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel