泉屋本店で。
今日は高専のOSSの講演で講師をお願いしていた坂本さん、小岩さんと共に。
ちょっと気持ち悪い・・・・・^^;
二人は大盛りを食っていた。
と言うことで今日は社食でないのでカレー南は休止。

たまにFreeBSDな話。

以前に6.3-RELEASEから7.1-RELEASE(くらいだったと思う)のアップデートを失敗して、強引に6.4-RELEASEで動かしていたマシンがあって、だましだまし使っていたが、いよいよどうにもならなくなって来たので思い腰を上げてアップデートを試みた。
結果うまく行ったのでそのメモ。
まず、なんでソースツリーをNFS越しかと言うと、自身ではmake buildworldがエラーで止まるので他のマシンでbuildworldを行い、/usr/src, /usr/obj をNFS mountし、installwoldをしょうと考えた。
まぁ、普段ならこういう強引なことも平気でやるのだが、今回の場合、何がおかしいのかもうわからないのでいろいろ不安な中、半分祈りつつ、、、w

[buildworldを行うマシンでの作業]

  • ソースツリーを最新にする(今回は7.2-RELEASE)
  • /etc/make.confをinstall側サーバにあわせて設定する
  • cd /usr/src
  • make -j8 buildworld (-j8はおまけ)
  • make -j8 buildkernel

正常に終了したら、

  • /usr/src, /usr/obj をNFSでexport出来るように設定

[install側での作業]

  • buildworld側サーバの/usr/src, /usr/objをそれぞれ/usr/src, /usr/objにNFS mount
  • cd /usr/src
  • make installkernel
  • /etc/rc.confを最低限の設定にする
    • これはreboot後、NFSを使わなくてはならならず、シングルユーザモードになれないので気休め程度に。
    • あと、6系から7系はライブラリが入れ替わり、多分、結構動かない物があるので。
    • ネットワーク周りの設定とnfs_clientの設定だけ残した。
  • reboot
  • 新しいkernelで起動を確認後、/usr/src, /usr/obj をNFS mount
  • mergemaster -p
  • make installworld
  • make delete-old
  • mergemaster
  • reboot
  • make delete-old-libs
  • reboot
  • /usr/ports/misc/compat6x/ をインストール
  • /etc/rc.conf を元に戻す
  • reboot
  • portupgrade -af
    • としたい所だが、取りあえず、compat6xで全部動いたので、ひとつづつupgrade (イマココ)

という、全くもって参考にならないメモでした。