将FreeBSD 4.11升级到6.2

1. 首先4.11升级到5.4
2. 然后5.4升级到6.2
3. 如果是4.11以前版本建议先升级到4.11, 而有时候升级到4.11 make kernel出错, 可以先make installworld再make kernel
4. 如果5.4 make world 到 6.2 有出错信息,建议从一台安装了5.4的机器中提取 /usr/lib /usr/include /usr/libexec 复制到升级机器上
5. 整个升级过程建议在一个非常稳定的ssh连接下进行, 不应该有超时断开或者网络中断
6. 本文参照: http://blog.gslin.org/

 

4.11->5.4
# csup cvsuplist
# cd /usr/src
# rm /etc/make.conf
# make buildworld
# make buildkernel
# cp /sys/i386/conf/GENERIC.hints /boot/device.hints
# cd /usr/src/sys/boot
# make STRIP="" install

找一台FBSD5.x以上的 dd if=/dev/random of=blah count=1 bs=4k
将这个 blah (4096bytes)复制并重命名到4.11的 /entropy

# cd /usr/src
# make installkernel
# rmdir /etc/pam.d
# mergemaster -p
# rm -rf /usr/include/g++
# mergemaster -i

修改 /etc/rc 内容如下
if [ -r /not.ok ]; then
  /sbin/mount -u /
  /sbin/mount -a
  /bin/rm -f /not.ok
  cd /usr/src
  /usr/bin/make installworld DESTDIR=/
  cd /
  /sbin/umount -a
  /sbin/reboot
fi

# touch /not.ok
# reboot
重启后会自动在单人模式make installworld,然后再重启
# rm /etc/pam.conf