Hi,
I made a patch that solved the problem.
You, still using grub-legacy, try and enjoy it.

Thanks,
Hiroyuki YAMAMORI
--- 0.97-43/stage2/fsys_ext2fs.c	2008-07-25 14:36:15.000000000 +0200
+++ grub-0.97/stage2/fsys_ext2fs.c
@@ -307,7 +307,7 @@
 {
   int retval = 1;
 
-  if ((((current_drive & 0x80) || (current_slice != 0))
+  if (((current_slice != 0)
        && (current_slice != PC_SLICE_TYPE_EXT2FS)
        && (current_slice != PC_SLICE_TYPE_LINUX_RAID)
        && (! IS_PC_SLICE_TYPE_BSD_WITH_FS (current_slice, FS_EXT2FS))
--- orig/stage2/fsys_fat.c	2005-03-15 17:52:00.000000000 +0100
+++ grub-0.97/stage2/fsys_fat.c
@@ -70,7 +70,7 @@
   __u32 magic, first_fat;
   
   /* Check partition type for harddisk */
-  if (((current_drive & 0x80) || (current_slice != 0))
+  if (current_slice != 0
       && ! IS_PC_SLICE_TYPE_FAT (current_slice)
       && (! IS_PC_SLICE_TYPE_BSD_WITH_FS (current_slice, FS_MSDOS)))
     return 0;
--- orig/stage2/fsys_ffs.c	2003-07-09 13:45:52.000000000 +0200
+++ grub-0.97/stage2/fsys_ffs.c
@@ -82,7 +82,7 @@
 {
   int retval = 1;
 
-  if ((((current_drive & 0x80) || (current_slice != 0))
+  if ((current_slice != 0
        && ! IS_PC_SLICE_TYPE_BSD_WITH_FS (current_slice, FS_BSDFFS))
       || part_length < (SBLOCK + (SBSIZE / DEV_BSIZE))
       || !devread (SBLOCK, 0, SBSIZE, (char *) SUPERBLOCK)
--- orig/stage2/fsys_minix.c	2003-07-09 13:45:53.000000000 +0200
+++ grub-0.97/stage2/fsys_minix.c
@@ -160,7 +160,7 @@
 int
 minix_mount (void)
 {
-  if (((current_drive & 0x80) || current_slice != 0)
+  if (current_slice != 0
       && ! IS_PC_SLICE_TYPE_MINIX (current_slice)
       && ! IS_PC_SLICE_TYPE_BSD_WITH_FS (current_slice, FS_OTHER))
     return 0;			/* The partition is not of MINIX type */
--- orig/stage2/fsys_ufs2.c	2004-06-19 14:17:52.000000000 +0200
+++ grub-0.97/stage2/fsys_ufs2.c
@@ -87,7 +87,7 @@
   sblockloc = -1;
   type = 0;
   
-  if (! (((current_drive & 0x80) || (current_slice != 0))
+  if (! (current_slice != 0
 	 && ! IS_PC_SLICE_TYPE_BSD_WITH_FS (current_slice, FS_BSDFFS)))
     {
       for (i = 0; sblock_try[i] != -1; ++i)
--- orig/stage2/fsys_vstafs.c	2003-07-09 13:45:53.000000000 +0200
+++ grub-0.97/stage2/fsys_vstafs.c
@@ -47,7 +47,7 @@
 {
   int retval = 1;
   
-  if( (((current_drive & 0x80) || (current_slice != 0))
+  if( (current_slice != 0
        && current_slice != PC_SLICE_TYPE_VSTAFS)
       ||  ! devread (0, 0, BLOCK_SIZE, (char *) FSYS_BUF)
       ||  FIRST_SECTOR->fs_magic != 0xDEADFACE)

Reply via email to