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