Samuel Thibault
2010-Mar-03 19:45 UTC
[Xen-devel] [PATCH, PV-GRUB DOC] Add details to PV-GRUB documentation
Add a couple of documentation details about PV-GRUB support
- the menu.lst content can be passed as a ramdisk.
- virtual partitions are not supported.
Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
diff -r b8d2a4134a68 stubdom/README
--- a/stubdom/README Wed Mar 03 17:41:58 2010 +0000
+++ b/stubdom/README Wed Mar 03 20:42:53 2010 +0100
@@ -52,11 +52,17 @@
extra = "(hd0,0)/boot/grub/menu.lst"
-you can also use a tftp path (dhcp will be automatically performed):
+or you can provide the content of a menu.lst stored in dom0 by passing it as a
+ramdisk:
+
+ramdisk = "/boot/domU-1-menu.lst"
+
+or you can also use a tftp path (dhcp will be automatically performed):
extra = "(nd)/somepath/menu.lst"
-or you can set it in option 150 of your dhcp server and leave extra empty
+or you can set it in option 150 of your dhcp server and leave extra and ramdisk
+empty (dhcp will be automatically performed)
Limitations
==========@@ -69,6 +75,13 @@
- bootsplash is supported, but the ioemu backend does not yet support restart
for use by the booted kernel.
+- PV-GRUB doesn''t support virtualized partitions. For instance:
+
+disk = [ ''phy:hda7,hda7,w'' ]
+
+will be seen by PV-GRUB as (hd0), not (hd0,6), since GRUB will not see any
+partition table.
+
Your own stubdom
===============
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
Jeremy Fitzhardinge
2010-Mar-03 22:48 UTC
Re: [Xen-devel] [PATCH, PV-GRUB DOC] Add details to PV-GRUB documentation
On 03/03/2010 11:45 AM, Samuel Thibault wrote:> Add a couple of documentation details about PV-GRUB support > > - the menu.lst content can be passed as a ramdisk. > - virtual partitions are not supported. >BTW, I had a problem with pvgrub with an ext4 /boot, where it hung indefinitely after starting. It seemed to be spinning in a readdir loop on a zero-length directory entry. The directory in question was a single extent. Does pvgrub support ext4 /boot? Thanks, J> Signed-off-by: Samuel Thibault<samuel.thibault@ens-lyon.org> > > diff -r b8d2a4134a68 stubdom/README > --- a/stubdom/README Wed Mar 03 17:41:58 2010 +0000 > +++ b/stubdom/README Wed Mar 03 20:42:53 2010 +0100 > @@ -52,11 +52,17 @@ > > extra = "(hd0,0)/boot/grub/menu.lst" > > -you can also use a tftp path (dhcp will be automatically performed): > +or you can provide the content of a menu.lst stored in dom0 by passing it as a > +ramdisk: > + > +ramdisk = "/boot/domU-1-menu.lst" > + > +or you can also use a tftp path (dhcp will be automatically performed): > > extra = "(nd)/somepath/menu.lst" > > -or you can set it in option 150 of your dhcp server and leave extra empty > +or you can set it in option 150 of your dhcp server and leave extra and ramdisk > +empty (dhcp will be automatically performed) > > Limitations > ==========> @@ -69,6 +75,13 @@ > - bootsplash is supported, but the ioemu backend does not yet support restart > for use by the booted kernel. > > +- PV-GRUB doesn''t support virtualized partitions. For instance: > + > +disk = [ ''phy:hda7,hda7,w'' ] > + > +will be seen by PV-GRUB as (hd0), not (hd0,6), since GRUB will not see any > +partition table. > + > > Your own stubdom > ===============> > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel > >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Samuel Thibault
2010-Mar-03 22:59 UTC
Re: [Xen-devel] [PATCH, PV-GRUB DOC] Add details to PV-GRUB documentation
Jeremy Fitzhardinge, le Wed 03 Mar 2010 14:48:47 -0800, a écrit :> On 03/03/2010 11:45 AM, Samuel Thibault wrote: > >Add a couple of documentation details about PV-GRUB support > > > >- the menu.lst content can be passed as a ramdisk. > >- virtual partitions are not supported. > > BTW, I had a problem with pvgrub with an ext4 /boot, where it hung > indefinitely after starting. It seemed to be spinning in a readdir loop > on a zero-length directory entry. The directory in question was a > single extent. > > Does pvgrub support ext4 /boot?According to the ext4 howto, once extents are enabled, the filesystem can not be mounted by ext2/3 tools: “If you convert your root filesystem ("/") to ext4, and you use the GRUB boot loader, you will need to install a version of GRUB which understands ext4. Your system may boot OK the first time, but when your kernel is upgraded, it will become unbootable.” So I guess for now we at least need to document that ext4 is not supported. The long-term plan could probably be to PV-ize grub2 of course... Samuel _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Jeremy Fitzhardinge
2010-Mar-03 23:04 UTC
Re: [Xen-devel] [PATCH, PV-GRUB DOC] Add details to PV-GRUB documentation
On 03/03/2010 02:59 PM, Samuel Thibault wrote:> According to the ext4 howto, once extents are enabled, the filesystem > can not be mounted by ext2/3 tools: “If you convert your root > filesystem ("/") to ext4, and you use the GRUB boot loader, you will > need to install a version of GRUB which understands ext4. Your system > may boot OK the first time, but when your kernel is upgraded, it will > become unbootable.” > > So I guess for now we at least need to document that ext4 is not > supported.Yes. It should also test the filesystem feature flags for features it doesn''t support and give a useful error message (though I did finally work out how to use gdbsx while tracking this down).> The long-term plan could probably be to PV-ize grub2 of > course... >I suppose. At least Fedora''s grub1 supports ext4 (it was the F12 installer which made this /boot); perhaps pvgrub needs a resync with upstream grub? J _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Samuel Thibault
2010-Mar-03 23:16 UTC
Re: [Xen-devel] [PATCH, PV-GRUB DOC] Add details to PV-GRUB documentation
Jeremy Fitzhardinge, le Wed 03 Mar 2010 15:04:33 -0800, a écrit :> > The long-term plan could probably be to PV-ize grub2 of > >course... > > I suppose. At least Fedora''s grub1 supports ext4 (it was the F12 > installer which made this /boot);Ah, so we can probably steal their patch.> perhaps pvgrub needs a resync with upstream grub?Upstream has stopped all grub1 developments after 0.97. Everything else is patches on top of it in various distributions (see debian''s 60th version of package :) ) Samuel _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Samuel Thibault
2010-Mar-07 22:45 UTC
[Xen-devel] [PATCH, PV-GRUB] Fix gzip support and iso support on x86_64
Fix gzip support and iso support on x86_64
Signed-off-by: Samuel Thibault <sthibault@debian.org>
diff -r 8dada4c897c9 stubdom/grub.patches/99minios
--- a/stubdom/grub.patches/99minios Sat Mar 06 13:31:42 2010 +0000
+++ b/stubdom/grub.patches/99minios Sun Mar 07 23:41:26 2010 +0100
@@ -1501,3 +1501,70 @@
#else
/* This is slower but this works on all x86 architectures. */
__asm__("xchgb %b0, %h0" \
+--- grub.orig/stage2/gunzip.c 2010-03-07 23:03:34.000000000 +0100
++++ grub/stage2/gunzip.c 2010-03-07 23:05:36.000000000 +0100
+@@ -141,7 +141,7 @@
+ static int gzip_filemax;
+ static int gzip_fsmax;
+ static int saved_filepos;
+-static unsigned long gzip_crc;
++static unsigned int gzip_crc;
+
+ /* internal extra variables for use of inflate code */
+ static int block_type;
+@@ -157,7 +157,7 @@
+ * Linear allocator.
+ */
+
+-static unsigned long linalloc_topaddr;
++static unsigned int linalloc_topaddr;
+
+ static void *
+ linalloc (int size)
+@@ -253,7 +253,7 @@
+
+ typedef unsigned char uch;
+ typedef unsigned short ush;
+-typedef unsigned long ulg;
++typedef unsigned int ulg;
+
+ /*
+ * Window Size
+@@ -316,8 +316,8 @@
+ return 0;
+ }
+
+- gzip_crc = *((unsigned long *) buf);
+- gzip_fsmax = gzip_filemax = *((unsigned long *) (buf + 4));
++ gzip_crc = *((unsigned int *) buf);
++ gzip_fsmax = gzip_filemax = *((unsigned int *) (buf + 4));
+
+ initialize_tables ();
+
+diff -ur grub.orig/stage2/fsys_iso9660.c grub-upstream/stage2/fsys_iso9660.c
+--- grub.orig/stage2/fsys_iso9660.c 2010-03-07 23:39:00.000000000 +0100
++++ grub/stage2/fsys_iso9660.c 2010-03-07 23:39:56.000000000 +0100
+@@ -43,7 +43,7 @@
+
+ /* iso fs inode data in memory */
+ struct iso_inode_info {
+- unsigned long file_start;
++ unsigned int file_start;
+ };
+
+ #define ISO_SUPER \
+@@ -88,12 +88,12 @@
+ if (byte_len <= 0)
+ return 1;
+
+- sector += (byte_offset >> sector_size_lg2);
+- byte_offset &= (buf_geom.sector_size - 1);
+ asm volatile ("shl%L0 %1,%0"
+ : "=r"(sector)
+ : "Ic"((int8_t)(ISO_SECTOR_BITS - sector_size_lg2)),
+ "0"(sector));
++ sector += (byte_offset >> sector_size_lg2);
++ byte_offset &= (buf_geom.sector_size - 1);
+
+ #if !defined(STAGE1_5)
+ if (disk_read_hook && debug)
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel