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;



--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to