freebsd:freebsd_11_converting_from_release_to_stable

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

次のリビジョン
前のリビジョン
freebsd:freebsd_11_converting_from_release_to_stable [2016-11-11 18:05]
Decomo 作成
freebsd:freebsd_11_converting_from_release_to_stable [2016-11-17 21:27] (現在)
Decomo [手順]
行 1: 行 1:
 ====== FreeBSD 11-RELEASEをSTABLEに変更する ====== ====== FreeBSD 11-RELEASEをSTABLEに変更する ======
 +
 +手順としては''/usr/src''以下をSTABLEのソースに変更し、通常の方法でworldを再構築するだけ。
 +
 +===== 試した環境 =====
 +
 +  * FreeBSD 11.0-RELEASE
 +    * Root on ZFSで構築
 +
 +===== 手順 =====
 +
 +必要なことは全て[[https://www.freebsd.org/doc/ja_JP.eucJP/books/handbook/makeworld.html|FreeBSDハンドブック]]に書いてあるので、そちらを熟読した上で作業すること。
  
 元からあるRLEASEのソースを退避。 元からあるRLEASEのソースを退避。
行 7: 行 18:
 </code> </code>
  
-ちなみに、うちの環境だと/usr/srcがZFSの1ファイルシステムになっているので、snapshotを撮って中身を消した。+ちなみに、うちの環境では/usr/srcがZFSの1ファイルシステムになっているので、上記方法は使えず。なのでsnapshotを撮って中身を消した。
  
 <code bash> <code bash>
行 14: 行 25:
 </code> </code>
  
-stableのソースをチェックアウトする+STABLEのソースをチェックアウトする。 
 +実際に接続されるリポジトリはDNSでラウンドロビンされるようなので、URLは''svn.freebsed.org''を指定しとけばいい模様。(昔、どこかで「日本からだと米国東海岸に接続されてしまうので明示的に西海岸のサーバを指定する」と読んだ記憶があるような無いような…。)
 <code bash> <code bash>
 # svn co https://svn.freebsd.org/base/stable/11 /usr/src # svn co https://svn.freebsd.org/base/stable/11 /usr/src
行 24: 行 36:
 </code> </code>
  
-chflags -R noschg /usr/obj/+以前のオブジェクトファイルを削除。 
-rm -rf /usr/obj+<code bash> 
 +chflags -R noschg /usr/obj/
 +rm -rf /usr/obj 
 +</code>
  
-cd /usr/src +ユーザーランドのビルド。 
-sudo make buildworld -j 16+<code bash> 
 +cd /usr/src 
 +sudo make buildworld -j 16
 ... ...
 -------------------------------------------------------------- --------------------------------------------------------------
 >>> World build completed on Fri Nov 11 13:38:23 JST 2016 >>> World build completed on Fri Nov 11 13:38:23 JST 2016
 -------------------------------------------------------------- --------------------------------------------------------------
 +</code>
  
 +カーネルのビルド。
 +<code bash>
 sudo make buildkernel -j 16 sudo make buildkernel -j 16
 ... ...
行 39: 行 59:
 >>> Kernel build for GENERIC completed on Fri Nov 11 13:54:34 JST 2016 >>> Kernel build for GENERIC completed on Fri Nov 11 13:54:34 JST 2016
 -------------------------------------------------------------- --------------------------------------------------------------
 +</code>
 +
 +ビルドしたカーネルのインストール。
 +<code bash>
 +# make installkernel
 +</code>
 +
 +シングルユーザーモードに移行。
 +
 +今回知ったんだけど、オプションなしで''shutdown''コマンドを呼ぶとシングルユーザーモードに移行できるのね。
 +<code bash>
 +# shutdown now
 +</code>
 +こんな感じでつらつらとプロセスが終了し、シングルユーザーモードになる。これは便利だー。
 +{{ :freebsd:shutdown_to_single_user_mode.png?320 |}}
 +
 +
 +システムが入っているストレージ書き込みできるようにする。''zroot''の部分は適宜読み替えの事。
 +<code>
 +# zfs set readonly=off zroot
 +# zfs mount -a
 +<code>
 +
 +必要なら''kbdmap''する。
 +
 +必要なら''adjkerntz -i''する。
 +
 +設定ファイルのマージ。
 +<code>
 +# mergemaster -UPiF
 +</code>
 +
 +ユーザーランドをインストール。
 +<code>
 +# cd /usr/src
 +# make installworld
 +</code>
 +
 +残りの設定ファイルをマージ。
 +<code>
 +# mergemaster -p
 +</code>
 +
 +不要になった古いファイルを削除
 +<code>
 +# make delete-old
 +</code>
 +
 +再起動して晴れてSTABLE環境へ
 +<code>
 +# reboot
 +...
 +Last login: Mon Nov 14 00:54:22 2016 from :1
 +FreeBSD 11.0-STABLE (GENERIC) #0 r308494: Fri Nov 11 13:54:01 JST 2016
 +
 +Welcome to FreeBSD!
 +...
 +</code>
 +
 +その後、通常のworld構築ではここでportsやpackagesの更新と古いライブラリの削除を行うが、同一リリース内でのブランチ変更なので省略。
 +
 +===== 参考サイト =====
  
 +  * FreeBSD ハンドブック
 +    * [[https://www.freebsd.org/doc/ja_JP.eucJP/books/handbook/current-stable.html|17.4. 開発ブランチを追いかける]]
 +    * [[https://www.freebsd.org/doc/ja_JP.eucJP/books/handbook/makeworld.html|17.6. world の再構築]]
 +  * [[https://raymii.org/s/blog/FreeBSD_10_Converting_from_RELEASE_to_STABLE.html|FreeBSD 10, Converting from RELEASE to STABLE - Raymii.org]]
 +  * [[http://murasaki.cocolog-nifty.com/cloud/2009/11/post-d25f.html|シングルユーザモードの忘備録: むらさきのくも]]
  • freebsd/freebsd_11_converting_from_release_to_stable.1478855112.txt.gz
  • 最終更新: 2016-11-11 18:05
  • by Decomo