WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

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

To: Samuel Thibault <samuel.thibault@xxxxxxxxxxxx>, Marco Sinhoreli <msinhore@xxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: Re: [Xen-devel] PV-GRUB - Does not read partition-less disk
From: Bastian Blank <bastian@xxxxxxxxxxxx>
Date: Wed, 17 Sep 2008 22:08:33 +0200
Cc:
Delivery-date: Wed, 17 Sep 2008 13:08:59 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <20080912193836.GK4171@implementation>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <20080911231038.GA5780@xxxxxxxxxxxxxxxxxxxxxxx> <20fe3cf60809111838q370a0b66pa848ea46eaef3798@xxxxxxxxxxxxxx> <20080912062457.GA20977@xxxxxxxxxxxxxxxxxxxxxxx> <20fe3cf60809120501n29e4fc49y6f2a6075bccb8a30@xxxxxxxxxxxxxx> <20080912130652.GA4180@xxxxxxxxxxxxxxxxxxxxxxx> <20fe3cf60809120729j41c648fep56e618c0d1838d28@xxxxxxxxxxxxxx> <20080912144210.GA8234@xxxxxxxxxxxxxxxxxxxxxxx> <20fe3cf60809120801kdfde723hcc1b1392aa16370a@xxxxxxxxxxxxxx> <20080912191636.GA18956@xxxxxxxxxxxxxxxxxxxxxxx> <20080912193836.GK4171@implementation>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.18 (2008-05-17)
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