Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 7 Jun 2012 16:40:12 +0100
From:      Chris Rees <utisoft@gmail.com>
To:        rank1seeker@gmail.com
Cc:        hackers@freebsd.org
Subject:   Re: CD bootcode
Message-ID:  <CADLo8385oFCQT4fdAM3sB5nuSACM0QfOU3Rz9xAgjoVL8GY1ag@mail.gmail.com>
In-Reply-To: <20120607.135825.592.1@DOMY-PC>
References:  <20120606.161514.685.1@DOMY-PC> <201206070821.40068.jhb@freebsd.org> <20120607.135825.592.1@DOMY-PC>

next in thread | previous in thread | raw e-mail | index | archive | help
On Jun 7, 2012 2:58 PM, <rank1seeker@gmail.com> wrote:
>
> ----- Original Message -----
> From: John Baldwin <jhb@freebsd.org>
> To: freebsd-hackers@freebsd.org
> Cc: rank1seeker@gmail.com
> Date: Thu, 7 Jun 2012 08:21:39 -0400
> Subject: Re: CD bootcode
>
> > On Wednesday, June 06, 2012 12:15:14 pm rank1seeker@gmail.com wrote:
> > > FreeBSD's CD bootcode '/boot/cdboot' is targeting stage 3 boot ->
loader
> > > For example, stage 2 boot '/boot/boot' is attempting the same.
> > >
> > > In my case of a '/boot/loader', '/boot' is a symlink!
> > >
> > > So if '/boot/boot' works with symlinks, why '/boot/cdboot' doesn't!
> > > Yes, I did use Rock-Ridge extensions, upon creation of 'cd.iso'
> >
> > Because I didn't make cdboot's lookup routine handle symlinks.  It
> > also doesn't look at Rock-Ridge extensions and only uses the base
> > ISO-9660 directory entries.  That was enough fun to write in assembly.
> > OTOH, CD sectors are 2k, so you do have that much room to work with
> > and can probably fit a more advanced directory lookup into cdboot.
> >
> > I'm happy to review any patches you come up with.
> >
> > --
> > John Baldwin
>
>
> I need to correct myself.
> BOTH stage 2 boot '/boot/boot' AND '/boot/cdboot' don't work with
symlinks!
>
> '/boot/boot' on UFS sees symlink as file, same as '/boot/cdboot' does so
on Rock-Ridge.
>
> I can handle '/boot/boot' by providing full path to loader via
'boot.config'
> '/boot/cdboot' doesn't have such a file, so in
'/usr/src/sys/boot/i386/cdboot/cdboot.s':
> --
> loader_paths:   .asciz  "/BOOT/LOADER"
>                .asciz  "/boot/loader"
>                .byte 0
> --
>
> I injected third '.asciz' line with full path to 'loader' and recompiled
it.
> And what is first line "/BOOT/LOADER" doing in there ?!?
>

Because strict ISO9660 8.3 is case insensitive and uses caps?

Chris



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CADLo8385oFCQT4fdAM3sB5nuSACM0QfOU3Rz9xAgjoVL8GY1ag>