freebsd-updateでjailをupgradeする

ググると結構面倒な方法でupgradeしている人が多いのでメモがてら。

例えば母艦が10.1で、jailが10.0の場合、母艦側で

# freebsd-update -b /jails/hogehoge -r 10.1-RELEASE upgrade

とかやっても

freebsd-update: Cannot upgrade from 10.1-RELEASE to itself

というエラーが出てupdateできません。これは環境変数をいじくってunameの出力をごまかしてやることで解決できます。

# setenv UNAME_r 10.0-RELEASE

とすれば自分自身が10.0-RELEASEに見えるので、(uname -rで出力を確認できる)その状態で

# freebsd-update -b /jails/hogehoge -r 10.1-RELEASE upgrade

を実行すれば jailがupgradeされます。その後

# freebsd-update -b /jails/hogehoge  install

を実行すると

Installing updates...
Kernel updates have been installed.  Please reboot and run
"/usr/sbin/freebsd-update install" again to finish installing updates.

のようにrebootしろと出ますが、これは

# unsetenv UNAME_r 10.0-RELEASE

とするだけでok。これで10.1-RELEASEにバージョンがあがったように見えます。その後何食わぬ顔で

# freebsd-update -b /jails/hogehoge  install

を再び実行してやればokです

Posted by issei

カテゴリ: BSD