○ 升級老舊的FreeBSD系統 ○

          *** How to upgrade FreeBSD from 3.x to 4.x-STABLE ***

*** 關於更新的步驟亦可在新的 /usr/src/UPDATING 裡面找到.

*** 請檢查自己的gcc 版本是否為 2.95.2 以上, 若否, 則請先upgrade之.

1.  更新/usr/share/examples/cvsup 裡面的 supfile
        (1) 可以找另外一台已經 update 好的直接用 ftp 抓過來
        (2) 也可以到 freebsd.csie.nctu.edu.tw 去抓
2.  更新/usr/src/Makefile* (Makefile Makefile.inc1 Makefile.upgrade)
    更新方法同上 (1)
3.  (in /usr/src)
    make update
3.  檢查自己的 /etc/make.conf 有沒有以下的設定, 如果有, 將他們註解起來.
        MAKE_KERBEROS4
4.  (in /usr/src)
    make buildworld -DNOPERL
    (重要: -DNOPERL 不可省略, 否則將導致make buildworld 失敗)
5.  編譯新的kernel:
        (1) 到 /usr/src/sys/i386/conf 去生出一個 kernel config file
            (本例取名為 CNMC)
        (2) (in /usr/src)
            make buildkernel KERNCONF=CNMC
            make buildkernel KERNCONF=CNMC
            make installkernel KERNCONF=CNMC
6.  (in /usr/src/sbin/mknod)
    make install
7.  建立新的disk device node
        (1) cp /usr/src/etc/MAKEDEV /dev
        (2) MAKEDEV ad0 (如果還有其他disks依此類推)
        (3) MAKEDEV ad0s1a (如果還有其他slices和partition亦同)
8.  reboot 進入單人模式之後:
    fsck -p
    mount -u /
    mount -a
9.  (in /usr/src/gnu/usr.bin/texinfo/install-info)
    make install
10. (in /usr/src)
    ldsonfig -R /usr/obj/usr/src/lib/libc
11. make installworld -DNOPERL
12. mergemaster
    此步驟用來更新/etc底下的檔案, 通常我們都直接用i套用新的設定檔
    不過請注意不要把master.passwd, fstab, group, rc.conf這幾個檔案蓋掉了
    所以在做這個步驟的時候眼睛請睜大看清楚, 不要按得太快
    如果能泡杯咖啡幫助頭腦清醒那是再好不過了
13. reboot 回到 multi-user mode
14. 再 make world 一次, 因為第一次沒有make到 perl.
    (in /usr/src)
    make buildworld
    make installworld