1diff -urN grub-0.97.orig/stage2/fsys_ext2fs.c grub-0.97/stage2/fsys_ext2fs.c 2--- grub-0.97.orig/stage2/fsys_ext2fs.c 2004-08-08 18:19:18.000000000 +0000 3+++ grub-0.97/stage2/fsys_ext2fs.c 2008-09-16 19:31:15.000000000 +0000 4@@ -254,7 +254,7 @@ 5 { 6 int retval = 1; 7 8- if ((((current_drive & 0x80) || (current_slice != 0)) 9+ if ((((current_slice != 0)) 10 && (current_slice != PC_SLICE_TYPE_EXT2FS) 11 && (current_slice != PC_SLICE_TYPE_LINUX_RAID) 12 && (! IS_PC_SLICE_TYPE_BSD_WITH_FS (current_slice, FS_EXT2FS)) 13diff -urN grub-0.97.orig/stage2/fsys_fat.c grub-0.97/stage2/fsys_fat.c 14--- grub-0.97.orig/stage2/fsys_fat.c 2005-03-15 16:52:00.000000000 +0000 15+++ grub-0.97/stage2/fsys_fat.c 2008-09-16 19:31:26.000000000 +0000 16@@ -70,7 +70,7 @@ 17 __u32 magic, first_fat; 18 19 /* Check partition type for harddisk */ 20- if (((current_drive & 0x80) || (current_slice != 0)) 21+ if (((current_slice != 0)) 22 && ! IS_PC_SLICE_TYPE_FAT (current_slice) 23 && (! IS_PC_SLICE_TYPE_BSD_WITH_FS (current_slice, FS_MSDOS))) 24 return 0; 25diff -urN grub-0.97.orig/stage2/fsys_ffs.c grub-0.97/stage2/fsys_ffs.c 26--- grub-0.97.orig/stage2/fsys_ffs.c 2003-07-09 11:45:52.000000000 +0000 27+++ grub-0.97/stage2/fsys_ffs.c 2008-09-16 19:31:32.000000000 +0000 28@@ -82,7 +82,7 @@ 29 { 30 int retval = 1; 31 32- if ((((current_drive & 0x80) || (current_slice != 0)) 33+ if ((((current_slice != 0)) 34 && ! IS_PC_SLICE_TYPE_BSD_WITH_FS (current_slice, FS_BSDFFS)) 35 || part_length < (SBLOCK + (SBSIZE / DEV_BSIZE)) 36 || !devread (SBLOCK, 0, SBSIZE, (char *) SUPERBLOCK) 37diff -urN grub-0.97.orig/stage2/fsys_minix.c grub-0.97/stage2/fsys_minix.c 38--- grub-0.97.orig/stage2/fsys_minix.c 2003-07-09 11:45:53.000000000 +0000 39+++ grub-0.97/stage2/fsys_minix.c 2008-09-16 19:32:01.000000000 +0000 40@@ -160,7 +160,7 @@ 41 int 42 minix_mount (void) 43 { 44- if (((current_drive & 0x80) || current_slice != 0) 45+ if ((current_slice != 0) 46 && ! IS_PC_SLICE_TYPE_MINIX (current_slice) 47 && ! IS_PC_SLICE_TYPE_BSD_WITH_FS (current_slice, FS_OTHER)) 48 return 0; /* The partition is not of MINIX type */ 49diff -urN grub-0.97.orig/stage2/fsys_ufs2.c grub-0.97/stage2/fsys_ufs2.c 50--- grub-0.97.orig/stage2/fsys_ufs2.c 2004-06-19 12:17:52.000000000 +0000 51+++ grub-0.97/stage2/fsys_ufs2.c 2008-09-16 19:32:32.000000000 +0000 52@@ -87,7 +87,7 @@ 53 sblockloc = -1; 54 type = 0; 55 56- if (! (((current_drive & 0x80) || (current_slice != 0)) 57+ if (! (((current_slice != 0)) 58 && ! IS_PC_SLICE_TYPE_BSD_WITH_FS (current_slice, FS_BSDFFS))) 59 { 60 for (i = 0; sblock_try[i] != -1; ++i) 61diff -urN grub-0.97.orig/stage2/fsys_vstafs.c grub-0.97/stage2/fsys_vstafs.c 62--- grub-0.97.orig/stage2/fsys_vstafs.c 2003-07-09 11:45:53.000000000 +0000 63+++ grub-0.97/stage2/fsys_vstafs.c 2008-09-16 19:32:39.000000000 +0000 64@@ -47,7 +47,7 @@ 65 { 66 int retval = 1; 67 68- if( (((current_drive & 0x80) || (current_slice != 0)) 69+ if( (((current_slice != 0)) 70 && current_slice != PC_SLICE_TYPE_VSTAFS) 71 || ! devread (0, 0, BLOCK_SIZE, (char *) FSYS_BUF) 72 || FIRST_SECTOR->fs_magic != 0xDEADFACE) 73