**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