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>