A recent flurry of commits have substantially modified the support for MBR Extended Partitions. We hope in a positive direction.
The two most visible changes are 1) We now correctly calculate the location of the next EBR when traversing the list of EBRs. 2) Up to 256 Extended Boot Records are now traversed when looking for the OpenBSD partition. The previous limit of 8 was a result of conflating the two tasks of looking for the OpenBSD partition and spoofing partitions we found during the search. 3) There is a hard limit of 2 ^ 28 - 1 disk sectors within which the /boot program must fit. i.e. 128GB with 512-byte sectors. This is synonymous with the first few sectors of the OpenBSD partition lying below this limit. 4) The install script now warns when it fails to install the /boot program and thus make the disk bootable. The partitions are also searched in a slightly different order than previously, to make sure the install process, the boot process and the kernel all agree on the 'first' OpenBSD partition. These changes could break some existing systems that managed, despite previous bugs, to install on a partition above the 2 ^ 28 - 1 limit. We are VERY interested in such systems! If nothing else to find out how many there are. (So far I have heard of 1). To get such a system working again, one can simply change the define in sys/sys/disklabel.h, BOOTBIOS_MAXSEC. If anyone knows BIOS, EDD, assembler and gcc assembler syntax and has such a system we would be very interested in diffs enable reliable detection of systems where it is safe to relax the 2 ^ 28 - 1 limit. Thanks again to ucsav for starthing this off with a diff. .... Ken
