*BSD News Article 28668


Return to BSD News archive

Path: sserve!newshost.anu.edu.au!harbinger.cc.monash.edu.au!yeshua.marcam.com!news.kei.com!hookup!news.moneng.mei.com!howland.reston.ans.net!EU.net!Germany.EU.net!netmbx.de!zrz.TU-Berlin.DE!zib-berlin.de!news.th-darmstadt.de!fauern!lrz-muenchen.de!colin.muc.de!en.muc.de!usenet
From: rse@en.muc.de (Ralf S. Engelschall)
Newsgroups: comp.os.386bsd.misc,en.lists.freebsd-hackers
Subject: Installation Experiences of FreeBSD 1.1.0(current)
Date: 23 Mar 1994 22:08:53 +0100
Organization: Engelschall (EN) Privat, Dachau/Munich, Germany
Lines: 136
Message-ID: <2mqb5j$5fq@en.muc.de>
Reply-To: rse@en.muc.de
NNTP-Posting-Host: vogue.muc.de
X-Newsreader: TIN [version 1.2 PL2]

Hello FreeBSD-community,

I'm currently running FreeBSD 1.0.2 on my main workstation and
to go a safe way I have cloned its whole system (nearly 1GB) to another
similar machine for upgrade testing. 

I have upgraded this machine via a sup'ed current-src tree
as of 23.Mar.93. 

Result:
   1. The upgrade is a bit serious, it contains some pitfalls
      As a base I have taken the upgrade instructions posted
      a few weeks ago.

   2. With the steps listed below, you can upgrade successfully
      without falling into some of these pitfalls.

   3. I hate the fact, that the spwd datebase again uses 
      another incompatible method. This is the reason I
      still have not upgrading my main machine, because I have
      a big (yes: big, exactly 134 packages containing
      392 binaries!! -- all I need, from elm to tex) and a lot
      of these will not work now, because of old static linking
      with the old database code.
      
      Guys, please: The same problem I had to overcome when
      I upgraded 386bsd+pk0.2.4 to FreeBSD 1.0beta.
      Why?! Why again the same shit? I hate such a thing...

      *********************************************************
      Can we re-introduce the old format which is compatible
      with the one used in FreeBSD 1.0.2?
 
      Please, please install the old db-code, please!!!!!!!!!
      *********************************************************

      I love FreeBSD and the work the core team and all
      other hackers are doing, but I hate the guy who introduced
      this new code. 
   
OK, here is a working step-by-step-listing to upgrade:

I. Setup
    PITFALL 1:
    - save links inside your binary areas (I had /bin/mail ->
      /opt/bin/mail, etc.) to prevent your own binaries to be
      overwritten by the installation procedure.
    PITFALL 2:
    - add user man to your /etc/passwd to avoid failure
      while upgrading (install!):
      "man:*:9:9::0:0:Mister Man Pages:/usr/share/man:"
    PITFALL 3:
    - make sure your /usr/obj can hold up to 52 MB which 
      will arise while compiling.

II. Bootstrap to new kernel:
    - $ cd /usr/src/share/mk
      $ make depend all install
    - $ cd /usr/src/include
      $ make depend all install
    - $ cd /usr/src/usr.bin/config
      $ make depend all install
    - $ cd /usr/src/sbin/mount_procfs
      $ make depend all install
    - /etc/fstab:
      add entry for procfs to your fstab
      "proc   /proc   procfs  rw 0 0"
    - $ cd /usr/src/gnu/usr.bin/as
      $ make depend all install
    PITFALL 4:
      yes, "as" is needed, because of code in the kernel, but
      don't recompile and install "ld" because you are running a
      old kernel at the moment which cannot execute binaries
      produced with the new ld
    - $ cd /usr/src/usr.bin/strip
      $ make depend all install
    - $ cd /sys/i386/conf
      change "wd0" to "wdc0" and "fd0" to "fdc0" in your
      kernel config file. 
    PITFALL 5:
      Please take care that you don't have a "at 0xF..." in your
      config. This will fail. I had 
      "config  "386bsd" at 0xFE100000 root on sd0 swap on sd0"
      and the kernel failed when rebooting.
      Simply remove the "at 0xF...". The kernel loads correctly,
      even with the old bootblocks.
    - $ config <SYS>
      $ cd /sys/compile/<SYS>
      change the LDFLAGS "-Z" to "-z" to avoid wrong linking, because
      you currently linking with the old "ld".
      $ make depend all
      $ mv /386bsd /386bsd.o
      $ cp 386bsd /386bsd
    - $ shutdown -r now

III. Bootstrap to new Ld and new:
    - cd /usr/src
      make bootstrapld

IV. Recompile whole System:
    PITFALL:
    - Because the "install" used in "make world" reaches itself
      in usr.bin/xinstall it will fail due to the new db code
      it is linked with and the old database.
      $ cd /usr/src/usr.bin/xinstall
      $ make depend all install
      $ cd /usr/src/usr.sbin/pwd_mkdb
      $ make depend all install
      $ pwd_nkdb -p /etc/master.passwd
    - $ cd /usr/src
      $ make world

V. Reset to new system
    - $ cd /usr/src/etc
      $ mv /etc/rc /etc/rc.10
      $ cp rc /etc/rc
    - $ shutdown -r now

VI. Recompile new kernel under new kernel with new ld
    - $ cd /sys/i386/conf
      $ config <SYS>
      $ cd /sys/compile/<SYS>
      $ make depend all
      $ mv /386bsd /386bsd.o
      $ cp 386bsd /386bsd
    - $ shutdown -r now

That's it! You are running FreeBSD 1.1.0(current)!
OK, only the system, most of your additional software
had to be relinked to the bad idea of another database
code. :-(


-- 
                                        Ralf S. Engelschall    
                                        rse@en.muc.de