svn commit: r296428 - head/sys/boot/common

Nikolai Lifanov lifanov at mail.lifanov.com
Sun Mar 6 19:57:35 UTC 2016


On 2016-03-06 11:17, Dimitry Andric wrote:
> On 06 Mar 2016, at 17:00, Oliver Pinter <oliver.pinter at hardenedbsd.org> 
> wrote:
>> 
>> On 3/6/16, Dimitry Andric <dim at freebsd.org> wrote:
>>> Author: dim
>>> Date: Sun Mar  6 15:57:43 2016
>>> New Revision: 296428
>>> URL: https://svnweb.freebsd.org/changeset/base/296428
>>> 
>>> Log:
>>>  Since kernel modules can now contain sections of type 
>>> SHT_AMD64_UNWIND,
>>>  the boot loader should not skip over these anymore while loading 
>>> images.
>>>  Otherwise the kernel can still panic when it doesn't find the 
>>> .eh_frame
>>>  section belonging to the .rela.eh_frame section.
>>> 
>>>  Unfortunately this will require installing boot loaders from 
>>> sys/boot
>>>  before attempting to boot with a new kernel.
>> 
>> Could you please add a note about this to UPDATING file?
> 
> I am a bit torn on this, because normally we always tell people to
> install the kernel first, reboot, then run make installworld (which 
> also
> installs the boot loaders).
> 
> However, in this case, people might depend on their boot loader loading
> modules which are required to make the system boot at all.  So if they
> happened to forget updating their boot loader first, a panic might be
> the result.
> 
> I wonder what a failsafe and acceptable upgrade scenario is, in this
> case.  Normally the procedure is something like:
> 
>   make buildworld
>   make buildkernel (with KERNCONF=whatever, if needed)
>   make installkernel (again with KERNCONF, if needed)
>   reboot (to single user, but cheating is possible usually)
>   mergemaster -p
>   make installworld
> 
> This could maybe be modified to:
> 
>   make buildworld
>   make buildkernel (with KERNCONF=whatever, if needed)
>   make installkernel (again with KERNCONF, if needed)
>   make -C sys/boot install
>   reboot (to single user, but cheating is possible usually)
>   mergemaster -p
>   make installworld
> 
> E.g. insert the step which installs the boot loaders just after (or
> before) the step which installs the kernel.
> 
> Is something like this acceptable as a one-time workaround, or maybe it
> is better in general, in case we ever add other new features to the 
> boot
> loaders?
> 
> -Dimitry

In my opinion, boot *blocks* (boot1) should be updated seldomly and not 
on every install.
All (?) instances of not updating these resulting in a failed boot have 
an UPDATING
entry or a similar warning (like the one during "zpool upgrade").

- Nikolai Lifanov


More information about the svn-src-all mailing list