Return-Path: owner-freebsd-stable@FreeBSD.ORG Received: from castle.jp.freebsd.org (castle.jp.FreeBSD.org [210.226.20.15]) by eos.ocn.ne.jp (8.9.1a/OCN/) with ESMTP id DAA10656 for ; Mon, 9 Oct 2000 03:08:06 +0900 (JST) Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id DAA97238; Mon, 9 Oct 2000 03:08:05 +0900 (JST) (envelope-from owner-freebsd-stable@FreeBSD.ORG) Received: from hub.freebsd.org (hub.FreeBSD.org [216.136.204.18]) by mx1.FreeBSD.org (Postfix) with ESMTP id 13E426E2D88; Sun, 8 Oct 2000 11:07:55 -0700 (PDT) Received: by hub.freebsd.org (Postfix, from userid 538) id F1D5C37B66C; Sun, 8 Oct 2000 11:07:52 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by hub.freebsd.org (Postfix) with SMTP id B92C12E8103; Sun, 8 Oct 2000 11:07:52 -0700 (PDT) Received: by hub.freebsd.org (bulk_mailer v1.12); Sun, 8 Oct 2000 11:07:52 -0700 Delivered-To: freebsd-stable@freebsd.org Received: from mailman.packetdesign.com (dns.PACKETDESIGN.NET [216.15.46.10]) by hub.freebsd.org (Postfix) with ESMTP id ACD6137B502 for ; Sun, 8 Oct 2000 11:07:48 -0700 (PDT) Received: from localhost (main-fw-eth1.packetdesign.com [192.168.0.254]) by mailman.packetdesign.com (8.11.0/8.11.0) with ESMTP id e98I6xQ38311; Sun, 8 Oct 2000 11:07:00 -0700 (PDT) (envelope-from haoboy@packetdesign.com) Date: Sun, 8 Oct 2000 11:07:02 -0700 (PDT) From: Haobo Yu X-Sender: haoboy@C646209-A.enclv-mdu1.sfba.home.com To: alias Cc: freebsd-stable@FreeBSD.ORG Subject: Re: Buildworld for 3.xR to 4.x stable In-Reply-To: <003e01c03067$4da1fbc0$0301a8c0@psycho> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-stable@FreeBSD.ORG X-Loop: FreeBSD.ORG Precedence: bulk X-UIDL: f36852f23e1ef820325bb64478ea7de5 Status: U You can either follow Ralf Engelschall's suggestion, as enclosed, or upgrade to 4.0 release as said in UPDATING, then to 4.1 stable. - Haobo >From rse@engelschall.com Sun Oct 8 11:05:25 2000 Date: Thu, 3 Aug 2000 15:22:32 +0200 From: Ralf S. Engelschall To: freebsd-stable@freebsd.org Subject: [PROCEDURE] Successful 3.5-S to 4.1-S upgrade 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 , 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 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message