Panic after updating from source

Garance A Drosehn gad at FreeBSD.org
Sun Feb 28 23:52:57 UTC 2021


On 28 Feb 2021, at 13:04, Michael Sierchio wrote:

> On Sun, Feb 28, 2021 at 9:04 AM Janos Dohanics <web at 3dresearch.com> wrote:
>
>> On Sun, 28 Feb 2021 07:37:37 -0800
>> Michael Sierchio <kudzu at tenebras.com> wrote:
>>
>>> On Sat, Feb 27, 2021 at 11:39 PM Janos Dohanics <web at 3dresearch.com>
>> wrote:
>>>
>>>> Hello Experts,
>>>>
>>>> After updating my FreeBSD 12 workhorse panics on boot.
>>>>
>>>> I have updated /usr/src, then
>>>>
>>>> make buildworld
>>>> make buildkernel KERNCONF=MYKERNEL
>>>> make installkernel KERNCONF=MYKERNEL
>>>
>>>
>>> make installworld ?!
>>
>> You have to reboot with the new kernel before executing 'make
>> installworld'.
>>
>>
> That's not strictly factual.  In fact, if you don't installworld before
> booting, you can have a mismatch between userland and kernel interfaces.
>
> make buildworld && make kernel && make installworld && reboot
>
> that always works for me when following a -STABLE branch.

It may happen to work for you many times in a row, until the day
it does not work and then you're screwed.  The official instructions
state that you should always reboot into single-user mode before
doing 'make installworld'.

The instructions are what they are based on a lot of experience.
It is true that if you are someone who rebuilds frequently (so your
systems are only a week or two out-of-date), you can probably get
away with cutting corners.  But don't tell other people to cut
corners when you have no idea how up-to-date their system was
before they started the upgrade.

We have frequently seen people who are furious when their system
breaks after they've upgraded from source, and frequently the reason
their system broke is that they "got away" with cutting corners for
20 times in a row.  And then they hit the first time that they were
not able get away with cutting corners.  And they always blame us
developers when in fact they're not following instructions.

To quote from /usr/src/UPDATING:

   ... Then, carefully follow the full procedure documented below
   under the heading "To rebuild everything and install it on the
   current system."
   Specifically, a reboot is -> required <- after installing the
   new kernel before installing world.  While an installworld
   normally works -> by accident <-  from multiuser after rebooting
   the proper kernel, there are many cases where this will fail
   across this upgrade and installworld from single user is
   required.

So, if you're going to say the magic words of "strictly factual",
then please quote the actual instructions and not your anecdotal
experience.

I've been building freebsd for 25 years, and yes I've gotten away
with short cuts many times.  But I've also had a few times when
I've been burned severely by taking those shortcuts.  So I always
point people at the official instructions, and at least publicly
pretend that I always follow them.  BTW, VMware-level system
snapshots can be very useful things...

-- 
Garance Alistair Drosehn                =     drosih at rpi.edu
Lead Developer @rpi                   and    gad at FreeBSD.org
Rensselaer Polytechnic Institute;             Troy, NY;  USA


More information about the freebsd-questions mailing list