FreeBSD 8.2 -> 8.3へのアップグレード

FreeBSD 8.3がリリースされたので、8.2R on zfs rootな環境をアップデートしました。

まずは、システム全体を8.3-Rにアップグレードします。

公式のアップデート手順にある通りfreebsd-updateコマンドを使用すると簡単です。ただし、このコマンドが使用できるのはFreeBSDのリリースバイナリをそのまま使用している場合に限ります。自前でソースからビルドしていない場合なら使用できると考えて良いでしょう。

rootになって、次のコマンドを実行します。

# freebsd-update upgrade -r 8.3-RELEASE

# freebsd-update install

この時点でカーネルのみ新しいものになりますので、新しいカーネルでリブートします。

# shutdown -r now

その後シングルユーザモードで起動すればよいのですが、何故か私の環境ではうまく立ち上がらなかったので、マルチユーザモードからシングルユーザモードに落としました。次のコマンドでマルチユーザからシングルユーザに落とせます。

# shutdown now

そして、ユーザランドをアップグレードします。

# freebsd-update install

これでFreeBSD 8.3Rにアップグレードが完了します。全ての配布物をネットワーク経由で取ってきますため、概ね2〜3時間かかると思われます。時間のあるときにやりましょう。

次にZFS POOLのアップグレードを行います。ZFSを使用していないならば関係ありませんが、私の環境ではZFSをroot filesystemとして使用していますので、最新版のpoolにアップグレードしました。

念のためシングルユーザモードに落とします。その後次のコマンドでアップグレードします。

# zpool upgrade -a

# zfs upgrade -a

これでZFSがアップグレードされました。その後にブートローダのアップデートを行います。古いブートローダのままでは新しいZFS Poolにアクセスできずカーネルがロードできないため、起動することができません。次のコマンドでブートローダをアップグレードしました。

# gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ad4

このコマンドラインはzfs upgradeを実行した際に表示されると思いますので、それに合わせて実行してください。

これで再起動すると、FreeBSD 8.3Rが起動します。