Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 30 Jun 2002 12:24:12 -0400 (EDT)
From:      doug <doug@safeport.com>
To:        Blake Swensen <blake@pyramus.com>
Cc:        FreeBSD List <freebsd-questions@freebsd.org>
Subject:   Re: More on upgrading 3.5-4.5
Message-ID:  <Pine.BSF.3.96.1020630121755.18319B-100000@fledge.watson.org>
In-Reply-To: <3D1B410A.6060004@pyramus.com>

next in thread | previous in thread | raw e-mail | index | archive | help
This was posted to stable. Hope it helps

I followed at variation of this that was posted to stable about the same
time as this post but I could not find that post.

___________________________________________
From karim@nettech.com.br Fri Jun 28 11:29:25 2002
Date: Tue, 27 Feb 2001 14:42:49 -0300 (EST)
From: Karim Mansur <karim@nettech.com.br>
To: Mark Round <markr@iosphere.net>
Cc: freebsd-stable@freebsd.org
Subject: Re: Upgrading from 3.4 release to 4. stable

On Mon, 26 Feb 2001, Mark Round wrote:

I had the same problem and obtained to decide with I assist it of this
document:

---< Begin >-----

[Navigation Bar]

Date:      Thu, 3 Aug 2000 15:22:32 +0200
From:      Ralf S. Engelschall <rse@engelschall.com>
To:        freebsd-stable@freebsd.org
Subject:   [PROCEDURE] Successful 3.5-S to 4.1-S upgrade

  ------------------------------------------------------------------------
| Raw E-Mail | Index | Archive | Help
  ------------------------------------------------------------------------

This week we've moved all of our 3.5-STABLE boxes to 4.1-STABLE. As others
already determined, the steps in /usr/src/UPDATING are not sufficient for
a successful and smooth upgrade. While we upgraded machine after machine
this week, we had to adjust and enhance our upgrade procedure many times.
Now that all of our machines were successfully upgraded, I want to share
our experiences with you by forwarding you our last version of the
procedure. 

I'm sure some steps can be simplified or perhaps even left out, but I did
not care very much about optimizations or speedups. For us it was just
important that the upgrade worked correctly. And that's the case with the
above steps.  I hope this procedure can help you a little bit in upgrading
your boxes, too. 

Yours,
                                       Ralf S. Engelschall
                                       rse@engelschall.com
                                       www.engelschall.com

Upgrading from FreeBSD 3.5-STABLE to FreeBSD 4.1-STABLE
Ralf S. Engelschall <rse@engelschall.com>, August 2000
=======================================================

o  boot the old FreeBSD 3.x in multi-user mode

o  provide a particular build environment
   $ vi /etc/make.conf
   NOPERL=true         # else Perl would fail to build under 3.x initially
   NOPROFILE=true      # to speed up building
   MAKE_RSAINTL=YES    # for non-US
   USA_RESIDENT=NO     # dito.
   CFLAGS=-O -pipe     # standard optimization
   COPTFLAGS=-O -pipe  # dito.
   COMPAT1X=yes        # install compatibility libraries
   COMPAT20=yes        # dito.
   COMPAT21=yes        # dito.
   COMPAT22=yes        # dito.
   COMPAT3X=yes        # dito.

o  provide boot-strapping run-time environment
   $ mkdir -p /usr/obj/usr/src/lib/libc
   $ ldconfig -R /usr/obj/usr/src/lib/libc

o  build the world initially (still under FreeBSD 3.x run-time)
   $ cd /usr/obj
   $ chflags -R noschg *
   $ rm -rf *
   $ cd /usr/src
   $ make buildworld

o  build and install new GENERIC kernel+modules
   $ make buildkernel KERNEL=GENERIC
   $ make installkernel KERNEL=GENERIC
   $ chflags noschg /kernel.GENERIC /GENERIC
   $ mv /kernel.GENERIC /kernel.GENERIC.3
   $ mv /GENERIC /kernel.GENERIC
   $ chflags schg /kernel.GENERIC

