Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 07 Jun 2012 15:58:25 +0200
From:      rank1seeker@gmail.com
To:        "John Baldwin" <jhb@freebsd.org>, hackers@freebsd.org
Subject:   Re: CD bootcode
Message-ID:  <20120607.135825.592.1@DOMY-PC>
In-Reply-To: <201206070821.40068.jhb@freebsd.org>
References:  <20120606.161514.685.1@DOMY-PC> <201206070821.40068.jhb@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
----- Original Message -----=0D=0AFrom: John Baldwin =
<jhb@freebsd.org>=0D=0ATo: freebsd-hackers@freebsd.org=0D=0ACc: =
rank1seeker@gmail.com=0D=0ADate: Thu, 7 Jun 2012 08:21:39 =
-0400=0D=0ASubject: Re: CD bootcode=0D=0A=0D=0A> On Wednesday, June 06, =
2012 12:15:14 pm rank1seeker@gmail.com wrote:=0D=0A> > FreeBSD's CD =
bootcode '/boot/cdboot' is targeting stage 3 boot -> loader=0D=0A> > For =
example, stage 2 boot '/boot/boot' is attempting the same.=0D=0A> > =
=0D=0A> > In my case of a '/boot/loader', '/boot' is a symlink!=0D=0A> > =
=0D=0A> > So if '/boot/boot' works with symlinks, why '/boot/cdboot' =
doesn't!=0D=0A> > Yes, I did use Rock-Ridge extensions, upon creation of =
'cd.iso'=0D=0A> =0D=0A> Because I didn't make cdboot's lookup routine =
handle symlinks.  It=0D=0A> also doesn't look at Rock-Ridge extensions =
and only uses the base=0D=0A> ISO-9660 directory entries.  That was =
enough fun to write in assembly.=0D=0A> OTOH, CD sectors are 2k, so you =
do have that much room to work with=0D=0A> and can probably fit a more =
advanced directory lookup into cdboot.=0D=0A> =0D=0A> I'm happy to review =
any patches you come up with.=0D=0A> =0D=0A> -- =0D=0A> John =
Baldwin=0D=0A=0D=0A=0D=0AI need to correct myself.=0D=0ABOTH stage 2 boot =
'/boot/boot' AND '/boot/cdboot' don't work with =
symlinks!=0D=0A=0D=0A'/boot/boot' on UFS sees symlink as file, same as =
'/boot/cdboot' does so on Rock-Ridge.=0D=0A=0D=0AI can handle =
'/boot/boot' by providing full path to loader via =
'boot.config'=0D=0A'/boot/cdboot' doesn't have such a file, so in =
'/usr/src/sys/boot/i386/cdboot/cdboot.s':=0D=0A--=0D=0Aloader_paths:   =
.asciz  "/BOOT/LOADER"=0D=0A                .asciz  "/boot/loader"=0D=0A  =
              .byte 0=0D=0A--=0D=0A=0D=0AI injected third '.asciz' line =
with full path to 'loader' and recompiled it.=0D=0AAnd what is first line =
"/BOOT/LOADER" doing in there ?!?=0D=0A=0D=0ABut even when loader is =
finally started, loader handles symlinks on UFS (kicked by '/boot/boot'), =
BUT fails so, on Rock-Ridge iso (kicked by '/boot/cdboot')=0D=0ALooks =
like loader must be made into looking at Rock-Ridge =
extensions.=0D=0A=0D=0AI can't provide patches, as I only know 'sh', =
'php' (and web related langs)=0D=0AAbove code I've patched, only because =
I've hunted patterns.=0D=0A=0D=0A=0D=0ADomagoj Smol=E8i=E6



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