[rfc] replacing /boot/kernel.old with a unique directory name

Freddie Cash fjwcash at gmail.com
Sun Aug 14 17:56:59 UTC 2011

On Sat, Aug 13, 2011 at 12:51 PM, Alexander Best <arundel at freebsd.org>wrote:

> hi there,
> i just had the following idea: how about instead of copying the current
> kernel
> to /boot/kernel.old and then installing the new one under /boot/kernel as
> the
> results of target installkernel, we create a unique directory name for the
> old
> kernel?
> something like /boot/kernel-r${revision}-${/dev/random}?
> that would let people not only boot the previous kernel, but all kernels
> that
> have been replaced by target installkernel. this would make tracking
> issues,
> which have been introduced by a certain commit much easier, imho.
> i don't think implementing this logic would be that difficult. the only
> problem
> i see is with ${/dev/random} in the case where people are running a kernel
> without /dev/{u}random support.

A better method may be to use KODIR to install the *new* kernel to a unique
directory via installkernel (make KERNCONF=SOMEKERNEL
KODIR=/boot/SOMEKERNEL-rev-whatever installkernel) and then using "nextboot
-k SOMEKERNEL-rev-whatever" to set that kernel as bootable on the next boot.

You reboot, make sure everything works with SOMEKERNEL-rev-whatever, and
then make that the default kernel (rm -rf /boot/kernel; cp -Rvp
/boot/SOMEKERNEL-rev-whatever /boot/kernel; shutdown -r now).

Sure, it's not automated yet, but the building blocks are there.

This way, you never disturb the currently working kernel until you know the
new kernel works.  And if things go south with the new kernel, a simple
reboot is all that's needed to revert back to the working /boot/kernel.

All that's needed is to automate things a bit (pick KODIR, set nextboot,
create a post-install target of some kind to run after booting the new

And, this leaves all of your kernels around if you want to play with
different ones.

> cheers.
> alex
> _______________________________________________
> freebsd-current at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe at freebsd.org"

Freddie Cash
fjwcash at gmail.com

More information about the freebsd-current mailing list