o  upgrade FOO kernel config from 3.x to 4.x
   $ vi /sys/i386/conf/FOO
   - remove "config kernel ...", "bio", "tty", "net", "conflicts"
   - remove unnecessary quotations
   - remove "pnp" device
   - remove "acd0" device
   - remove obsolete options (check output of "config FOO")
   - replace some "xxx0" with "xxx" (compare LINT for details)
   - replace "controller" & "disk" with "device"
   - replace "wdc0" with "ata0" plus more "ata*" from GENERIC
   - replace "bpfilter" with "bpf"
   - replace "isa?" with "atkbdc?" for "atkbd0" and "psm0" device

o  build and install new FOO kernel+modules
   $ make buildkernel KERNEL=FOO
   $ make installkernel KERNEL=FOO
   $ chflags noschg /kernel /FOO
   $ mv /kernel /kernel.3
   $ mv /FOO /kernel
   $ chflags schg /kernel

o  upgrade devices
   $ cd /usr/src/sbin/mknod && make install
   $ cp /usr/src/etc/MAKEDEV* /dev
   $ cd /dev
   $ sh MAKEDEV all
   - make sure really all devices for disks exists:
     for N in the list of disks
       sh MAKEDEV N                   # eg ad0
       for M in the list of slices
           sh MAKEDEV NsMa            # eg ad0s1a
   - edit /etc/fstab and replace "wd0" with "ad0"

o  upgrade boot blocks and loader
   $ cd /sys/boot && make install

o  boot FreeBSD 4.x kernel (still with 3.x user-land) in single-user mode
   $ shutdown -r now
   > boot -s
   $ mount -a

o  install the world
   $ cd /usr/src/gnu/usr.bin/texinfo/install-info
   $ make install
   $ ldconfig -R /usr/obj/usr/src/lib/libc
   $ cd /usr/src
   $ make installworld
   $ cd /usr/src/release/sysinstall && make all install

o  upgrade /etc
   $ cp -rp /etc /etc.old
   $ mergemaster -v -s

o  final adjustments for new FreeBSD 4.x user-land
   $ touch /var/log/security
   $ touch /var/log/cron
   $ rm /var/cron/log*

o  switch to new shipped OpenSSH [OPTIONAL!]
   $ ssh-keygen -f /etc/ssh/ssh_host_key
   $ ssh-keygen -d -f /etc/ssh/ssh_host_dsa_key
   $ vi /etc/rc.conf
   sshd_enable="YES"
   $ pkg_delete ssh-1.2.27

o  boot FreeBSD 4.x kernel and user-land in multi-user mode
   $ shutdown -r now

o  rebuild some criticial programs to avoid spurious segfaults
   under the forthcoming final "buildworld/installworld" step
   $ vi /etc/make.conf
   #NOPERL=true
   $ cd /usr/src/gnu/usr.bin/perl
   $ (cd libperl && make all install)
   $ (cd perl && make all install)
   $ make clean all install
   $ cd /usr/src/usr.bin/lex && make clean all install
   $ cd /usr/src/usr.bin/yacc && make clean all install
   $ cd /usr/src/gnu/usr.bin/as && make clean all install
   $ cd /usr/src/gnu/usr.bin/cc && make clean all install
   $ cd /usr/src/gnu/lib/libgcc && make clean all install

o  build and install the world finally from scratch (under FreeBSD 4.x
run-time)
   $ cd /usr/obj
   $ chflags -R noschg *
   $ rm -rf *
   $ cd /usr/src
   $ make buildworld
   $ make installworld

o  rebuild the kernel with the final tools
   $ cd /sys/i386/conf
   $ config FOO
   $ cd /sys/compile/FOO
   $ make depend all
   $ make install

o  reboot to switch to the final FreeBSD 4.x system
   $ shutdown -r now



On Thu, 27 Jun 2002, Blake Swensen wrote:

> In a follow up to my previous question re: upgrading 3.5 to 4.5-release, 
> the 'FreeBSD Unleashed' book claims that one should remove all the files 
> from /usr/obj before making world.
> 
> What happens if I do this and the buildworld fails... will this 
> incapacitate my server? Should I move the files instead?
> 
> Peace,
> Blake
> 
> 
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-questions" in the body of the message
> 


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.96.1020630121755.18319B-100000>