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>
> > 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
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....