**HEADS UP** FreeBSD-5 boot code has been committed

Matthew Dillon dillon at apollo.backplane.com
Sun Nov 9 22:28:05 PST 2003


    WARNING!  Due to changes in how linker sets are handled you have to
    install an entirely new set of modules when installing a new kernel.
    The normal installkernel target (or install if you use the config
    method) will do this, but sometimes people take shortcuts and only
    install the kernel.

    WARNING!  Although the FreeBSD sys/boot is now in the tree.  It does
    not support UFS2 boots by default.  This is only because the boot2
    output is 88 bytes over its limit when I turn on UFS1 and UFS2.  Maybe
    someone can eek out some space so we can enable UFS1 and UFS2 boots by
    default.

    WARNING!  I tested both boot0 (which is installed by fdisk -B) and boot2
    (which is installde by disklabel -B) and they appear to work, but you
    should still be careful if/when you decide to install new boot blocks.

    NOTICE!  Not all environment variable tie-ins have been implemented yet,
    so some of the new spiffy boot menu options might not actually work
    yet.

			    Using the new boot code

    An installworld or an install after building /usr/src/sys/boot will get
    most of the pieces properly installed on your machine.  However, you
    will not get the spiffy new boot menu unless you update /boot/loader.rc,
    which is not installed by default.

    copying /usr/src/sys/boot/i386/loader/loader.rc to /boot will cause
    the spiffy new boot menu to come up.

    The FreeBSD-5 boot code on DragonFly, by default, cannot boot a UFS2
    partition.  This is temporary, we just have to save 88 bytes somewhere
    and we can turn it on.

    The FreeBSD-5 boot code on DragonFly adds '/' and '/modules' to the
    module path in order to find the FreeBSD-4.x/DragonFly standard 
    location for a kernel, which is /kernel and /modules.

				Linker set changes

    Linker sets are used to accumulate particular classes of information in
    binaries.  For example, the kernel uses linker sets to accumulate all
    the various SYSCTL definitions together.  It does this for SYSINITs also,
    which control how the system boots.  

    The same goes for modules.  Modules which embed sysctl's use linker sets.

    The linker set code has been changed to the new, less hackish format
    that FreeBSD-5 uses.  If you install a new kernel you must also be sure
    that new modules are installed.  This happens in the normal course of
    an installkernel but sometimes people 'cp' new kernels onto / without
    installing new modules... if you do that your old modules will fail to
    load into the new kernel.






More information about the Kernel mailing list