FreeBSD 10.3-RELEASEで運用しているサーバを11.0-RELEASEにアップグレードしまして、引っかかったところがあったのでメモします。

引っかかってないところ

Gihyo.jpの第72回 FreeBSD 11.0-RELEASEへのアップデートページのFreeBSD 10.3-RELEASEからアップグレードを参考にしまして、

  1. freebsd-updateコマンドで11.0-RELEASEにする
  2. portsで入れたパッケージを再インストールする

の順番で行いました。1.は記事のままでいいのですが、2.については私のサーバではpkgではなくportsでインストールしているので、portmasterのmanにあるUsing portmaster to do a complete reinstallation of all portsの方法で全portsを再インストールしています。

  1. portmaster --list-origins > ~/installed-port-list
  2. Update the ports tree
  3. portmaster -ty --clean-distfiles
  4. portmaster -Faf
  5. pkg delete -afy
  6. rm -rf /usr/local/lib/compat/pkg
  7. Back up any files in /usr/local you wish to save,
    such as configuration files in /usr/local/etc
  8. Manually check /usr/local and /var/db/pkg
    to make sure that they are really empty
  9. Install ports-mgmt/pkg and then ports-mgmt/portmaster.
    Remove both from ~/installed-port-list.
  10. portmaster --no-confirm `cat ~/installed-port-list`

ついでにPerl5を5.20から5.24に変更しておいた方がよさそうなので、4.より前の段階で/etc/make.confDEFAULT_VERSIONS+=perl5=5.24を記載しました。全部インストールし直しなのでちょうどいい機会です。

で、ここまでは特に問題なし。

引っかかったところ

このサーバは確かFreeBSD 9の頃にZFS on Rootで作ったと思うのですが、zpoolのバージョンを上げる作業の最後でbootcodeをインストールする際にエラーが発生します。

# gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 da0
gpart: /dev/da0p1: not enough space

これはfreebsd-bootタイプのパーティションにbootcodeを入れるためのスペースが残っていないという内容なのですが、11.0-RELEASEのbootcodeは80KBオーバーになったので、以前からZFSでがんばって入れちゃっているサーバだとfreebsd-bootは64KBで切られているので全くもって入れられないということだそうです。[1]

[1] [FreeBSD 11.0-RELEASE Errata]より(https://www.freebsd.org/releases/11.0R/errata.html)

ディスクが全く余っていない場合は、freebsd-swapパーティションを縮小してfreebsd-bootパーティションの容量を増やすしかないようです。

# swapoff -a
# gpart delete -i 1 da0
# gpart delete -i 2 da0
# gpart add -t freebsd-boot -a 4k -s 512k da0
# gpart add -t freebsd-swap da0
# gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 da0

# gpart list
(freebsd-swapパーティションのrawuuidをコピー)

# vi /etc/fstab
(/dev/gptip/[上記freebsd-swapパーティションのrawuuid] に書き換える)

# swapon -a

gpartの操作なのでだいぶ不安にはなりますが、サーバを再起動しても特に問題は見られないのでこれでいけてそうです。

いやーしかし、パーティションをいじるのは心臓に悪いわ…