On Fri, Feb 11, 2011 at 06:28:28AM -0500, Kenneth R Westerback wrote: > On Fri, Feb 11, 2011 at 09:47:02AM +0200, ucs...@gmail.com wrote: > > Despite the touted support, OpenBSD wouldn't be able to boot off an > > extended partition, unless it's the very first or second one. > > > > The kernel was fixed (after a fashion) some time ago, but boot(8) and > > installboot(8) still live under the mistaken idea that extended partitions > > are defined recursively, with each of them acting like a full MBR again > > and again, each with 4 smaller partitions inside it, and the offset of > > each subsequent extended partition should be calculated wrt. the offset > > of the bigger one containing it. > > > > That doesn't work that way and never worked that way: There is one big > > extended partition defined in the MBR, and then inside it there is a > > linked list of 'logical' partitions, each of them with a fake MBR > > defining a data sub-partition (whose offset is from the start of this > > logical partition), and possibly a link to the next logical partition > > (whose offset is from the start of the main extended partition). > > > > Can you provide some pointers to where you are deriving this > information and what testing you have done and what setups now work > that did not before? You hint in your description, but this is an > area that has been argued over many times with each fix breaking > some systems while fixing others. The last test rig I set up had
I don't see your point. The kernel is already doing it the way I describe, though the code is a bit clunky and stupidly limited to 8 extended partitions. (that's the stuff in kern/subr_disk.c). Are you arguing for keeping boot(8) and installboot(8) doing a different thing from the kernel? It's easy to reproduce -- I could prepare you a qemu image with all things set up and the 3rd or 4th extended partition of type 0xa6, but you don't need such hand-holding. You can do that yourself ;-) > Having working extended partitions would be nice, but finally finding > definitive docs that clearly and correctly describe what is supposed > to happen would be even better. There are no such docs. What I describe in the 2nd paragraph is the way windows (and linux, and probably others) work.