FreeBSDのサーバのバージョンをアップデートした。
シリアルコンソールをつなぐのも面倒だったので、リモートから全部やってみた。
つまり、/usr/src/Makefileに書いてある手順
# 1. `cd /usr/src' (or to the directory containing your source tree).
# 2. `make buildworld'
# 3. `make buildkernel KERNCONF=YOUR_KERNEL_HERE' (default is GENERIC).
# 4. `make installkernel KERNCONF=YOUR_KERNEL_HERE' (default is GENERIC).
# [steps 3. & 4. can be combined by using the "kernel" target]
# 5. `reboot' (in single user mode: boot -s from the loader prompt).
# 6. `mergemaster -p'
# 7. `make installworld'
# 8. `make delete-old'
# 9. `mergemaster' (you may wish to use -i, along with -U or -F).
# 10. `reboot'
# 11. `make delete-old-libs' (in case no 3rd party program uses them anymore)
のうち、5の代わりにデーモンを全部終了させる。つまりこんな感じ。
# cd /usr/src
# make -j 4 buildworld >& /root/log/buildworld_TOBY_8.3R-p1_20120507.log &
# make -j 4 buildkernel >& /root/log/buildkernel_TOBY_8.3R-p1_20120507.log &
# make installkernel
ビルド中はtail -fして終わるのを待ち、終わったら、カーネルのインストール。その後、リブートせず、サーバプロセスを全部終了させる。たとえば、/etc/rc.d/named stopのように、rc.dの起動スクリプトをひたすらstopを引数にして実行する。
そして、sshd以外のデーモンがすべて終了したら次の作業。
# mergemater -p
# make installworld
# make delete-old
# mergemaster
# reboot
これで無事再起動してくるのを待つ。
Copyright (c) 1992-2012 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 8.3-RELEASE-p1 #4: Mon May 7 23:28:56 JST 2012
ueda@toby:/usr/obj/usr/src/sys/TOBY i386
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Intel(R) Atom(TM) CPU D510 @ 1.66GHz (1666.66-MHz 686-class CPU)
Origin = "GenuineIntel" Id = 0x106ca Family = 6 Model = 1c Stepping = 10
Features=0xbfebfbff
Features2=0x40e31d
AMD Features=0x20100000
AMD Features2=0x1
TSC: P-state invariant
real memory = 2147483648 (2048 MB)
avail memory = 2085040128 (1988 MB)
ACPI APIC Table:
FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
FreeBSD/SMP: 1 package(s) x 2 core(s) x 2 HTT threads
cpu0 (BSP): APIC ID: 0
cpu1 (AP/HT): APIC ID: 1
cpu2 (AP): APIC ID: 2
cpu3 (AP/HT): APIC ID: 3
(以下省略)