----- Original Message ----- From: John Baldwin <j...@freebsd.org> To: freebsd-hackers@freebsd.org Cc: rank1see...@gmail.com Date: Thu, 7 Jun 2012 08:21:39 -0400 Subject: Re: CD bootcode
> On Wednesday, June 06, 2012 12:15:14 pm rank1see...@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 ?!? But 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') Looks like loader must be made into looking at Rock-Ridge extensions. I can't provide patches, as I only know 'sh', 'php' (and web related langs) Above code I've patched, only because I've hunted patterns. Domagoj Smolčić _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"