[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] PV-GRUB - Does not read partition-less disk



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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.