xfs
[Top] [All Lists]

Re: syslinux xfs support

To: Chris Murphy <lists@xxxxxxxxxxxxxxxxx>
Subject: Re: syslinux xfs support
From: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Wed, 16 Oct 2013 21:50:49 +1100
Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx>, pcacjr@xxxxxxxxx, xfs@xxxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <F30DFA08-BD7B-433D-BFDD-23B893FA862F@xxxxxxxxxxxxxxxxx>
References: <20131015203319.GA20191@xxxxxxxxxxxxx> <20131015205434.GT4446@dastard> <F30DFA08-BD7B-433D-BFDD-23B893FA862F@xxxxxxxxxxxxxxxxx>
User-agent: Mutt/1.5.21 (2010-09-15)
On Tue, Oct 15, 2013 at 11:48:49PM -0600, Chris Murphy wrote:
> 
> On Oct 15, 2013, at 2:54 PM, Dave Chinner <david@xxxxxxxxxxxxx>
> wrote:
> 
> > On Tue, Oct 15, 2013 at 01:33:19PM -0700, Christoph Hellwig
> > wrote:
> >> Hi Paulo,
> >> 
> >> just wondering what the state of the xfs support for syslinux
> >> is?  I talked to Peter at Linuxcon and he thought it's merged,
> >> but looking at the kernel.org tree I can't find the support.
> >> 
> >> Also when looking over your branches I noticed that you're
> >> using a free sector in the first filesystem block to store the
> >> bootloader.  If we want to go down that route we need to make
> >> sure to reserve this sector, otherwise it might get taken up by
> >> newly added metadata.
> > 
> > It's also worth pointing out that there's no guarantee that
> > there's a free sector in the first filesystem block. It's only
> > by luck that there's free sectors on the default config (512
> > byte sector, 4 sector sized AG headers, 4k filesystem block). If
> > we have <= 2k filesystem block there are no free "pad" sectors
> > that can be used, 4k sectors mean no free sectors either, etc.
> > 
> > Much better would be to create a sector sized file and use
> > fiemap to get the disk address of the block and feed that into
> > the bootloader. That works for all filesystems without needing
> > to know anything about the underlying filesystem
> > structuresââ
> 
> I'm curious how that would work.
> 
> The minimum bit of code for GRUB or extlinux is a lot bigger than
> 4KB. A basic self-generated GRUB configuration file is 5.6KB; for
> extlinux a basic one I have is 518 bytes. The minimum code needed
> to find the configuration file is ~26KB for GRUB's core.img, and
> ~34KB for extlinux's ldlinux.sys.

Size isn't an issue - fiemap can give you all the blocks that the
file spans if you need to create a sector map for a larger file.

> So are both of you referring to the < 440 bytes of bootstrap code
> that goes in either the MBR or VBR, whose job is to find core.img
> or ldlinux.sys and blindly load them?

I'm refering to what ever you are writing into the pad sectors in
the first filesystem block. I don't know what you are putting there,
but I doubt that is a file that you set up in the filesystem
namespace...

Perhaps you should have a quick look at how LILO prepares the maps
of the files it needs to load? 'strace lilo' is very informative,
and demonstrates exectly how to map files for a boot loader without
needing any knowledge of the layout of the underlying filesytem....

Cheers,

Dave.
-- 
Dave Chinner
david@xxxxxxxxxxxxx

<Prev in Thread] Current Thread [Next in Thread>