On Fri, Sep 12, 2008 at 09:38:36PM +0200, Samuel Thibault wrote:
> Bastian Blank, le Fri 12 Sep 2008 21:16:36 +0200, a écrit :
> > Anyway, I found it. It is buried in the filesystem modules of grub in
> > the mount hook.
> Cool, I currently don't have much time to spend on these :)
Patch.
Bastian
diff -r 8abe082246d0 stubdom/grub.patches/50fs_fulldisk.diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/stubdom/grub.patches/50fs_fulldisk.diff Wed Sep 17 22:07:03 2008 +0200
@@ -0,0 +1,72 @@
+diff -urN grub-0.97.orig/stage2/fsys_ext2fs.c grub-0.97/stage2/fsys_ext2fs.c
+--- grub-0.97.orig/stage2/fsys_ext2fs.c 2004-08-08 18:19:18.000000000
+0000
++++ grub-0.97/stage2/fsys_ext2fs.c 2008-09-16 19:31:15.000000000 +0000
+@@ -254,7 +254,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))
+diff -urN grub-0.97.orig/stage2/fsys_fat.c grub-0.97/stage2/fsys_fat.c
+--- grub-0.97.orig/stage2/fsys_fat.c 2005-03-15 16:52:00.000000000 +0000
++++ grub-0.97/stage2/fsys_fat.c 2008-09-16 19:31:26.000000000 +0000
+@@ -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;
+diff -urN grub-0.97.orig/stage2/fsys_ffs.c grub-0.97/stage2/fsys_ffs.c
+--- grub-0.97.orig/stage2/fsys_ffs.c 2003-07-09 11:45:52.000000000 +0000
++++ grub-0.97/stage2/fsys_ffs.c 2008-09-16 19:31:32.000000000 +0000
+@@ -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)
+diff -urN grub-0.97.orig/stage2/fsys_minix.c grub-0.97/stage2/fsys_minix.c
+--- grub-0.97.orig/stage2/fsys_minix.c 2003-07-09 11:45:53.000000000 +0000
++++ grub-0.97/stage2/fsys_minix.c 2008-09-16 19:32:01.000000000 +0000
+@@ -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 */
+diff -urN grub-0.97.orig/stage2/fsys_ufs2.c grub-0.97/stage2/fsys_ufs2.c
+--- grub-0.97.orig/stage2/fsys_ufs2.c 2004-06-19 12:17:52.000000000 +0000
++++ grub-0.97/stage2/fsys_ufs2.c 2008-09-16 19:32:32.000000000 +0000
+@@ -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)
+diff -urN grub-0.97.orig/stage2/fsys_vstafs.c grub-0.97/stage2/fsys_vstafs.c
+--- grub-0.97.orig/stage2/fsys_vstafs.c 2003-07-09 11:45:53.000000000
+0000
++++ grub-0.97/stage2/fsys_vstafs.c 2008-09-16 19:32:39.000000000 +0000
+@@ -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)
--
All your people must learn before you can reach for the stars.
-- Kirk, "The Gamesters of Triskelion", stardate 3259.2
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|