DragonFly- master sys/boot/pc32/boot2 boot1.S

Matthew Dillon dillon at apollo.backplane.com
Wed Feb 11 02:10:27 PST 2009

    Please test this fix.  To test, update your master branch,
    recompile and reinstall /usr/src/sys/boot, and run disklabel -B
    to install new boot code as appropriate, then reboot to see if things
    are working properly.

    This bug has plagued us for a very long time.  The incessent
    zeroing of the label area we've been doing the last few years has
    masked it.

    I was trying to install a new machine up here in Truckee and started
    tearing my hair out trying to figure why the boot1 code was reporting
    a 'Read error'... it was because I hadn't bzero'd the label area and
    the boot1 code was trying to be cute and access 32 bits of static data
    that it thought was 0x00000000 but in fact was in the fake partition
    table area which the disklabel program does NOT usually install when
    installing boot1.

    Hopefully there will be less hair-pulling now.

					Matthew Dillon 
					<dillon at backplane.com>

:commit 76adb3c3574e7451137604b62e41fc0ed48b021b
:Author: Matthew Dillon <dillon at apollo.backplane.com>
:Date:   Wed Feb 11 01:53:52 2009 -0800
:    Fix long-standing bug in boot1 code - can read junk from fake partition table
:    boot1 reads the MBR to locate the BSD partition type (0xA5).  However, to
:    reduce the size of the boot1 code the 32 bit LBA for the MBR was being

More information about the Commits mailing list