make installworld and securelevel

Lowell Gilbert freebsd-stable-local at be-well.ilk.org
Sat Jun 6 15:42:16 UTC 2009


Bruce Cran <bruce at cran.org.uk> writes:

> On Fri, 05 Jun 2009 18:41:13 -0400
> Lowell Gilbert <freebsd-stable-local at be-well.ilk.org> wrote:
>
>> Bruce Cran <bruce at cran.org.uk> writes:
>> 
>> > On Fri, 5 Jun 2009 17:45:50 +0200
>> > FLEURIOT Damien <ml at my.gd> wrote:
>> >
>> >> 
>> >> Hello list,
>> >> 
>> >> 
>> >> I apologize if this issue has been raised already but I couldn't
>> >> find it anywhere.
>> >> 
>> >> 
>> >> Find below a snip from my installworld:
>> >> 
>> >> --------------------------------------------------------------
>> >> >>> Installing everything
>> >> --------------------------------------------------------------
>> >> cd /usr/src; make -f Makefile.inc1 install
>> >> ===> share/info (install)
>> >> ===> lib (install)
>> >> ===> lib/csu/i386-elf (install)
>> >> install -o root -g wheel  -m 444 crt1.o crti.o crtn.o gcrt1.o
>> >> /usr/lib
>> >> ===> lib/libc (install)
>> >> install -C -o root -g wheel -m 444   libc.a /usr/lib
>> >> install -C -o root -g wheel -m 444   libc_p.a /usr/lib
>> >> install -s -o root -g wheel -m 444   -fschg -S  libc.so.7 /lib
>> >> ^C
>> >> 
>> >> 
>> >> My concern is with the last line which installs libc.so.7 and
>> >> chflags it.
>> >> 
>> >> I was running with securelevel 1 and got denied.
>> >> I had to revert to the old kernel, change my securelevel, reinstall
>> >> the new 7.2 kernel, then run my installworld.
>> >> 
>> >> This hasn't caused me any other issue, but what will happen the day
>> >> the libc.a or libc_p.a which are installed in the early steps of
>> >> installworld become incompatible with the old kernel (if this is at
>> >> all possible) ?
>> >> 
>> >> I wouldn't have been able to boot anymore (this is a remote host).
>> >> The server has a rescue system, but I think a lot of trouble could
>> >> be saved by interrupting "make installworld" if we're running above
>> >> securelevel 0.
>> >
>> > Although it's often safe to run installworld in multi user mode,
>> > it's recommended to run it in single user mode to avoid issues like
>> > this. From /usr/src/UPDATING:
>> >
>> > <make sure you have good level 0 dumps>
>> >         make buildworld
>> >         make kernel KERNCONF=YOUR_KERNEL_HERE
>> >                                                         [1]
>> >         <reboot in single user>                         [3]
>> >         mergemaster -p                                  [5]
>> >         make installworld
>> >         make delete-old
>> >         mergemaster                                     [4]
>> >         <reboot>
>> 
>> Still, I don't really see any obvious downsides to the suggestion.  
>> Maybe it could cause problems with jail updates?  That's the only 
>> issue I've been able to think of...
>> 
>
> If you do both the installkernel and installworld at the same time and
> the new kernel doesn't boot, then you may not be able to boot with the
> old kernel because the new userland may be incompatible.

The original suggestion wasn't to skip the reboot, but rather to stop
the user from doing an installworld under a raised securelevel.  I don't
consider it important, because the recommended upgrade path is to do the
installworld in single-user mode, but by the same token I don't see any
real harm.


More information about the freebsd-stable mailing list